Hbase是安装在另一台LINUX服务器上的,需要本地通过JAVA连接HBase数据库进行操作。由于是第一次接触HBase,过程当中百度了很多资料,也遇到了很多的问题。耗费了不少时间才成功连接上。特记录下过程当中遇到的问题。

  JAVA连接HBase代码如下:

  首先通过POM将需要的JAR包导入。如果怕版本不一致,可以将安装HBase的lib里面的jar导入程序当中

  ?

  注意一定要在本地HOSTS文件(C:\Windows\System32\drivers\etc\hosts)配置hbase集群地址? 192.168.8.30 master

  问题1:java.io.IOException: HADOOP_HOME or hadoop.home.dir are not set

   处理方法:在本地安装一个HADOOP,然后配置环境变量HADOOP_HOME? 尽管是调用的远程的Hadoop下的HBASE,所以这个问题困扰了我好久。

  直接在官方网站下载一个安装的包? hadoop-2.7.6.tar.gz 然后直接解压放在E盘下。接着配置环境变量HADOOP_HOME 并添加到Path当中。

  使用IDEA连接hbase数据库_使用IDEA连接hbase数据库

  使用IDEA连接hbase数据库_使用IDEA连接hbase数据库_02

  上面步骤完成之后启动报错

  问题2:java.io.IOException: Could not locate executable E:\hadoop-2.7.6\hadoop-2.7.6\bin\winutils.exe in the Hadoop binaries.

  需要下载winutils.exe hadoop.dll等组件放在hadoop安装目录的bin当中。下载地址:https://github.com/srccodes/hadoop-common-2.2.0-bin

  虽然是2.2.0的,但是亲测试可用的。下载完毕解压,将里面的bin里面的全部复制,然后拷贝到hadoop安装目录的bin当中,如果有相同的替换掉就是了。

  在上述步骤解决后还有一个问题

  问题3:The node /hbase is not in ZooKeeper. It should have been written by the master?

  使用IDEA连接hbase数据库_使用IDEA连接hbase数据库_03

  configuration.set("zookeeper.znode.parent","/hbase-unsecure") 这行代码被注释掉后,或者zookeeper.znode.parent 的配置信息不是/hbase-unsecure 会报错。

  可以在HBase安装目录中的配置文件hbase-site.xml当中查看具体信息

  使用IDEA连接hbase数据库_使用IDEA连接hbase数据库_04

  ?

  参考资料:https://blog.csdn.net/darkdragonking/article/details/72636917

  ? https://blog.csdn.net/yanhang0610/article/details/77920603