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-14 添加相关JAR包
图 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。