Java HBase 多线程

github: https://github.com/ares333/HbaseMultiThread

Java多线程是一个很麻烦的东西,为了简化开发提高性能用Java的多线程封装了HBase API,包括Scan,Get,Put,Delete四种操作。经过多次修改运行非常稳定,已经用于生产环境。内部线程通信使用wait()/notify()机制,效率非常高。本文只在Java层面讨论HBase的多线程,HBase API内部线程处理机制不在本文讨论范围之内。HBase客户端版本 0.92.1,本类源码结尾处可以下载。下面通过demo演示一下用法,结尾处有代码打包下载。

特点:

  • 从Java层面用多线程最大化了读写性能。
  • 大量减少了应用程序的代码量,现在可以集中精力到数据分析上了。
  • 性能平均下来至少比单线程高出1个数量级,某些情况下高出两个数量级。

所有返回数据都是HashMap<String,String>,代表hbase中一行的一个列簇,数据中必然有一个键__rowkey保存本行的rowkey,所有列簇默认为cf,可以使用setCf()提前设置。
文档和最新版本可能有细微出入,不再修改文档。

继续阅读