文章中所提到問題為自己遇到的問題及收集他人遇到的問題的整合
問題一:
啟動報錯:

解決方案:
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

問題七(多問題集合):
啟動報錯:

解決方案:
解決方案:
解決方案:
關閉防火牆(所有節點的防火牆)
產生的原因:只在一台節點上啟動了zookeeper,其他的節點上沒有啟動zookeeper,會導致拒絕連接,去其他節點啟動即可
