gpt4 book ai didi

apache-spark - Spark : processing multiple kafka topic in parallel

转载 作者:行者123 更新时间:2023-12-03 12:13:10 25 4
gpt4 key购买 nike

我正在使用 spark 1.5.2 .我需要使用 kafka 作为流媒体源来运行 spark 流媒体作业。我需要阅读 kafka 中的多个主题并以不同方式处理每个主题。

  • 在同一份工作中这样做是个好主意吗?如果是这样,我应该为每个主题创建具有多个分区或不同流的单个流吗?
  • 我正在使用卡夫卡直接 Steam 。据我所知,spark 会为每个分区启动长时间运行的接收器。我有一个相对较小的集群,6 个节点,每个节点有 4 个核心。如果我在每个主题中有很多主题和分区,效率会因为大多数执行者忙于长时间运行的接收者而受到影响吗? 如果我的理解有误,请纠正我
  • 最佳答案

    我做了以下观察,以防它对某人有帮助:

  • 在 kafka 直接流中,接收器不会作为长时间运行的任务运行。在每个批处理间隔开始时,首先从 executors 中的 kafka 读取数据。一旦读取,处理部分就会接管。
  • 如果我们创建具有多个主题的单个流,则主题将一个接一个地读取。此外,过滤 dstream 以应用不同的处理逻辑将为作业添加另一个步骤
  • 创建多个流有两种帮助: 1. 您不需要应用过滤器操作来以不同的方式处理不同的主题。 2.您可以并行读取多个流(而不是在单个流的情况下一个接一个)。为此,有一个未记录的配置参数 spark.streaming.concurrentJobs* .所以,我决定创建多个流。
    sparkConf.set("spark.streaming.concurrentJobs", "4");
  • 关于apache-spark - Spark : processing multiple kafka topic in parallel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34430636/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com