【问题标题】:Spark Streaming Kafka Stream batch executionSpark Streaming Kafka Stream 批量执行
【发布时间】: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


【解决方案1】:

您可以使用 kafka-stream api,并固定一个窗口时间来一次只对主题中的事件执行聚合和转换一批。有关窗口的移动信息,请查看https://kafka.apache.org/21/documentation/streams/developer-guide/dsl-api.html#windowing

【讨论】:

    猜你喜欢
    • 2017-02-20
    • 2017-12-18
    • 1970-01-01
    • 2019-03-28
    • 2019-08-08
    • 2016-05-04
    • 2018-01-13
    • 2016-03-12
    • 2018-05-17
    相关资源
    最近更新 更多