Linux的zookeeper集群常見問題及解決方案


文章中所提到問題為自己遇到的問題及收集他人遇到的問題的整合

問題一:

啟動報錯:

解決方案:

1.查看系統防火牆是否已經關閉

如果開啟狀態,進行關閉

2.產生的原因:只在一台節點上啟動了zookeeper,其他的節點上沒有啟動zookeeper,會導致拒絕連接,去其他節點啟動即可

3.將linux的hosts文件的127.0.0.1那一行刪掉或者注釋

原因:端口綁定的地址不是127.0.0.1所以不能用這個地址

問題二:

前提:使用zookeeper版本為3.5.4 beta,jdk版本為1.8以下版本

啟動報錯:

解決方案:

在zookeeper的配置文件運行環境中指定jdk路徑

問題三:

啟動報錯:

解決方案:

配置jdk+zookeeper環境變量(zookeeper環境變量可以忽略)

問題四:

啟動報錯:

解決方案:

檢查zoo.cfg文件中的給dataDir路徑是否存在多余空格,如果存在zookeeper在讀取此配置文件時會把空格也讀進文件名,導致找不到對應目錄,pid文件存在在指定文件夾下,所以無法找到

問題五:

啟動報錯:

解決方案:

可能原因是該服務器的jdk版本不正確,或是環境變量未設置好。

例如,原來的linux下已經裝有jdk-1.4,然后又安裝了新版本的jdk-1.6,我們按照網上教程的步驟安裝好zookeeper並設置環境變量后,但是用java -version命令發現,仍然顯示java-1.4,說明環境變量未配好。zookeeper讀取的jdk版本仍然是舊版本的jdk-1.4。

修改jdk環境變量配置

問題六:

啟動報錯:

解決方案:

導致這個異常的原因通常是因為2181端口已經被其他進程占用了。

通常的做法就是檢查當前機器上哪個進程正在占用這個端口,確認其端口占用的必要性,將該進程停止后,再一次啟動ZooKeeper即可。

也可以修改配置文件zoo.cfg,更換ZooKeeper的clientPort配置,例如,可以將其設置為2081

問題七(多問題集合):

啟動報錯:

解決方案:

表示的是myid這個文件不存在
進入/export/servers/data/zookeeper/目錄下創建myid這個文件(不是文件夾)

解決方案:

在myid文件中輸入coo.cfg配置文件配置的對應當前IP地址的myid
如果在coo.cfg配置文件配置了當前節點server.1=192.168.1.110:2888:3888那么在myid文件輸入1,保存退出

解決方案:

關閉防火牆(所有節點的防火牆)

產生的原因:只在一台節點上啟動了zookeeper,其他的節點上沒有啟動zookeeper,會導致拒絕連接,去其他節點啟動即可


免責聲明!

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



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