【问题标题】:Spark Streaming process different DStreams in parallel and process jobs within one DStream linearlySpark Streaming 并行处理不同的 DStream,并在一个 DStream 内线性处理作业
【发布时间】:2019-03-31 21:30:05
【问题描述】:

我有一个应用程序需要从 Kafka 队列中消费,以维护每个主题的批处理顺序。我为每个主题创建了不同的 DStream。但是当我运行它时,每个主题都是按顺序使用的。如果我设置“spark.streaming.concurrentJob=4”(n>1),那么主题是并行使用的,但在相同的主题批次内也并行处理。 (我需要避免) 有没有一种方法可以并行处理不同的 DStream,并在一个 DStream 中线性处理作业。

【问题讨论】:

    标签: apache-spark apache-kafka


    【解决方案1】:

    我不会创建多个作业,而是将源运算符的并行度设置为主题分区的数量。更多信息请参考这个link

    【讨论】:

    • 每个不同的数据流需要不同的数据格式,这就是我需要分别消费每个数据流的原因。
    • 然后您可以创建多个输入源(单个作业的),每个输入源具有不同的语义,并将它们合并。
    • 您的意思是为每个数据流创建单独的 Spark 应用程序。
    • 不,您将只有一个流应用程序。应用程序拓扑将由几个源运算符组成。每个源运算符可能有不同的源和语义。您将合并这些源运算符,这将是您的整体输入流。
    • 它不会并行处理不同的主题。你能用伪代码澄清你的解决方案吗?因为我认为它不能解决我的担忧
    猜你喜欢
    • 1970-01-01
    • 2016-02-05
    • 2020-05-02
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 2019-03-18
    • 2020-06-03
    相关资源
    最近更新 更多