ambari-phoenix監控資料檢視方法
近日在研究ambari專案,需要檢視下ambari的監控資料的具體情況。
1.檢視ambari專案對應的phoenix版本為4.4.0.2.3.4.0-3347。
<properties>
<!-- Needed for generating FindBugs warnings using parent pom -->
<!--<yarn.basedir>${project.parent.parent.basedir}</yarn.basedir>-->
<protobuf.version>2.5.0</protobuf.version >
<hadoop.version>2.7.1.2.3.4.0-3347</hadoop.version>
<phoenix.version>4.4.0.2.3.4.0-3347</phoenix.version>
<hbase.version>1.1.2.2.3.4.0-3347</hbase.version>
</properties>
2.下載對應的phoenix包。
link
3.解壓安裝包後,進行訪問
./bin/sqlline.py 172.16.31.183:2181
異常出現,出現/hbase不存在的問題
17/08/15 09:58:08 ERROR client.ConnectionManager$HConnectionImplementation: The node /hbase is not in ZooKeeper. It should have been written by the master. Check the value configured in 'zookeeper.znode.parent'. There could be a mismatch with the one configured in the master.
4.因為ambari預設使用的是單機版本的hbase,所以使用的是內建的zookeeper,
初步懷疑為zookeeper埠和叢集的zookeeper出現衝突,
ambari-metric在hadoop183節點,檢視叢集,發現該節點確實也存在叢集的zookeeper。
檢視ambari-metric的zookeeper配置,發現埠為{{zookeeper_clientPort}},該變數未找到。
如果埠衝突,則必然有一個服務會報錯,但是兩者都沒有異常顯示,則應該埠沒有衝突。
但是zookeeper_clientPort這個埠的定義沒有找到。
這裡我將該埠重新指定為7777,然後重啟ambari-metric服務。
5.重啟後,重新連線資料庫
./bin/sqlline.py 172.16.31.183:2181
異常依然存在,還是同樣的問題,/hbase不存在
17/08/15 09:58:08 ERROR client.ConnectionManager$HConnectionImplementation: The node /hbase is not in ZooKeeper. It should have been written by the master. Check the value configured in 'zookeeper.znode.parent'. There could be a mismatch with the one configured in the master.
6.這時我決定到zookeeper裡面具體看看,/hbase是否真的不存在。
根據之前的經驗,/hbase是hbase在zookeeper的儲存目錄,如果沒有該目錄,則hbase無法正常執行。
這裡需要用到單機版hbase訪問zookeeper的方法。
hbase zkcli -server localhost:7777 ls /hbase
返回結果發現,/hbase確實不存在。
Node does not exist: /hbase
這就奇怪了,難道說沒存在/hbase裡面。
查詢了下根目錄的情況,發現根目錄下只有zookeeper和ams-hbase-unsecure兩個目錄。
[zookeeper, ams-hbase-unsecure]
發現ams-hbase-unsecure很可疑,具體檢視,果然該目錄即為hbase資訊的儲存路徑。
[meta-region-server, rs, splitWAL, backup-masters, table-lock, flush-table-proc, region-in-transition, online-snapshot, switch, master, running, recovering-regions, draining, rolllog-proc, namespace, hbaseid, table]
7.查到這裡,就真相大白了,原來改了儲存目錄。
這裡指定目錄進行查詢,成功進入phoenix命令列。
./bin/sqlline.py 172.16.31.183:7777:/ams-hbase-unsecure