当前位置: 首页 > 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/10167.html

相关文章:

  • 胶南市城乡建设局网站百度推广如何获取精准的客户
  • 做网站外包是什么意思怎么进行网站推广
  • 罗琳做的网站西安自助建站
  • soho怎么做网站如何做好网络营销工作
  • 网站建设咨询电话网站建设合同
  • 网络推广的方式都有哪些关键词优化设计
  • 各类武汉手机网站建设个人博客搭建
  • 买正品去哪个网站最好在线之家
  • 基础建设包括哪些内容seo优
  • 公司网站宣传免费的网站域名查询
  • 卖汽车的网站怎么做的吗网站怎样做推广
  • 网站内容管理佛山旺道seo
  • 公司如何建设一个网站中公教育培训机构官网
  • 国内做led灯网站有石家庄网站建设方案
  • 网站排名怎么做网站运营工作的基本内容
  • 温州市手机网站制作多少钱简述影响关键词优化的因素
  • php做网站优势seo整站优化报价
  • 鞋子网站模板南京百度seo代理
  • 网站建设文案详情什么是网络销售
  • 网站接单厦门seo排名优化公司
  • 永州微网站建设高粱seo博客
  • 百度竞价做网站建设百度网盘搜索引擎盘多多
  • 个人网站备案备注信息口碑营销方案怎么写
  • 学校的网站的代码模板下载登封网站设计
  • 网站运营无经验可以做吗sem是什么专业
  • 外贸网络营销实战南宁seo推广公司
  • apache 多个网站百度推广登录网站
  • 抖音网站表白怎么做商丘网络推广哪家好
  • 政府机构网站建设流程app排名优化
  • 北京网页设计与网站建设关键词挖掘工具