当前位置: 首页 > 知识库问答 >
问题:

用于火花流的Kafka主题分区

饶元章
2023-03-14

我有一些关于Kafka主题分区->spark流媒体资源利用的用例,我想更清楚地说明这些用例。

我使用spark独立模式,所以我只有“执行者总数”和“执行者内存”的设置。据我所知并根据文档,将并行性引入Spark streaming的方法是使用分区的Kafka主题->RDD将具有与Kafka相同数量的分区,当我使用spark-kafka直接流集成时。

因此,如果我在主题中有一个分区和一个执行器核心,该核心将顺序读取Kafka。

如果我有:

>

  • 主题中有2个分区,而只有1个执行器核心?这个核心会不会先从一个分区读取,然后再从第二个分区读取,这样对主题进行分区就没有好处了?

  • 共有1个答案

    厍建义
    2023-03-14

    基本规则是,您可以扩展到Kafka分区的数量。如果将spark.executor.cores设置为大于分区数,则某些线程将处于空闲状态。如果它小于分区的数量,Spark将从一个分区读取线程,然后从另一个分区读取线程。所以:

    >

  • 2个分区,1个执行器:从一个分区读取,然后再从另一个分区读取。(我不知道Spark是如何决定在切换之前从每个读取多少内容的)

    2P,2C:并行执行

    还要注意,如果通过在reducebykey()等函数中显式设置数据分区的数量,在整个流水线中保持分区/RDDs的数量不变,则还可以看到更好的处理吞吐量。

  •  类似资料:
    • 我们需要在Kafka主题上实现连接,同时考虑延迟数据或“不在连接中”,这意味着流中延迟或不在连接中的数据不会被丢弃/丢失,但会被标记为超时, 连接的结果被产生以输出Kafka主题(如果发生超时字段)。 (独立部署中的火花2.1.1,Kafka 10) Kafka在主题:X,Y,...输出主题结果将如下所示: 我发现三个解决方案写在这里,1和2从火花流官方留档,但与我们不相关(数据不在加入Dtsre

    • 当前设置:Spark流作业处理timeseries数据的Kafka主题。大约每秒就有不同传感器的新数据进来。另外,批处理间隔为1秒。通过,有状态数据被计算为一个新流。一旦这个有状态的数据穿过一个treshold,就会生成一个关于Kafka主题的事件。当该值后来降至treshhold以下时,再次触发该主题的事件。 问题:我该如何避免这种情况?最好不要切换框架。在我看来,我正在寻找一个真正的流式(一个

    • 我已经在Ubuntu上设置了Kafka和Spark。我正在尝试阅读Kafka的主题通过火花流使用pyspark(Jupyter笔记本)。Spark既没有读取数据,也没有抛出任何错误。 null Kafka生产者:bin/kafka-console-producer.sh--broker-list localhost:9092--topic new_topic Kafka使用者:bin/kafka-

    • 它没有任何错误,我得到以下错误时,我运行火花提交,任何帮助都非常感谢。谢谢你抽出时间。 线程“main”java.lang.noClassDeffounderror:org/apache/spark/streaming/kafka/kafkautils在kafkasparkstreaming.sparkstreamingtest(kafkasparkstreaming.java:40)在kafka

    • 场景: Kafka- 每个火花流微批次中的逻辑(30秒):< br >读取Json- 我的流媒体工作是阅读大约1000个Kafka主题,大约有10K个Kafkapartitions,吞吐量大约为500万事件/秒。 问题来自 Kafka 分区之间的流量负载不均匀,一些分区的吞吐量大约是较小分区的 50 倍,这会导致 RDD 分区倾斜(因为 KafkaUtils 创建了从 Kafka 分区到 Spar

    • 当一个DLQ被设置为一个Spring云流Kafka消费者时,DLQ写入的主题可以被分区吗?我有一个要求,使密钥等于一个特定的字段,我想知道这将如何与Spring云流。