风暴起搏器升级Kafka

nxowjjhe  于 2021-06-24  发布在  Storm
关注(0)|答案(1)|浏览(265)

我有一个关于起搏器使用的问题。我们在1.0.2上有一个正在运行的风暴集群,正在将它迁移到1.2.2。我们还使用kafkaspout来使用来自kafka主题的数据。现在,由于kafka0.10+的这个版本,zk的大部分负载都会被释放,因为偏移量不会存储在zk中。
考虑到这一点,我们也开始研究起搏器来进一步降低zk的负荷有意义吗?
我们的集群有70多个主管和大约70个工人,还有一些未使用的插槽。此外,我们还有大约9100多个执行者/任务正在运行。
我的另一个问题是关于心跳和谁把它发给谁?从我所读到的,工人和主管发送他们的心跳到zk,这是起搏器减轻。任务如何?他们也发送心跳吗?如果是的话,那是去zk还是其他地方?有一个名为task.heartbeat.frequency.secs的配置,它让我更加困惑。
我问这个问题的原因是,如果任务级的心跳没有被发送到zk,那么很明显不需要起搏器。这是因为在zk上没有提交偏移量的情况下,负载将显著降低。我的评估是正确的还是起搏器仍然是一个可行的选择?任何线索都将不胜感激。

lp0sw83n

lp0sw83n1#

pacemaker是一个可选的storm守护进程,用于处理来自workers的心跳信号,它作为内存存储实现。如果zk因为风暴群的扩大而成为瓶颈,您可以使用它 supervisor 将心跳报告给 nimbus 它是活动的,用于容错,频率通过supervisor.heartbeat.frequency.secs设置,存储在zk中。
以及 worker 应该心跳到 supervisor ,频率通过worker.heartbeat.frequency.secs设置。这些心跳信号存储在本地文件系统中。
task.heartbeat.frequency.secs:任务(执行者)应该多久将其状态心跳到主服务器(nimbus)上一次,它在storm中永远不会生效,并且在storm v2.0 rpc心跳报告中已被弃用
这个heartbeat统计在zk中为哪个worker分配了哪些执行器。

相关问题