【问题标题】:New directStream API reads topic's partitions sequentially. Why?新的 directStream API 按顺序读取主题的分区。为什么?
【发布时间】:2015-11-30 11:23:00
【问题描述】:

我正在尝试使用 KafkaUtils 中的新 directStream 方法阅读 kafka 主题。 我有 8 个分区的 Kafka 主题。 我在纱线上运行流式作业,有 8 个执行器,每个执行器有 1 个核心(--num-executors 8 --executor-cores 1)。 所以注意到 spark 在一个执行程序中顺序读取所有主题的分区 - 这显然不是我想要的。 我希望 spark 并行读取所有分区。 我怎样才能做到这一点?

提前谢谢你。

【问题讨论】:

  • 您对此有更多见解吗?我使用 spark 独立模式,所以我无法准确设置执行次数,但我很感兴趣如果我有 2 个主题,并且核心总数设置为 2 会发生什么?

标签: apache-spark apache-kafka hadoop-yarn spark-streaming


【解决方案1】:

在创建作业时与 Kafka 进行初始通信,仅用于设置 KafkaRDD 的偏移量 - 更具体地说,是组成集群中 KafkaRDD 的每个 KafkaRDD 分区的偏移量。

一旦作业实际执行,它们就会被用于在每个 Executor 上获取数据。根据您注意到的情况,您可能已经看到了初始通信(来自驱动程序)。如果您看到所有作业都在同一个执行器上执行,那么除了使用 Kafka 之外,还有其他问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-22
    • 1970-01-01
    • 2014-05-21
    • 2020-05-08
    • 1970-01-01
    • 1970-01-01
    • 2022-06-22
    相关资源
    最近更新 更多