Zookeeper集群模式無法部署雲伺服器【java.net.BindException: 無法指定被請求的位址 (Bind failed)】的解決

來源:互聯網
上載者:User
關鍵字 雲計算 zookeeper 雲伺服器部署 Zookeeper集群
Zookeeper集群模式無法部署雲伺服器【java.net.BindException: 無法指定被請求的位址 (Bind failed)】的解決。 正文

在雲伺服器(阿裡雲、騰訊雲)上部署Zookeeper集群模式時,無法成功的原因有很多,網上主要提到了埠被佔用(未開放)和防火牆開啟兩種問題,類似的博客很多,本文不再贅述。
如果你已經針對上述兩種情況做了修改依然沒有成功,那麼就可能出現了本篇的問題。
Zookeeper在啟動時,並不會列印資訊,即使集群啟動失敗,依然會顯示:


這樣我們看不到日誌資訊,無法判斷出現的問題,通過

# zkServer.sh start-foreground

可以看到Zookeeper啟動時的資訊。
每次Zookeeper啟動時資訊很多,一定翻到最上面要從第一條開始看。

如果有這條錯誤訊息

2017-08-05 09:27:32,253 [myid:1] - ERROR [/xxx.xx.xxx.xxx(你的IP):3888:QuorumCnxManager$Listener@763] - Exception while listening java.net.BindException: 無法指定被請求的位址 at java.net.PlainSocketImpl.socketBind(Native Method) at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:382) at java.net.ServerSocket.bind( ServerSocket.java:375) at java.net.ServerSocket.bind(ServerSocket.java:329) at org.apache.zookeeper.server.quorum.QuorumCnxManager$Listener.run(QuorumCnxManager.java:742)

恭喜你和我遇到了同樣的問題。

解決方法

很簡單,在每個Zookeeper節點上的zoo.cfg裡面添加上

quorumListenOnAllIPs=true

然後重啟所有節點。

原因

我自己也不是很懂,大概是對於雲伺服器來說,由於是採用虛擬化的技術。。。。。。 balabala,希望比較熟悉這方面的人可以賜教。

這個參數的潛在問題

主要是會影響ZAB協定和FastLeaderElection協定。
官網原文如下

quorumListenOnAllIPs

When set to true the ZooKeeper server will listen for connections from its peers on all available IP addresses, and not on ly the address configured in the server list of the configuration file. It affects the connections handling the ZAB protocol and the Fast Leader Election protocol. Default value is false

額外收穫

在Zookeeper官網上找到了各種配置參數的說明,如果之後有啥問題也至於這麼抓瞎。
Zookeeper配置參數說明

感謝 & 引用

本文主要引用和參考了 @回頭小kiss 的博客zookeeper集群無法正確啟動
十分感謝博主的分享。

同時還要感謝攀攀學長和張根學長的説明。 最終解決了這個問題

心路歷程

手頭的分散式爬蟲,從自己想當然的準備手擼分散式協調演算法到選型Zookeeper。 從翻著滿螢幕的Kazoo英文API文檔到部署Zookeeper失敗一次又一次。 然後面對著JAVA網路程式設計的異常不知從何下手。。。。 所幸最後的救命稻草---學長 及時出馬拯救了我,bug啊bug,總會是有解決方法的,緣分到了自然就成了。

當然,這件事情也充分的體現了技術面的重要,其實第一次去求助老王時,老王給出的方向很正確,就是對於雲伺服器虛擬化這方面可能存在的坑,但是我對於虛擬化實在是一竅不通,也沒往這上想。 而後來看到那個JAVA的異常,自己在網上搜了搜也沒有啥相關的解釋,可能這兩方面自己有一點點的積累都能大概有個方向。

我和我最後的倔強,最後還是詢問了學姐學長,感謝@攀攀學長和@傻根學長。

真是尷尬,最後是學長找到篇博客。。。 但是我自己搜羅N篇都沒找到,果然有時候bug還是靠緣分的。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.