1、数据跑一半出问题,HDFS文件系统进入数据
①违反数据库约束
②数据库连接机制
③由于分割符等原因,传输列数和表的列数不一致
2、并行度
1kw以内的=4个,1-9kw=8个,1亿 = 12个,2亿 = 16 个
3、hive表顺序和MySQL表顺序
hive里面的字段顺序必须和目标表的字段顺序相同,否则会报错
***HDFS以文件形式导出
4、sqoop性能优化
***重点考虑:数据量超过500W,日增量超过10W
***解决方案:分时切片,参数优化
①总体策略
sqoop优化基于map分配,字段切分,并考虑oracle分区,主键和索引字段
–direct的优化策略,map的个数不能超过32个
②核心代码及解读
–split-by和–num-mappers
(–split-by"colx")+(–num-mappers k)这两个组合项
sqoop先获取分裂字段”colx“的max和min
5、sqoop从Oracle导入hive常见问题
1、导入hive时忘记
–hive import 选项
2、关系表中的date类型抽到hive中,时分秒被截断
–map-column-hive last_date = string
3、输入列名,大小写不统一,列名遗漏
4、无主键导入时
–num-mappers设置为或设置–split-by项
5、设置–target-dir项时
要先删除(–delete-target-dir)
解决–target-dir换成
–hive-table hive表名
6、–hive-import不支持
–append增量导入的模式
7、–delete-target-dir不支持
–append增量导入模式
8、ORA-28040
ojbdc14.jar和oracle版本匹配问题
9、sqoop ORA-01652
临时表空间过小,或者不能自动扩展大小。