众所周知,storm 已经是业界主流的流时处理框架,Storm 被广泛应用于实时分析,在线机器学习,持续计算、分布式远程调用等领域。当前无论是内部还是外部论坛介绍原理的文档都比较多,但主要都是从运行机制和原理方面的介绍,在 UI 方面的介绍甚少,今天我试着向大家介绍一下 storm ui,一方面可以让大家了解一下 storm 的机制,另外也可以让大家更好的使用好 storm ui 协助大家自助解决使用过程中的问题。
一. 数据上报及展示流程
- 数据上报流程:worker/supervisor/nimbus 会定时上报统计信息到 zk
- 数据展现流程:ui 调用 nimbus 的服务从 zk 中取出数据进行分类聚合汇总,然后展示到前端
二. 数据类型
通常我们要真正理解一个事物,通常都会从来龙去脉进行解剖;理解 storm ui 也是,想理解 storm 有什么数据,那么先去理解 storm 有哪些动作就事半功倍了,以下是 storm 中 worker/supervisor/nimbus 的基本操作及对应的数据类型,左边为操作,右边为数据。
-
spout:
- emit:向下游提交 tuple,对应的统计数据为 emit/transfer,emit=emit 执行数量,transfer=emit 执行数量 * 下游 bolt 个数
- ack:成功流转之后的操作,对应的统计数据为 ack/complete-lantency,ack=成功流转次数 complete-lantency=成功流转平均时间
- fail&