大数据(3j)Sqoop生产经验
Posted 小基基o_O
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据(3j)Sqoop生产经验相关的知识,希望对你有一定的参考价值。
增量同步遇到的坑
- 业务系统手动导入数据,导入的时间使用了历史时间而不是插入时间
并行度
-
Sqoop的底层运行任务是MR中的Map,没有Reduce阶段的任务,默认4个MapTask
-
数据导入时,建议并行度设为1:
--num-mappers 1
-
并行度>1时,会产生多个文件
-
数据量较大时,可以增加并行度,并指定切分的键:
--split-by
列式存储导出问题
-
问题描述:
- 数仓表采用列式存储,Sqoop导出时可能出问题 解决方案:
-
1、ads层数据量不多,不采用列式存储(首选)
2、创建 常规存储的 临时表,再导出
Sqoop数据导出一致性问题
-
场景:
- Sqoop导出HIVE到到mysql时,使用4个MapTask,过程中有2个任务失败,那此时MySQL中存储了另外两个Map任务导入的数据 原因:
- Sqoop将导出过程分解为多个事务 解决方案:
-
添加
--staging-table
选项,指定表名
,这是个辅助表,使得阶段数据最终在单个事务中移动到目标表
--staging-table app_xxx_tmp \\
--clear-staging-table \\
以上是关于大数据(3j)Sqoop生产经验的主要内容,如果未能解决你的问题,请参考以下文章