gpt4 book ai didi

apache-spark - 为什么我只能看到一个 Spark Streaming kafkaReceiver

转载 作者:行者123 更新时间:2023-12-05 00:59:14 24 4
gpt4 key购买 nike

我很困惑为什么我只能在 spark web UI 页面(8080)中看到一个 KafkaReceiver,
但是我在Kafka中有10个分区,我在spark集群中使用了10个核心,我的代码在python中如下:
kvs = KafkaUtils.createStream(ssc, zkQuorum, "spark-streaming-consumer",{topic: 10})
我想 KafkaReceivers 数字应该是 10 而不是 1。
我很困惑。
先感谢您!

最佳答案

kvs = KafkaUtils.createStream(ssc, zkQuorum, "spark-streaming-consumer",{topic: 10})

该代码创建了 1 个具有 10 个线程的接收器。每个线程将附加到一个分区,所有数据将由 1 个消费者使用 1 个核心提取。所有其他内核将(可能)处理收到的数据。

如果你想有 10 个接收器,每个接收器连接到 1 个分区,使用 1 个核心,你应该这样做:(在 Scala 中,我的 Python 很弱,但你明白了):
val recvs = (1 to 10).map(i => KafkaUtils.createStream(ssc, zkQuorum, "spark-streaming-consumer",{topic: 1}) 
val kafkaData = ssc.union(recvs)

考虑到 Spark 需要额外的内核来处理接收到的数据。

关于apache-spark - 为什么我只能看到一个 Spark Streaming kafkaReceiver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31079655/

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