最近因为需要使用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文件类容一致就行)
新手上路,如果有不对的地方,欢迎指正。