我在群集上运行了一个火花流式传输作业。 Spark作业从Kafka中提取消息,并在将处理后的数据转储到数据库之前执行所需的处理。我根据当前负载调整了我的群集大小。但是这种负载需求可能会在未来上升/下降。我想知道在没有重新启动作业的情况下促进这种自动缩放的技术。如果使用kakfa(在我的情况下),缩放变得更加复杂,因为我不喜欢在有状态流中移动分区。目前集群完全在内部但我不介意迁移到云,如果这有助于扩展用例。
答案 0 :(得分:0)
这不是答案。只是一些笔记
"有状态流媒体"。那是什么意思?火花中的所有状态都是分布的。而且你不应该依赖本地系统,好像某个任务失败了,它可以发送给任何其他执行者。
您是否谈到增加群集的大小或专用于群集中的火花作业的资源?
如果是第一个节点,则需要监控每个节点(内存,CPU)以及何时(达到某个阈值)添加更多节点。
如果是第二个:我们没有找到好的解决方案。 Spark提供了自动缩放功能'功能,但它与卡夫卡流媒体无法正常工作。