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

纺织品公司网站建设电商网站建设平台

纺织品公司网站建设,电商网站建设平台,网格系统网站,建设网站用哪种语言个人博客地址: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/13766.html

相关文章:

  • 广西梧州市住房和城乡建设局网站广告联盟怎么加入
  • 企业注册网站专业网站seo推广
  • 摄影网站设计图片百家号seo
  • 制作一个购物网站需要多少钱seo网站优化培训找哪些
  • wordpress 前台写文章北京搜索优化推广公司
  • 网站开发的工作日志网络广告策划与制作
  • 网站建设 南京互联网推广有哪些方式
  • 淘宝客的api怎么做网站百度金融
  • bootstrap 网站演示广州品牌营销策划公司排名
  • 有做ppt的兼职网站吗杭州百度竞价推广公司
  • 泉州网站建设公司西安今日头条最新新闻
  • 做赌场网站代理漯河seo公司
  • 网线制作和测试的流程北京网站优化排名推广
  • 邢台做网站的那好头条权重查询
  • 做门户网站需要学什么软件私人网站管理软件
  • 怎么在网站上做链接网络营销的分类
  • 电子商务网站开发的过程广告推广策划
  • 石岩做网站的公司优化网站排名软件
  • mac系统可以做数据库网站开发如何推广一个品牌
  • 用python做网站后端最快多久百度seo排名帝搜软件
  • 网站收藏本站的功能域名注册平台有哪些
  • 网站制作 万网泰安网站建设优化
  • 搜索引擎收录网站优化排名软件网
  • 门户网站系统源码西地那非片的正确服用方法
  • 网站托管..优化营商环境 助推高质量发展
  • 政府事业单位网站建设要求佛山做网站推广的公司
  • 灵武住房和城乡建设厅网站太原seo外包平台
  • 网站编程 外包类型seo综合查询工具
  • pmp长沙百度网站推广优化
  • 番禺企业网站建设便宜的seo官网优化