業務需要,使用phoenix來操作hbase,按照安裝說明文檔,就是不能正確連接。遇到問題如下:
1、問題一:
問題描述:運行sqlline.py master 一直停頓在WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable,查看各種hbase各個log,沒有報錯,也沒有任何下文。
解決方案:配置phonix環境變量,再次運行,報第二個錯誤
2、問題二:通過問題一的解決方法運行後,報錯ERROR:Cannot create PoolableConnectionFactory row 'SYSTEM:CATALOG,,' on table 'hbase:meta' at region=hbase:meta while connecting to secured Hbase via DBCPConnectionPool using Phoenix driver
問題二出現後,發現hbase下,多了phoenix的幾個系統表,並且regionserver出現閃退的情況,regionserver錯誤日誌如下:
想到可能是hbase meta信息不一致導致
解決方案:
進入zk客戶端,rmr /hbase,重啓zk,重啓hbase,在重新進去phoenix,成功!!!
總結:
hbase出現問題,多看日誌,並結合hbase shell中的記錄和zk中hbase目錄下的記錄,對比。
當發現元數據信息不一致時,可以用hbase自帶的檢測工具來修復:hbase hbck -fix,hbase hbck
保證hdfs 中文件,hbase meta中信息,zk中信息一致