最近在使用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