Sqoop 将db2数据导入到hive中出现数据条数不一致问题分析

import
--connect
jdbc:db2://host:port/database   //db2驱动
--username
xxx //用户名
--password
xxx //密码
--table
db2table //db2中的表名字
--split-by
id //分块建议使用主键column字段名称作为分割块的依据,这样减少导入误差
--m
16 //1-更大 速度主要取决于系统性能  建议20
--hive-database
test //hive中的数据库名称  如果需要建库 则需要 创建 database 。构建参考语句 create database test;
--hive-table
a //建议使用db2原表名
--fields-terminated-by
'\n' //自定义列分割符号。默认为 '\001'
--lines-terminated-by 
',' //自定义行分割符号。'\n'

--hive-import


在此之前我未使用  自定义分隔符 导致 出现如下警告

我选择的分割列是 一个 double 类型的列。。导致了这个问题。


当我把 --split by换成 主键后 问题消失


因为 分割块的时候  他会 找出 分个块中的最小值 和 最大值。。 

18/05/17 16:13:17 INFO db.DataDrivenDBInputFormat: BoundingValsQuery: SELECT MIN(column), MAX(column) FROM xxx 

然后计算 平均分配到 每个 mapreduce 节点上。


刚学习大数据。如果有说的不对的地方请指出。谢谢


猜你喜欢

转载自blog.csdn.net/qq_18730505/article/details/80352907
今日推荐