Java API 遠程連接Standalone模式的Hbase

前言

很多人使用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。

就這樣了,有問題請儘快反饋給我,謝謝。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章