我们正在尝试在storm拓扑中测试性能。我们以1000/秒的速度接收Kafka主题的信息。当我们在kafkaspout中设置max.spout.pendind=2000时,我们在storm ui中看不到任何失败的消息,但是当我们将max.spout.pendind值减少到500或100时,我们在storm ui的spout中会看到很多失败的消息。我的理解是,如果我们保持max.spout.pending较低,那么就不会有任何失败的消息,因为没有任何消息会超时,但它的行为方式相反。我们使用的是来自HDP2.6.5版本的Storm1.1.0版本。
我们有一个Kafka喷口和两个螺栓。
KafkaSpout Parallelism - 1
Processing Bolt Parallelism - 1
Custom Kafka Writer Bolt Parallelism - 1
有人知道这件事吗?
3条答案
按热度按时间jw5wzhpr1#
首先你要做的是在StormUI上检查延迟的统计数据。您还应该了解螺栓/喷嘴是如何加载的(容量统计)。元组的发射率与数据的下沉率相比真的很高吗,这是一个迹象,我得到当你提到,增加悬而未决的喷口是解决问题。你能提供这些数据吗。。另一个值得探讨的部分是增加元组上的任务超时(以查看这是否会导致重播和淹没拓扑)
ztmd8pv52#
请查找以下拓扑统计信息:
cvxl0en23#
这很有趣。你说得对,按照我的步骤缩小范围,
在peek load上上传拓扑可视化屏幕的截图。
检查有无颜色变为棕色/红色的螺栓。红色表示螺栓处理记录花费的时间太多。
你的喷口/螺栓执行器每秒处理1k元组要少得多。
您使用的机器数量?
如果元组在“kafkaspout”中失败,那么大部分时间意味着超时错误。
在处理完有多少事件元组失败后,找出原因。