当前位置: 首页 > news >正文

纺织品公司网站建设东莞网络推广托管

纺织品公司网站建设,东莞网络推广托管,兰州做网站公司,网站空间ftp个人博客地址:Sqoop源码修改:增加落地HDFS文件数与MapTask数量一致性检查 | 一张假钞的真实世界 本篇是对记录一次Sqoop从MySQL导入数据到Hive问题的排查经过的补充。 Sqoop 命令通过 bin 下面的脚本调用,调用如下: exec ${HAD…

个人博客地址:Sqoop源码修改:增加落地HDFS文件数与MapTask数量一致性检查 | 一张假钞的真实世界

本篇是对记录一次Sqoop从MySQL导入数据到Hive问题的排查经过的补充。

Sqoop 命令通过 bin 下面的脚本调用,调用如下:

exec ${HADOOP_COMMON_HOME}/bin/hadoop org.apache.sqoop.Sqoop "$@"

org.apache.sqoop.Sqoop 是 Sqoop 的入口类,在此主要是解析参数及初始化工具类,然后通过 org.apache.hadoop.util.ToolRunner 类调用对应的工具完成操作。Sqoop 的 Import 操作对应的是 org.apache.sqoop.tool.ImportTool 类。

在 ImportTool 类的 return 代码前增加以下代码:

int numMappers = options.getNumMappers();String hDbName = options.getHCatDatabaseName();
String hTableName = options.getHCatTableName();
String hPartKeys = options.getHCatalogPartitionKeys();
String hPartVals = options.getHCatalogPartitionValues();if(isStringNotEmpty(hDbName) && isStringNotEmpty(hTableName) && isStringNotEmpty(hPartKeys) &&     isStringNotEmpty(hPartVals)) {String[] partKeys = hPartKeys.split(",");String[] partVals = hPartVals.split(",");String partPathStr = "";if(partKeys.length > 0 && partVals.length == partKeys.length) {for(int i = 0; i < partKeys.length; i++) {partPathStr += partKeys[i] + "=" + partVals[i] + "/";}}String targetDir = "/user/hive/warehouse/" + hDbName + ".db/" + hTableName + "/" + partPathStr;targetDir = targetDir.toLowerCase();LOG.info("---------targetDir=" + targetDir);try {FileSystem fs = FileSystem.get(options.getConf());RemoteIterator<LocatedFileStatus> rIter = fs.listFiles(new Path(targetDir), false);int fileCount = 0;while(rIter.hasNext()) {fileCount++;rIter.next();}LOG.info("---------------fileCount=" + fileCount);if(numMappers != fileCount) {LOG.error("files number in hdfs not equals mapper task number !");return 2;}} catch (IOException e) {LOG.error("count files number from hdfs error !");e.printStackTrace();return 3;}
}

改动只针对 Sqoop 集成 HCatalog 方式导入 ORC 格式的情况。因为我们的数据仓库中都采用的是这种方式。

优化:当 MySQL 中记录数特别少时,如少于 4 条记录,则默认 Sqoop 的 MapTask 数量为 4 但其实际执行时因为原始记录数不够则实际执行的 MapTask 数量会跟实际的记录数一致,此时 split 数量跟落地 HDFS 的文件数量一致。所以,可以根据 Sqoop 对应 MR 的实际 split 数量进行判断文件数量。

http://www.tj-hxxt.cn/news/17068.html

相关文章:

  • 小程序源码一般多少钱班级优化大师头像
  • 网站栏目按扭线上营销的优势
  • 网站如何防止重登录西安竞价托管代运营
  • 投资集团网站建设方案2023国内外重大新闻事件10条
  • 免费外贸网站大全写软文推广
  • 有那些猎头做单的网站关键词推广营销
  • 自己可以做开奖网站吗网络优化工程师工资
  • 怎样建立一个免费的网站淘宝关键词排名查询工具
  • 做问卷赚钱最好似网站宁波seo哪家好
  • 单页购物网站源码网络推广公司
  • react.js做的网站seo搜索引擎优化培训班
  • 赚钱黑渠道河南seo技术教程
  • 做废旧金属的网站网站是怎么优化的
  • 抚松做网站中国十大品牌营销策划公司
  • 为什么无法再社保网站上做减员下载百度app到桌面
  • 建设各级政府网站的意义网站维护工程师
  • 怎么免费把自己在dreamweaver做的网站放到网上去线上营销怎么做
  • 做企业展示型网站南昌seo数据监控
  • 网站建设方案 doc关键词seo排名怎么做的
  • 市场营销的八个理论seo的中文含义是什么意思
  • 金馆长做图网站制作网页完整步骤
  • 微信公众号做头图的网站现在有哪些培训学校
  • 内丘网站建设八戒
  • 音乐网站的建设关于校园推广的软文
  • 内蒙古城乡建设网站廊坊seo管理
  • 网站制作需求表苏州关键词优化怎样
  • 网站制作职业专业黑帽seo
  • wordpress 管理员账号在哪里查询泰州seo外包
  • 微网站建设价格yandex搜索引擎入口
  • 公司网站建设包括哪些东西国内b2b十大平台排名