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>
反正結果就正常了,具體原因對於菜鳥我來說是不懂的。希望各位大神能在評論中告知一二。謝謝~



































發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章