带升级的KafkaSpout的Storm Pacemaker

时间:2018-11-02 17:28:47

标签: apache-storm

我对起搏器的使用有疑问。我们在1.0.2上有一个当前正在运行的Storm集群,并且正在将其迁移到1.2.2。我们还使用KafkaSpout来使用KAfka主题中的数据。 现在,由于该版本适用于Kafka 0.10 +,由于偏移量不会存储在ZK中,因此ZK的大部分负载将被取消。

考虑到这一点,我们也开始考虑起搏器以进一步减轻ZK的负担是否有意义?

我们的集群有70多名主管和大约70名工人,还有一些未使用的职位。另外,我们大约有9100多个执行程序/任务正在运行。

我还有一个关于心跳的问题,谁都将其发送给谁?据我了解,工人和主管将他们的心跳发送给ZK,这是Pacemaker缓解的。任务呢?他们还会发送心跳吗?如果是,那是ZK还是在其他地方?有一个名为 task.heartbeat.frequency.secs 的配置,这使我更加困惑。

我问这的原因是,如果没有将任务级别的心跳信号发送到ZK,则很明显不需要使用Pacemaker。这是因为在没有将偏移提交给ZK的情况下,负载将大大降低。我的评估正确吗?还是Pacemaker仍然是可行的选择?任何线索将不胜感激。

1 个答案:

答案 0 :(得分:0)

  1. Pacemaker是一个可选的Storm守护程序,旨在处理来自工作程序的心跳,并实现为内存中存储。如果ZK成为瓶颈,因为风暴集群规模扩大,您可以使用它

  2. supervisornimbus报告心跳,它是活动的,用于容错,并且通过 supervisor.heartbeat.frequency.secs 设置了频率, 存储在ZK中

    worker应该心跳到supervisor,频率是通过 worker.heartbeat.frequency.secs 设置的。这些心跳存储在本地文件系统中。

  3. task.heartbeat.frequency.secs :任务(执行者)应多久对主设备(Nimbus)进行状态检测,它在风暴中永远不会生效,并且已不推荐使用Storm v2.0 RPC心跳报告

    此心跳状态统计了存储在ZK中的哪些执行者