jstorm中用CuratorFramework訪問zookeeper出現的奇怪情況?
01-29
最近公司打算上jstorm,於是想自己搭建個jstorm,然後蛋疼的事情就發生了(菜鳥上手真的是各種曲折啊).
1,先上詭異的日誌截圖看日誌的意思是,supervisor下載代碼ok了,但是同步的時候出現問題.
然後我看到他要訪問7627這個埠,我就很納悶,這個埠從哪裡來的.2,於是滾去翻源碼了,測試代碼如下:public class ZookeeperTest {@SuppressWarnings("unchecked")
public static void main(String[] args) { Map&
我來回答吧。
先說問題的根本原因是什麼:
(1) 原因是, 題主的nimbus機器 主機名設置不正確(/etc/hosts或網卡配置設置有問題, 運行hostname就會發現), nimbus啟動後,必須將自己的機器名註冊到zk中,但題主的nimbus獲取主機名失敗,因此註冊到ZK 的hostname是localhost, 當supervisor連接nimbus時,拿到的是"localhost", 因此不可能成功連接nimbus解決辦法:(1) 樓主用的版本不是0.9.6.3, 用的是低版本jstorm, 如果用0.9.6.3 , 應該不會有這個問題,自0.9.6.3 後, 底層所有的通信使用IP 進行通信, 然後在web ui上進行展示hostname(2)重新配置機器的hostname, 請baidu 搜索如何設置機器 hostname, 這裡不做詳細介紹推薦閱讀:
※豌豆實驗室的Codis(分散式Redis)與自己用Zookeeper+Redis組網,有什麼區別?
※Zookeeper 和 Chubby 有哪些不同點?
※Zookeeper vs Chubby
※zookeeper與keepalived的高可用區別?
※zookeeper在dubbo到底起了什麼作用,dubno如何解決了阿里的高並發問題?
TAG:ZooKeeper |