hbase总结:hbase连接异常,hbase总结连接
versions : hbase1.1.2+hadopp-2.2.0
一、异常提示: java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
分析:出这个错误,是因为win中没有这只HADOOP_HOME,但是win7中怎么会有HADOOP_HOME呢,设置后指向什么位置呢,我的hadoop在服务器端上的啊;
网络上的答案:HADOOP_HOME和JAVA_HOME一样的处理方式 ;把你在linux下的安装包hadoop-common-2.2.0.zip 解压到win下某一目录即可,同时配置好HADOOP_HOME在win上的环境变量即可!!!
二、异常提示:
Exception in thread "main" org.springframework.data.hadoop.hbase.HbaseSystemException: Unable to find region for test,,99999999999999 after 1 tries.; nested exception is org.apache.hadoop.hbase.client.NoServerForRegionException: Unable to find region for
test,,99999999999999 after 1 tries.
at org.springframework.data.hadoop.hbase.HbaseUtils.convertHbaseException(HbaseUtils.java:42)
at org.springframework.data.hadoop.hbase.HbaseUtils.getHTable(HbaseUtils.java:82)
at org.springframework.data.hadoop.hbase.HbaseTemplate.getTable(HbaseTemplate.java:78)
at org.springframework.data.hadoop.hbase.HbaseTemplate.execute(HbaseTemplate.java:57)
at org.springframework.data.hadoop.hbase.HbaseTemplate.put(HbaseTemplate.java:199)
at com.dh.policy.box.test.HbaseTest.main(HbaseTest.java:19)
nt.NoServerForRegionException: Unable to find region for test,,99999999999999 after 1 tries.
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:680)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:589)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:558)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:687)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:593)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:558)
at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:171)
at org.springframework.data.hadoop.hbase.HbaseUtils.getHTable(HbaseUtils.java:76)
... 4 more
首先确保:
其中test是我的Hbase表。 仔细检查了我的Hbase和Hadoop集群都没有问题,经过度娘的提示,我终于明白了, 因为我的host文件只配置了regionServer的hostname,但并没有配置其他region的hostname,所以找不到region 在Hbase伪分布模式下操作的,不会有此问题! 有人说是:(此方法试过,不过没用,还是老样子!) 解决,这个问题是hbase还没有正确连接,最终发现问题是hbase的jar包存在冲突,删除冲突的jar包,测试了下能够正常连接hbase访问数据,再跑程序就可以了。 又有人说: jps master ,slave etc的node是否正常?Check logs on RegionServers there should be explanation why you got NotServingRegionException.
然后对于一个菜鸟来说,这并没有什么用! 后来,我不得不承认我是一只小小的菜鸟: 我把maven依赖改了:()之前我已经测试过的maven依赖,对hbase进行增删改查完全可行 如下:
<!-- hbase依赖包 -->
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>0.96.1.1-hadoop2</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.6.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-hadoop</artifactId>
<version>2.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>1.7</version>
<scope>system</scope>
<systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>反正结果就正常了,具体原因对于菜鸟我来说是不懂的。希望各位大神能在评论中告知一二。谢谢~