【发布时间】:2018-03-01 18:33:06
【问题描述】:
我计划一个从 Apache Kafka 读取数据并在(可能很耗时)处理后将数据保存到数据库的应用程序。
我的案例是消息,而不是流,但为了可扩展性,我正在考虑将其插入 Spark 或 Flink,但无法掌握这些扩展的方式:当我的应用程序作为 Spark/Flink 的一部分时,是否应该读取一些数据从 Kafka 然后退出还是继续阅读?
Spark/Flink 将如何决定它们必须生成更多我的应用实例以提高吞吐量?
谢谢!
【问题讨论】:
-
Spark 具有动态分配功能,它会在我记得微批处理持续时间接近微批处理间隔时创建新的执行程序
-
我对这两个都是新手 - 我的应用程序应该如何运行?它应该只从 Kafka 读取一次并退出吗?如果队列中有更多数据,Spark/Flink 如何知道它需要创建新作业来读取?
-
只需创建流式作业,Spark 会自动扩展执行器的数量
-
我不了解 Flink,所以我不想写它,但是 - AFAIK - 它也有一些自动缩放功能
标签: apache-spark apache-kafka apache-flink