Java API 远程连接Standalone模式的Hbase

来源:互联网 发布:淘宝宝贝七天下架吗 编辑:程序博客网 时间:2024/05/03 04:45

前言

很多人使用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/jdk7export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar#注意替换为自己的hbase安装目录export HBASE_HOME=/opt/hbaseexport 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服务器ipconfig.set("hbase.zookeeper.quorum","192.168.33.44");//zookeeper的默认端口,2181config.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。

就这样了,有问题请尽快反馈给我,谢谢。

0 0
原创粉丝点击