概述
本文对Sqoop原理进行分析,结合实战经验,给出一些优化策略。对如下问题给出建议。
- 怎样让sqoop快起来?
- 该用那个字段做分片?
- m 应该设置成多少?
- 可以用时间字段做分片么?
- 为什么写入Hbase把RS写挂了?
本文只讨论sqoop 1 的import。
用途
Sqoop通常被用来做关系型数据库与Hadoop生态的数据交换。从语法上看的出来它是站在hadoop的角度,sqoop import … 就是把数据取进来,sqoop export… 是把数据吐出去。
重要原理
Sqoop是基于Mapreduce的,为的是在大数据量下多进程批量并行读写。因此我们在使用时要注意充分发挥集群性能。在大数据量情况下,Sqoop可以通过增加并发数-m加快速度,它将一个命令转换成m个sql同时读写目标数据库,如此一条命令会因为最慢的一个sql影响整体时长。增加并发数与均匀的分布是最基本的原则,而这与数据有非常直接的联系,因此要对数据有充分的了解。
m与split-by
当表数据量较小时没有必