Java api訪問遠程Hbase集群的初級坑(程序不報錯也不往下執行)


最近因為需要使用hbase集群做一些數據存儲,於是就自己搭建了一個hbase的集群,一共3台虛擬機。中途遇到了很多問題,做一個小小的記錄。

1,hbase api 與 虛擬機上安裝的hbase版本最好能夠匹配,否則會報一個關於java反射的錯誤。

2,做最基礎的hbase java客戶端其實只需要引入一個jar包 ,

<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>x.x.x</version>
</dependency>

網上很多讓你引用這引用那的,如果你只是想建立一個最最簡單的hbase java客戶端其實是真的不需要的。

3,使用Configuration 類加載zookeeper的集群配置,其他的配置其實在最簡操作中都是多余的 即:

Configuration HBASE_CONFIG = new Configuration();

HBASE_CONFIG.set("hbase.zookeeper.quorum", "10.0.104.19,10.0.104.20,10.0.104.22");

HBASE_CONFIG.set("hbase.zookeeper.property.clientPort", "2181");


4,關於windows下的hosts文件的配置是最重要的部分(linux hbase集群配置成功,可以使用hbase shell 訪問是前提)

因為hbase client api 是首先通過zookeeper集群的地址去訪問對應地址上的zookeeper,然后zookeeper返回一個hbase

的訪問別名。然后windows上的客戶端需要根據這個別名去解析成ip地址完成對hbase的訪問。

你需要修改:C:\Windows\System32\drivers\etc\hosts 文件

.....(省略一部分文件類容)
# localhost name resolution is handled within DNS itself.
#    127.0.0.1       localhost
#    ::1             localhost
10.0.104.19         namenode02
10.0.104.20         datanode01
10.0.104.22         datanode03

(注意:你的集群有多少台機器就要添加多少個,與你linux集群上的hosts文件類容一致就行)

          新手上路,如果有不對的地方,歡迎指正。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM