![](/img/trans.png)
[英]How to set offset committed by the consumer group using Spark's Direct Stream for Kafka?
[英]how to specify consumer group in Kafka Spark Streaming using direct stream
如何使用直接流API为kafka spark流指定使用者组ID。
HashMap<String, String> kafkaParams = new HashMap<String, String>();
kafkaParams.put("metadata.broker.list", brokers);
kafkaParams.put("auto.offset.reset", "largest");
kafkaParams.put("group.id", "app1");
JavaPairInputDStream<String, String> messages = KafkaUtils.createDirectStream(
jssc,
String.class,
String.class,
StringDecoder.class,
StringDecoder.class,
kafkaParams,
topicsSet
);
虽然我已经指定配置不确定是否遗漏了什么。 使用spark1.3
kafkaParams.put("group.id", "app1");
直接流API使用低级Kafka API,因此无论如何都不使用消费者组。 如果要将消费者组与Spark Streaming一起使用,则必须使用基于接收器的API。
spark-streaming-kafka-0-8
中的createDirectStream
不支持组模式,因为它使用的是低级Kafka API。
但spark-streaming-kafka-0-10
支持群组模式。
在0.9.0.0中,我们引入了新的Java消费者作为旧的基于Scala的简单和高级消费者的替代品。 新老消费者的配置如下所述。
在New Consumer Configs
,它具有group.id
项。
Spark Streaming integration for Kafka 0.10
的Spark Streaming integration for Kafka 0.10
正在使用新的API。 https://spark.apache.org/docs/2.1.1/streaming-kafka-0-10-integration.html
Kafka 0.10的Spark Streaming集成在设计上与0.8 Direct Stream方法类似。 它提供简单的并行性,Kafka分区和Spark分区之间的1:1对应关系,以及对偏移和元数据的访问。 但是,由于较新的集成使用新的Kafka使用者API而不是简单的API,因此使用方法存在显着差异。
我已经在spark-streaming-kafka-0-10
测试了组模式,它确实有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.