在Java連接hbase時出現的問題


問題1:

java.net.ConnectException: Connection refused: no further information

  • zookeeper.ClientCnxn: Session 0x0 for server null
    • zookeeper未啟動,或無法連接,從查看各節點zookeeper啟動狀態、端口占用、防火牆等方面查看原因。

問題2:

找不到zookeeper服務器,則需要在windows本地的C:\Windows\System32\drivers\etc\下的hosts文件中添加zookeeper集群的映射。 

 

問題3:

在最初的時候,我們設計的模式是拿出每天的股票信息,以股票名作為表名,然后每天遍歷爬蟲爬取到的股票信息,逐一添加到各個表中,結果在我執行了代碼以后,每次都是程序執行到了插入第300條股票信息,也就是在往第三個表中插入數據的時候,程序就會卡死,接下來就會一直提示信息INFO [main] client.AsyncProcess: #2, waiting for some tasks to finish. Expected max=0, tasksInProgress=35。強制結束后再次運行就會報錯,后來發現在/hbase/hbase-common/src/main/resources/hbase-default.xml中有這么一條配置信息

就是說我的代碼連接數過大引起的問題。當然,與此同時集群也出現了問題,hdfs文件系統中的/hbase文件夾出現了損壞,於是我刪掉重新建了一個,重啟服務之后集群恢復正常。之后我們重新討論了一下,設計了一下hbase中的表的模式,我們決定將所有股票信息插入在一張表中,問題從側面得到了解決。

 

問題4:

最終顯示頁面讀取數據的時候發現傳入的數據是亂碼

  解決:代碼中涉及到的全部的編碼全是utf-8,在頁面輸入時的數據傳入java查詢類中時  

String str  = new String(stocknum.getBytes("UTF-8"), "ISO-8859-1");

 

 


免責聲明!

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



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