下面例子,可以参考
Topology结构:spout输出80万数据(csv格式);bolt1解析csv,拆分各信息段;bolt2按bolt1中某个字段汇总,累加记数后入库(入库触发频率:60s)。
并行度配置:spout task(1)executor(3);bolt1 excutor/task(16); bolt2 excutor/task(8);
workers(8);storm slot(8)
硬件配置:8CPU ,16G memory
处理性能大概1W5/s。
测试过程中发现些问题,耽误了一些时间。
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个数来提升性能。
|