Zookeeper對于不管是剛接觸Hadoop和Hbase技術的小伙伴亦或是深耕于計算機行業的大牛一點都不陌生,眾所周知, ZooKeeper 是一個分布式的,開放原始碼的分布式應用程式協調服務,是Hadoop和Hbase的重要組件,不知道大家會不會跟筆者一樣在安裝Zookeeper時會遇到這樣的一個問題,筆者通過上網查閱相關資料發現沒有合適的解決方法,于是通過自己嘗試,最后解決了這個問題,看到身邊部分小伙伴也會出現這個問題,筆者通過自己的方法幫助他們解決了問題,寫這篇文章,希望能夠做個總結,幫助與筆者因為這個問題而苦惱的小伙伴早日脫離苦海,
Zookeeper集群配置運行和狀態顯示報錯有兩種,第一種是由于自身操作不當,組態檔出錯導致Zookeeper集群配置啟動和查看狀態時出現報錯資訊,第二種是Zookeeper集群配置沒有錯誤的情況下,可以正常啟動但是查看狀態時出現報錯資訊,
Zookeeper集群配置如果是非正常配置下運行失敗的,網上有關于這個問題的解決方法有很多且詳細,筆者將不在這里闡述,因此,本文僅適用于Zookeeper是正常配置的情況,本文將通過圖文結合的方法來解決Zookeeper在正常配置下啟動成功,但是在查看狀態時仍然會報錯的問題,
問題解決步驟如下:
1、打開虛擬機,通過進入管理員的模式,通過cd命令進入Zookeeper的目錄運行bin/zkServer.sh start 啟動Zookeeper集群配置,從圖片上看,這里是開啟Zookeeper…行程已經正在運行,說明是運行成功的了,運行成功之后我們通常習慣查看節點的狀態,看它是leader還是follower,Leader和follower的作用這里不做闡述,故省略,
通過bin/zkServer.sh status 命令查看Zookeeper集群的狀態,出現報錯,報錯資訊為Zookeeper JMX enabled by default; Using config: /opt/module/zookeeper-3.4.10/bin/../conf/zoo.cfg; Error contacting service. It is probably not running. (顯示沒有服務) 使用 jps 查看行程發現行程資訊不能獲得,

2、遇到這類問題,先要冷靜下來,先檢查前面的配置是否正確,是否出現的第一種情況,如果是第一種情況,需要從第一步開始重新對Zookeeper的相關節點檔案進行檢查,檢查的思路大致可以從這幾個方面入手,例如檔案節點修改是否正確、防火墻是否關閉、目錄下 myid 檔案下的資訊是否正確等,在這里筆者補充一個思路,查看節點的時間是否是同步的,時間不同步也會出現報錯的問題,如下圖所示

從圖可知,筆者三個節點的時間是同步的,故可以排除節點檔案可能是時間不一致的情況,
3、在所有能夠想到的導致Zookeeper集群運行狀態顯示失敗的因素排除之后,可以通過查看另外兩個節點是否能夠成功運行Zookeeper集群和查看Zookeeper集群狀態,通過前面的 ssh 免密分別連接到hadoop01、hadoop02按照前面步驟運行Zookeeper集群和查看Zookeeper集群狀態,由運行圖可知,hadoop01和hadoop02是能夠成功運行Zookeeper集群和查看Zookeeper集群狀態,

4、通過查看另外兩個節點hadoop01和hadoop02的Zookeeper運行情況和狀態排除非正常配置的情況,筆者在檢查問題節點的目錄檔案及驗證自己的猜想所執行的相關的命令,效果如下圖所示


通過命令發現 Zookeeper.out 檔案為空,可以看出這臺虛擬機大概是宕機了,這里給剛入門的小白普及一下宕機,從專業的角度去解釋宕機,宕機就是指作業系統無法從一個嚴重系統錯誤中恢復過來,或系統硬體層面出問題,以致系統長時間無回應,而不得不重新啟動計算機的現象,那么,用大眾的口語化,通俗來講,就是“死機”,這時我們只需要終止程式,重新啟動該節點就可以了,重新啟動并不是直接把虛擬機的終端關閉重新打開,因為重新打開后仍然會出現報錯資訊,可以通過zkServer.sh stop命令終止該虛擬機的Zookeeper集群行程,

5、終止該行程后,重新打開Zookeeper集群,就可以解決Zookeeper在正常配置下啟動成功,但是在查看狀態時仍然會報錯的問題,運行結果如下圖所示

圖中所示,三臺虛擬機的Zookeeper集群都可以正常運行和顯示狀態,此時Zookeeper集群配置呈現的是完成的狀態,
以上的解題步驟希望能給各位讀者提供一些思路,幫助各位因為這個問題感到困惑的小伙伴脫離苦海,保護頭發,初來乍到,多多指教啦!!!
參考文獻:百度詞條
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/302743.html
標籤:其他
上一篇:淺談物聯網技術
下一篇:淺談RabbitMQ
