大批量数据录入是HBASE的常做操作
做法大致有下面的几种:
- 使用HBASE的API使用单个client,Put入HBase。
比较有效率的做法是单线程读取数据源,多线程写入HBASE中,问题是如果操作的表region数量比较少,SPLIT,COMPACTION的时候会卡住写数据的线程(当然可以通过调节参数让region暂时不做SPLIT,COMPACTION,不过为了一个应用做这种平台级别的调整好像不太必要) 所以这种方式一般可以在region数量比较多,数据比较分散的情况下使用,我们线上的机器单个resion承受5000/s条记录(每记录100字节左右)是没有问题的
- 使用多个client 在多台客户机上向HBase写数据,听说这种做法入库效率比较高,而且不会占用Hbase机器上面的资源,单要客户端自己做数据划分,所以实际我们比较少用。
- 使用map reduce 写入HBase。
- 使用Bulk Loads 方式入库。
![(please configure the [header_logo] section in trac.ini)](http://www1.pconline.com.cn/hr/2009/global/images/logo.gif)