大数据(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生产经验的主要内容,如果未能解决你的问题,请参考以下文章

大数据学习之路又之从小白到用sqoop导出数据

数据集成:Flume和Sqoop

Apache Sqoop - Overview Apache Sqoop 概述

Sqoop生产数据倾斜问题验证

大数据高级开发工程师——大数据相关工具之一 Sqoop

大数据之非常详细Sqoop安装和基本操作