momo00 2012-06-22
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方面的问题。