使用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包的依賴。

待續............


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM