前言
很多人使用HBase都是從Standalone模式開始的,畢竟不是每個人都有一個集羣可以用來隨便測試的。但是很多書上沒有對如何使用Java API遠程連接Standalone模式的HBase詳細介紹,導致很多人的代碼在連接HBase時碰到很多問題。本文可爲你解惑
步驟一,JDK
安裝Standalone模式的HBase,這個看看HBase的官網即可。
設置JDK,一般jdk7即可,目前jdk8經常會碰到那個“util.map”的class問題。
在linux的用戶(安裝HBase的用戶)的.bash_profile文件的末尾加上如下代碼:
#注意替換爲自己的jdk安裝目錄
export JAVA_HOME=/opt/jdk7
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#注意替換爲自己的hbase安裝目錄
export HBASE_HOME=/opt/hbase
export PATH=${HBASE_HOME}/bin:${PATH}
步驟二,hosts(特別重要)
修改/etc/hosts文件,在其末尾加入如下代碼:
#注意改爲自己的ip和hostname名稱
192.168.33.44 hbase_svr_name
很多人發現自己使用Java遠程連接Hbase報錯,都會出現zookeeper連接127.0.0.1的信息,都是因爲hosts文件沒有設置。
步驟三,hbase-site.xml
修改$HBASE_HOME/conf/hbase-site.xml文件:
<configuration>
<property>
<name>hbase.rootdir</name>
<!--注意這裏改爲自己的hbase的存儲目錄 -->
<value>file:///opt/hbase/data</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<!--注意這裏改爲自己的hostname-->
<value>hbase_svr_name</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/hbase/data/hbase</value>
</property>
<property>
<name>zookeeper.znode.parent</name>
<value>/hbase</value>
</property>
</configuration>
步驟四:調用API
無論是windows還是linux下,調用API是一樣的,除了要把hbase、hadoop、zookeeper依賴的jar包都設置好以外,最重要的就是以下這個代碼片段:
Configuration config= HBaseConfiguration.create();
//這裏改爲你的hbase服務器ip
config.set("hbase.zookeeper.quorum","192.168.33.44");
//zookeeper的默認端口,2181
config.set("hbase.zookeeper.property.clientPort","2181");
經過測試,其他屬性可以不設置。有人說windows也必須在hosts文件中添加
192.168.33.44 hbase_svr_name
似乎並無必要,除非你要在
config.set("hbase.zookeeper.quorum","hbase_svr_name");
這裏寫入hostname而不是ip。
就這樣了,有問題請儘快反饋給我,謝謝。