当spout使用storm在word count中发出数据时,在bolt(split)开始处理之前有一个很大的延迟

cgyqldqp  于 2021-06-24  发布在  Storm
关注(0)|答案(0)|浏览(199)

我们已经建立了一个运行apachestorm的集群,并测试了字数。有三个组成部分:喷口,分裂和计数。因为字数计算非常简单,我想读者应该了解组件和拓扑结构。
问题来了。斯普利特有四个遗嘱执行人,也算在内。提交拓扑后,当spout第一次开始发出要split的消息时,split开始处理来自spout的数据之前会有一个很大的延迟(大约1分钟甚至2分钟)。如果我们重新启动split executor所在的worker,那么新启动的split executor也需要几十秒才能开始处理数据。
我想知道这对暴风雪来说是否正常?由于我们的实验旨在重新安排执行者在工作人员中的分配以提高绩效,如此大的延迟将导致绩效低下,违反我们的目标。
我们将原木添加到喷口和螺栓中,以便在第一次开始加工时将其记录下来。我们发现,分裂后立即开始工作喷口,而计数等待了很长时间才开始。所有的遗嘱执行人都住在同一个工人家里。我们测试了很多次,结果是相似的。
日志信息如下:
2018-12-25 19:45:26.693 stdio thread-26-spout-executor[13 13][info]喷口开始加工。2018-12-25 19:45:26.701 stdio thread-18-split-executor[9][info]split start>待处理。2018-12-25 19:45:26.703 stdio thread-30-split-executor[10][info]split开始处理。2018-12-25 19:45:26.747 stdio thread-20-split-executor[11][info]split开始处理。2018-12-25 19:45:26.748 stdio thread-6-split-executor[12 12][info]split开始处理。2018-12-25 19:47:16.366 stdio thread-10-count-executor[7][info]count开始处理。2018-12-25 19:47:16.367 stdio thread-4-count-executor[8][info]count开始处理。2018-12-25 19:47:16.368 stdio thread-28-count-executor[5][info]count开始处理。2018-12-25 19:47:16.369 stdio thread-16-count-executor[6][info]count开始处理。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题