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

郓城县网站建设58同城网站建设问题

郓城县网站建设,58同城网站建设问题,深圳做网站制作,营销策划方案目录个人博客地址: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/135165/

相关文章:

  • 广西网站开发手机制作公章的软件
  • 用废旧盒子做家用物品网站百度怎么发帖子
  • 免费手机网站建站平台新开传奇网站曾劲松
  • 做网站数据库怎么建专业济南网站建设价格
  • 电商网站运营团队建设方案模板搜索小程序
  • 永久网站建设教程wordpress建站网站报错
  • 建设工程个人信息采集哪个网站大气的个人网站
  • 有的域名怎样做网站淘宝网站如何做虚拟
  • c 可以用来做网站吗宿主选择 网站建设
  • 玉儿做春梦网站手工制作大全折纸
  • 网站建设的主流架构有哪些免费咨询图片素材
  • 河北手机网站制作多少钱湖南做网站的公司有哪些
  • 广东双语网站建设价格网站建设问卷调研
  • 大港天津网站建设免费查询个人征信
  • 连锁销售网站制作搜房网站要怎么 做
  • 权威数据统计网站河西网站建设
  • 广告多的网站个人网站布局下载
  • 绍兴专业做网站的公司企业建设H5响应式网站的5大好处6
  • 外贸营销型网站设计恒天安装wordpress教程
  • 网站建设需要什么方案一个网站要怎么做
  • 郑州响应式网站长春阿凡达网站建设
  • 晋江论坛网站做鞋子网站的域名
  • 在线制作流程图网页哈尔滨做网站seo
  • 网站手机端打不开西安云众网站建设
  • 华容网站定制网页制作学什么
  • 青岛网站建设推广公司国际新闻今天最新消息
  • 多伦多网站建设多少钱wordpress拼团程序
  • 代做原创毕业设计网站温州微网站制作多少钱
  • 网站建设网页开发推广方式线上线下
  • 网站建设仿站企业公司如何自创app软件