使用Java连接HBASE过程中问题总结

本文是我个人在连接服务器的HBASE过程的一些问题总结。


一、用户和主机名的设置

  1.1 报错:Insufficient permissions(user=Administartor)

  原因:本地hostname为Administrator,而HBASE表的用户没有这个用户,所以报错。

  措施:设置电脑的环境变量,步骤如下:

  1)右击我的电脑->属性->高级系统;

  2)新增变量名HADOOP_USER_NAME,值为mr(HBASE表的用户名

  如图:

 

  1.2 hosts文件设置

  提示:WARN RecoverableZooKeeper:146 - Unable to create ZooKeeper Connection

  原因:是无法读取配置文件中主机名,可以通过ping IP地址和主机名验证

  在本机的hosts文件设置IP与主机名的映射,如10.23.231.5 mr。

  【问题延伸

  一般经过上述配置后,就可以在cmd的小黑框里ping通IP和主机名(最好两者都试一下),可能出现,能ping通IP地址但是ping不同主机名的情况,代码里可能报错信息为,unkown hostname。

  这种情况可能是所配置的主机名没有生效,解决办法,如图所示:

注意事项:

1)选择正在使用的网络,单击右键选择属性

2)最后导入的是修改后的hosts文件;

 二、本地连接服务器HBASE导致的相关错误

  2.1 ERROR Shell:400 - Failed to locate the winutils binary in the hadoop binary path java.io.IOException:Could not locate executable null\bin\winutils.exe in Hadoop binaries.

  2.2 java.io.IOException:HADOOP_HOME or hadoop.home.dir are not set

解决方案:设置路径,具体如图

注意事项:

1)路径是自定义的;

2)在该路径下新建bin文件夹(如:D:\hadoop\bin),然后上网找到winutils.exe放在bin目录中;

3)重启电脑,再次编译即可

三、运行报类找到不到(Hadoop 2.7.3,HBase 1.2.0)

  3.1 运行的时候说找不到org.apache.hadoop.tracing.SpanReceiverHost的类

  原因:依赖的jar没有,

  解决方案:添加hadoop-common-*.jar(对应的版本),最好的是在maven中添加对此jar的依赖。

   3.2 报:Caused by:java.lang.ClassNotFoundException:org.apache.hadoop.fs.FsTracer

  原因:缺jar包

  解决方案:增加对hadoop-hdfs包的依赖。

待续............

posted @ 2018-11-15 22:28  王大咩的图书馆  阅读(4725)  评论(0编辑  收藏  举报