【发布时间】:2019-04-30 20:14:35
【问题描述】:
我是 Spark Streaming 的新手,我有一个关于它的使用的一般性问题。我目前正在实现一个从 Kafka 主题流式传输数据的应用程序。
使用应用程序只运行一次批处理是否是一种常见的场景,例如一天结束,从主题中收集所有数据,进行一些聚合和转换等?
这意味着在使用 spark-submit 启动应用程序后,所有这些内容将在一批中执行,然后应用程序将被关闭。还是构建 Spark Stream 以连续批量运行无休止且永久的流数据?
【问题讨论】:
-
Spark 流式处理是为后者处理的,处理无限的永无止境的数据流。它以可配置大小的批次处理该流。如果每天一次将所有数据从 kafka 转储到 spark 集群中是有意义的,那么您可以在没有 spark 流的情况下运行每日 spark 作业。
-
看看结构化流媒体和
Trigger.Once。它正是为这种处理模式而设计的。 -
感谢大家的意见。我想我会使用 KafkaUtils.createRDD 来获取偏移范围内的数据集 (spark.apache.org/docs/2.3.0/…)。
标签: java apache-spark apache-kafka spark-streaming spark-streaming-kafka