apache-storm - 带有升级版 KafkaSpout 的 Storm Pacemaker
问题描述
我对 Pacemaker 的使用有疑问。我们目前在 1.0.2 上有一个正在运行的 Storm 集群,并且正在将其迁移到 1.2.2。我们还使用 KafkaSpout 来使用来自 KAfka 主题的数据。现在,自从 Kafka 0.10 + 发布以来,大部分来自 ZK 的负载将被移除,因为偏移量不会存储在 ZK 中。
考虑到这一点,我们是否也开始关注 Pacemaker 以进一步减少 ZK 上的负载?
我们的集群有 70 多个主管和大约 70 个工作人员,其中有一些未使用的插槽。此外,我们有大约 9100 多个执行程序/任务正在运行。
我的另一个问题是关于心跳以及谁将它发送给谁?根据我的阅读,工人和主管将他们的心跳发送给 ZK,这是 Pacemaker 所缓解的。任务怎么样?他们也发送心跳吗?如果是,那么是 ZK 还是其他地方?有一个名为task.heartbeat.frequency.secs的配置让我更加困惑。
我问这个的原因是,如果没有将任务级心跳发送到 ZK,那么很明显不需要 Pacemaker。这是因为没有向 ZK 提交任何偏移量,负载将大大减少。我的评估是否正确,或者起搏器仍然是一个可行的选择?任何线索将不胜感激。
解决方案
Pacemaker是一个可选的 Storm 守护进程,旨在处理来自工作人员的心跳,它被实现为内存存储。如果 ZK 成为瓶颈,你可以使用它,因为风暴集群扩大了规模
supervisor
报告心跳nimbus
它是活着的,用于容错,频率通过supervisor.heartbeat.frequency.secs设置,存储在 ZK 中。并且
worker
应该心跳到supervisor
,频率是通过worker.heartbeat.frequency.secs设置的。这些心跳存储在本地文件系统中。task.heartbeat.frequency.secs : 任务(executor)多久将其状态心跳发送到 master(Nimbus),它
在storm中永远不会生效,并且已被Storm v2.0 RPC心跳报告弃用这个心跳统计了哪些执行器被分配给了哪个工作人员,存储在 ZK 中。
推荐阅读
- ios - 设置 Text().frame(maxWidth: .infinity) 后如何保持文本作为前导对齐
- ios - 如何在 Swift 5 中横向显示 MPMediaPicker?
- html - 无法以html在手机中显示图像
- twilio - Twilio REST API(通过 Python SDK)调用时间限制
- python - 频域图像直方图
- python - 方法的别名被视为成员函数
- c# - 如何以 Html 形式复制 Action 值
- shell - 从视频中间删除一个子部分
- heroku - 如何在不同的 URL 下启动现有的 Heroku 应用
- javascript - 为什么两个属性不同的html元素是deepStrictEqual