Zookeeper-Error contacting service. It is probably not running.解決方式彙總
使用命令zkServer.sh status檢視zookeeper各節點狀態的時候出現Error contacting service. It is probably not running.的錯誤
檢視zookeeper.out見有以下WARN
Cannot open channel to 101 at election address slave01/*.*.*.*:3888 java.net.SocketTimeoutException: connect timed out
解決方法:
1.確保zookeeper安裝目錄下的conf下的zoo.cfg配置瞭如下資訊
server.100=master:2888:3888 server.101=slave01:2888:3888 server.102=slave02:2888:3888
2.確保zoo.cfg檔案配置的dataDir目錄下有myid檔案並且內容為該機id,如果像上面一樣配置了三臺伺服器id分別為100,101,102則每臺伺服器的myid檔案中寫入各自的編號。
3.上面兩步都沒錯之後發現錯誤還是沒有消失,檢查/etc/hosts檔案中自己的主機名是否解析為127.0.0.1,或者如果是阿里雲的ECS的話有預設自己的主機名解析為內網地址,如果你將自己的主機名改成了解析為外網地址,那麼zookeeper將無法在zoo.cfg檔案中沒有0.0.0.0的情況下啟動。
方式一:
將/etc/hosts/中的自己的主機名解析成內網地址
方式二:
修改每臺伺服器中的zoo.cfg配置資訊
然後重啟zookeeper
master
server.100=0.0.0.0:2888:3888 server.101=slave01:2888:3888 server.102=slave02:2888:3888
slave01
server.100=master:2888:3888 server.101=0.0.0.0:2888:3888 server.102=slave02:2888:3888
slave02
server.100=master:2888:3888 server.101=slave01:2888:3888 server.102=0.0.0.0:2888:3888
然後重啟zookeeper
到了這裡如果還是沒解決錯誤,可以嘗試下面幾種方式
1.關閉防火牆
2.如果是ECS則去控制檯開放zookeeper相關的埠
3.刪除dataDir目錄下的zookeeper_server.pid檔案然後重啟zk
參考網址