安裝zookeeper僞集羣,單個zookeeper 啓動成功 但是狀態顯示報錯:Error contacting service. It is probably not running

zookeeper(版本爲3.4.12)集羣版 單個啓動 命令行 啓動都成功沒問題 

但是一查看 zookeeper狀態(命令 ./zkServer.sh status )就出如下問題 (這是要害死強迫症啊)

JMX enabled by default

Using config: /usr/local/develope/zookeeper-clusters/zookeeper-server3/bin/../conf/zoo.cfg

Error contacting service. It is probably not running.

首先度娘一波 發現一波帖子

  

1,打開zkServer.sh 找到status)

STAT=`echo stat | nc localhost $(grep clientPort "$ZOOCFG" | sed -e 's/.*=//') 2> /dev/null| grep Mode`
在nc與localhost之間加上 -q 1 (是數字1而不是字母l)
如果已存在則去掉
注:因爲我用的zookeeper是3.4.5版本,所以在我的zkServer.sh腳本文件里根本沒有這一行,所以沒有生效

2,調用sh zkServer.sh status 遇到這個問題。百度,google了後發現有人是修改sh腳本里的一個nc的參數來解決,可在3.4.5的sh文件裏並沒有找到nc的調用。配置文檔裏指定的log目錄沒有創建導致出錯,手動增加目錄後重啓,問題解決。
注:我想不是日誌的問題所以這個方法根本就沒有試

3,創建數據目錄,也就是在你zoo.cfg配置文件裏dataDir指定的那個目錄下創建myid文件,並且指定id,改id爲你zoo.cfg文件中server.1=localhost:2888:3888中的    1.只要在myid頭部寫入1即可.
注:在我第二次安裝的時候,沒有將myid文件創建在dataDir指定的那個目錄下,也報了該錯誤。之後在dataDir指定的那個目錄下創建myid文件就沒有報錯。

4 因爲防火牆沒有關閉。關閉防火牆:

  #查看防火牆狀態

   service iptables status 

  #關閉防火牆
   service iptables stop
  #查看防火牆開機啓動狀態
   chkconfig iptables --list
  #關閉防火牆開機啓動
   chkconfig iptables off

 注意:我的確在開始時候沒有關閉防火牆,但是當我關閉防火牆之後也沒有解決問題。

5 沒有建立主機和ip之間的映射關係。

  建立主機和ip之間映射關係的命令爲 vim /etc/hosts   在文件的末端加入各個主機和ip地址之間的映射關係就可以了。

  注意:只有在建立了映射關係之後,纔可以將在同一個網段下的機器利用主機名進行文件傳遞。問題解決!

 如圖 有5個解決方案 但是 有5個 一個 一個檢查過來 發現 myid 也有 也沒開防火牆 

這下問題大了   突然一看zoo.cfg文件 

發現 3個server的 ip配置有問題 都是在同一臺機器上 localhost 就可以啊 ( 複製過來的忘了改了 )

將這個3個 zookeeper的zoo.cfg配置文件都改了 以後 重新 停止 然後 在開啓  

在使用客戶端 連接每一個 啓動的server (命令:./zkCli -server ip:port)

當連接 本地 默認2181端口是 需要添加 -server ip:port 直接使用 ./zkCli 即可




突然一查 zookeeper-server1的狀態 好了 


果然 只要用心 沒有搞不定的bug oh yeah

參考博文:https://www.cnblogs.com/xiaohua92/p/5460515.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章