当前位置: 首页 > 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.yayakq.cn/news/376222/

相关文章:

  • 互联网站开发管理文档开发公司岗位设置
  • 主流科技类的网站都有哪些正规的公司网站建设
  • 深圳建设局网站注册结构师培训中国响应式网站
  • 网站的后期维护工作一般做什么东莞圆心科技网站开发
  • 盐城做网站的哪个公司好90平装修大约多少钱
  • 昆明网站建设团队潍坊专利申请
  • 长沙口碑好的做网站公司哪家好自媒体运营
  • 农业网站如何建设上海网站建设维护
  • 设计师网站pintset门户网站优点
  • 响应式网站模板的应用免费seo工具
  • 网站建设价格标准方案北京学生聚集
  • 做网站学不需要做后台管理系统一二三四视频社区在线
  • 上海做网站建设公司排名站长网站统计
  • 萍乡商城网站建设石桥铺网站建设公司
  • 杭州seo网络推广搜索引擎优化关键字
  • 调整百度对网站的最大天级抓取频次值一级a做网站免费
  • 定西市小企业网站建设网络公司推广软文
  • 有了域名和空间怎么做网站内容wordpress 头像打岔
  • 网站可以跟博客做互链吗wordpress打开文章
  • 做网站最好的网络公司免费网站建设的
  • 设计一个学院网站二级单位网站建设
  • 水网站模板营销型网站盈利模式
  • 微网站推广chrome官网
  • 枣强网站建设旅游网站建设电子商务的困惑
  • 织梦网站熊掌号改造怎么做vue新增页面
  • 化妆品营销型网站案例宠物网站页面设计ps
  • vs中的网站导航怎么做WordPress当前菜单高亮
  • 摄影师作品网站有哪些濮阳信息港网首页
  • 人工智能营销网站开发金山开发
  • 创意网站设计模板酒泉市建设局网站招标办