Jac*_*ack 4 apache-kafka apache-spark spark-streaming
我很困惑,为什么我只能在spark web UI页面中看到一个KafkaReceiver(8080),但我在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})
Run Code Online (Sandbox Code Playgroud)
该代码创建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)
Run Code Online (Sandbox Code Playgroud)
考虑到Spark需要额外的内核来处理接收的数据.
| 归档时间: |
|
| 查看次数: |
638 次 |
| 最近记录: |