HBase+Hadoop运维的一点经验

目前系统上线,不断的有新问题,也不断的在总结一些经验,发在这里,做下mark,同时也为HBase使用者提供一些思路吧。

1、单条rowkey下虽然能支持百万列,但是建议不要这么做,因为真正一个rowkey下挂了这么多数据时会在两个地方出现问题,一是查询时单行记录数据量过大,client超时;第二个问题是regionserver做compact的过程有可能被单条rowkey的数据塞满内存造成OOM

2、datanode的handler的数量不要默认值,太少,要在100左右,另外regionserver的handler的数量在200左右比较合适

3、resultScannser使用完毕记得关闭

4、HTablePool可以管理HTable。查询结束后直接用HTablePool.put(HTable t)来回收,入库结束后记得table.flushCommit()后再回收

5、mapred.local.dir这个参数是mapreduce会在机器的硬盘上做临时文件的存放,如果挂载的多块盘请将每个盘都配上,提升总体性能

6、map阶段的输出可以配置LZO压缩,这样能有效节省map->reduce阶段的网络带宽,不过会提高cpu的占用率

7、多网卡绑定能有效提高Hadoop体系的网络带宽

8、bulkload目前测试的性能在单节点51GB/小时左右,希望其他有做过的同学能交流一下bulkload方面的问题。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/psdgw.html