hbase的bulk load一个小改造

来源:互联网 发布:编程浪子 编辑:程序博客网 时间:2024/04/29 18:28

研读了三天bulk load的代码,呵呵,貌似时间有点长,我自己都觉得不好意思,总结了一下,主要是自己对map reduce的工作流程不太熟悉造成的。这个过程中,不论是自己找资料,还是向同事请教,对map reduce有了进一步的理解,呵呵,好了,继续讲讲bulk load吧!

了解bulk load的朋友都知道,bulk load其实就是一个map reduce的job,我们在实际使用中发现,这个job的reduce任务的数目是根据table所在的region数目来确定的(可以看HFileOutputFormat.java),那么如果load一张空表的时候会很慢,不知道大家有没有这样的感觉,监控了一下看到是reduce任务的数目为1,呵呵,不论数据文件有多大,load空表的时候都只有一个reduce,这样效率当然很慢了。于是我们把这里优化了一下,当region的数目为0的时候,设置多一些的reduce。

呵呵,测试结果也很理想,伪分布式的情况下:

优化前:2.4G数据 耗时 22mins, 19sec

优化后:2.4G数据 耗时 12min,16sec

呵呵,下一步的优化,就是看看reduce任务的个数如何设置才能最佳,呵呵,有这方面经验的朋友,欢迎交流啊!

原创粉丝点击