繁体   English   中英

Spark Streaming 和 Kafka 集成中的并行任务数

[英]Number Of Parallel Task in Spark Streaming and Kafka Integration

我是 Spark Streaming 的新手。我有一些基本的疑问。有人可以帮我澄清一下吗:

  1. 我的消息大小是标准的。每条消息 1Kb。

  2. 主题分区数为 30,使用 dstream 方法从 kafka 消费消息。

  3. 分配给 spark 作业的核心数为:

    ( spark.max.cores=6| spark.executor.cores=2)

  4. 据我了解,Kafka 分区数 = RDD 分区数:

     In this case dstream approach: dstream.forEachRdd(rdd->{ rdd.forEachPartition{ } **Question**:This loop forEachPartiton will execute 30 times??As there are 30 Kafka partitions

    }

  5. 另外由于我给了6核,从kafka中并行消耗多少分区

    问题:是一次6个分区还是
    30/6 =一次5个分区? 有人可以详细说明这在 dstream 方法中的工作原理吗?

“是一次6个分区还是30/6=一次5个分区?”

正如您已经说过的,Direct Stream 中生成的 RDD 将匹配 Kafka 主题的分区数。

在每个微批处理上,Spark 将创建 30 个任务来读取每个分区。 由于您已将最大核心数设置为 6,因此作业能够并行读取 6 个分区。 一旦其中一项任务完成,就可以使用一个新分区。

请记住,即使您在其中一个分区中没有新数据,生成的 RDD 仍然有 30 个分区,所以,是的,循环forEachPartiton将在每个微批次中迭代 30 次。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM