【storm集羣】storm 工做目錄不停生成hs_err_pidXXX.log

昨天搭建好集羣,提交了topology,可是始終沒有結果。今天debug一天終於解決了,記錄下來。java

問題描述:##

  • ui顯示topology在運行,可是emit, uptime等數據始終爲0。
  • jps沒有發現worker進程,看 supervisor.log 和 worker-*.log,發現supervisor一直在啓動worker進程, 可是worker立刻就死了
  • 工做目錄不停產生hs_err_pidXXX.log日誌。

解決過程:

  1. 開始懷疑代碼有問題,在本地模式下調試,確實發現問題,可是解決完問題成功在本地運行後,在集羣上仍是同樣運維

  2. 看到不少hs_err_pidXXX.log,在網上查了下是jvm崩潰了,由於對java瞭解不深,覺得是java版本問題(集羣機器上有1.6 1.7 兩個版本)。因而將集羣的機器都改爲 1.6。結果仍是有問題jvm

  3. 反覆看各類storm日誌,google, 改代碼,從新跑topology, 重啓集羣,以root身份啓動集羣....... 結果都失敗了ui

  4. 回頭找了下介紹hs_err_pidXXX.log,定位了問題(不能肯定) 在此輸入圖片描述 從文件頭部信息看來,是 libzmq這個庫的問題。運維安裝的是最新穩定版的zeromq 和 jzmq。 在二者兼容性問題上糾結了半天,網上查了不少博客資料,依舊搞不出個因此然。google

  5. 無心中看到storm出 0.9 了,想着是否是zeromq和jzmq太新了(剛release幾天), 而用的storm-0.8.1是12年release的,不兼容。抱着換0.9的想法,去找了下0.9的release log 。 結果!臥槽 在此輸入圖片描述 尼瑪,好大一個坑啊!!!debug

  6. 從新編譯了 zeromq-2.1.7, 成功運行topology調試

注: 其實storm/bin裏面有個腳本install_zmq.sh, 使用這個腳本安裝就能夠了。jzmq也使用腳本里的凍結的源碼,使用最新的源碼也會有出現上面說的問題!日誌

總結:

storm 文檔好少,實例好少,問題及解決好少,得靠本身多摸索啊orm

相關文章
相關標籤/搜索