12.9 HBase编程

本节我们将介绍如何使用IDE对HBase进行编程,并介绍如何使用HBase编写MapReduce程序。首先,我们介绍如何配置Eclipse,并用其开发HBase应用程序。

12.9.1 使用Eclipse开发HBase应用程序

当第三方访问HBase的时候,首选需要访问ZooKeeper,因为HBase的重要信息保存在ZooKeeper当中。我们知道,ZooKeeper集群的信息由$HBASE_HOME/conf/hbase-site.xml文件指定。因此需要通过classpath来指定HBase配置文件的位置,即$HBASE_HOME/conf/的位置。

使用HBase客户端进行编程的时候,hbase、hadoop、log4j、commons-logging、commons-lang、ZooKeeper等JAR包对于程序来说是必需的。除此之外,commons-configuration、slf4j等JAR包也经常被用到。下面列出对于HBase-0.92.1版本来说所需的JAR包:


hbase-0.92.1.jar

hbase-0.92.1-test.jar

hadoop-1.0.1.jar

zookeeper-3.4.3.jar

log4j-1.2.16.jar

commons-logging-1.1.1.jar

commons-lang-2.5.jar


此外程序可能包含一些间接引用,可以通过错误提示进行相应修改。

下面我们通过一个实例来演示具体的配置。

(1)添加JAR包

添加JAR包有两种方法,比较简单的是,在HBase工程上,右击Propertie在弹出的快捷菜单中选择Java Build Path对话框,在该对话框中单击Libraries选项卡,在该选项卡下单击Add External JARs按钮,定位到$HBASE/lib目录下,并选取上述JAR包,如图12-14所示。

上述操作可以通过在工程根目录(即与src文件夹平行目录)下创建lib文件夹,并添加相关JAR包来代替。

(2)添加hbase-site.xml配置文件

在工程根目录下创建Conf文件夹,将$HBASE_HOME/conf/目录中的hbase-site.xml文件复制到该文件夹中。通过右键选择Propertie->Java Build Path->Libraries->Add Class Folder,然后勾选Conf文件夹进行添加,如图12-15所示。

接下来便可以与普通Java程序一般调用HBase API编写程序了。还可以通过运行HBase Shell与程序操作进行交互。

12.9 HBase编程 - 图1

图 12-14 添加相关JAR包

12.9 HBase编程 - 图2

图 12-15 添加HBase配置文件

如果不设置hbase-site.xml配置文件的位置,程序将自动读取HBase-0.92.1.jar文件中默认的配置文件,这样可能与自己的预期有一定的差距。大家还可以通过程序来进行HBase的配置,例如若要设置ZooKeeper集群的位置,可在HBase的Configuration中做如下配置:


Configuration config=HBaseConfiguration.create();

config.set("hbase.zookeeper.quorum","master, slave1,slave2");


上述代码设置HBase所运行的ZooKeeper集群的位置为master、slave1和slave2。