最近在使用storm作了一下數據處理性能測試。 git
Topology結構:spout輸出80萬數據(csv格式);bolt1解析csv,拆分各信息段;bolt2按bolt1中某個字段彙總,累加記數後入庫(入庫觸發頻率:60s)。 github
並行度配置:spout task(1)executor(3);bolt1 excutor/task(16); bolt2 excutor/task(8); shell
workers(8);storm slot(8) apache
硬件配置:8CPU ,16G memory 性能
處理性能大概1W5/s。 測試
測試過程當中發現些問題,耽誤了一些時間。 ui
storm ui 0.9.2版本在顯示Topology Summary時有bug,worker與excutor數量值寫反了。能夠經過storm list在命令行中進行驗證。另外在顯示topology時有js異常,致使詳細顯示空白,如趕上述問題能夠從新下載ui代碼,替換後便可解決。(https://github.com/apache/storm) 命令行
strom在進行任務分發時有時會出現鏈接超時,異常緣由不明: 線程
2014-09-22 13:18:34 b.s.m.n.Client [INFO] Reconnect started for Netty-Client-ip-61/ip:6703... [11] 2014-09-22 13:18:35 b.s.m.n.Client [INFO] Reconnect started for Netty-Client-ip-62/ip:6703... [12] 2014-09-22 13:18:35 b.s.m.n.Client [INFO] Reconnect started for Netty-Client-ip-61/ip:6703... [12]結論:
storm中worker爲處理進程,excutor爲worker下線程,執行task任務,task爲具體實例對象(spout/bolt)。發現性能不足時可經過調整並行度、slot個數、worker個數來提高性能。 code