Apache kafka 在最新的卡夫卡版本0.10.1.1中,将使用什么来代替卡夫卡提尔

Apache kafka 在最新的卡夫卡版本0.10.1.1中,将使用什么来代替卡夫卡提尔,apache-kafka,Apache Kafka,我已经升级了我的卡夫卡和卡夫卡火花流,但在改变一些方法的同时,我面临着一些挑战。就像卡夫卡提尔一样,迭代器也会抛出错误。我的卡夫卡版本是0.10.1.1。 因此,如果有人知道如何修复这些更改,那将是非常棒的。 谢谢KafkaUtils是Apache Spark流媒体的一部分,而不是Apache Kafka的一部分 org.apache.spark.streaming.kafka.KafkaUtils之前的KafkaUtils包是“org.apache.spark.streaming.kafka”

我已经升级了我的卡夫卡和卡夫卡火花流,但在改变一些方法的同时,我面临着一些挑战。就像卡夫卡提尔一样,迭代器也会抛出错误。我的卡夫卡版本是0.10.1.1。 因此,如果有人知道如何修复这些更改,那将是非常棒的。
谢谢

KafkaUtils是Apache Spark流媒体的一部分,而不是Apache Kafka的一部分


org.apache.spark.streaming.kafka.KafkaUtils

之前的KafkaUtils包是“org.apache.spark.streaming.kafka”。最新的包是“org.apache.spark.streaming.kafka010”

要设置kafkaparams和主题详细信息,请检查以下代码段:

import java.util.*;
import org.apache.spark.SparkConf;
import org.apache.spark.TaskContext;
import org.apache.spark.api.java.*;
import org.apache.spark.api.java.function.*;
import org.apache.spark.streaming.api.java.*;
import org.apache.spark.streaming.kafka010.*;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.common.TopicPartition;
import org.apache.kafka.common.serialization.StringDeserializer;
import scala.Tuple2;

Map<String, Object> kafkaParams = new HashMap<>();
kafkaParams.put("bootstrap.servers", "localhost:9092,anotherhost:9092");
kafkaParams.put("key.deserializer", StringDeserializer.class);
kafkaParams.put("value.deserializer", StringDeserializer.class);
kafkaParams.put("group.id", "use_a_separate_group_id_for_each_stream");
kafkaParams.put("auto.offset.reset", "latest");
kafkaParams.put("enable.auto.commit", false);

Collection<String> topics = Arrays.asList("topicA", "topicB");

final JavaInputDStream<ConsumerRecord<String, String>> stream =
  KafkaUtils.createDirectStream(
    streamingContext,
    LocationStrategies.PreferConsistent(),
    ConsumerStrategies.<String, String>Subscribe(topics, kafkaParams)
  );

stream.mapToPair(
  new PairFunction<ConsumerRecord<String, String>, String, String>() {
    @Override
    public Tuple2<String, String> call(ConsumerRecord<String, String> record) {
      return new Tuple2<>(record.key(), record.value());
    }
  })
import java.util.*;
导入org.apache.spark.SparkConf;
导入org.apache.spark.TaskContext;
导入org.apache.spark.api.java.*;
导入org.apache.spark.api.java.function.*;
导入org.apache.spark.streaming.api.java.*;
导入org.apache.spark.streaming.kafka010.*;
导入org.apache.kafka.clients.consumer.ConsumerRecord;
导入org.apache.kafka.common.TopicPartition;
导入org.apache.kafka.common.serialization.StringDeserializer;
导入scala.Tuple2;
Map kafkaParams=新HashMap();
kafkaParams.put(“bootstrap.servers”,“本地主机:9092,另一台主机:9092”);
kafkaParams.put(“key.deserializer”,StringDeserializer.class);
kafkaParams.put(“value.deserializer”,StringDeserializer.class);
kafkaParams.put(“group.id”,“为每个流使用单独的组id”);
kafkaParams.put(“自动偏移重置”、“最新”);
kafkaParams.put(“enable.auto.commit”,false);
集合主题=Arrays.asList(“topicA”、“topicB”);
最终JavaInputDStream流=
KafkaUtils.createDirectStream(
流线型背景,
LocationStrategies.PreferConsistent(),
订阅(主题,卡夫卡帕拉)
);
stream.mapToPair(
新PairFunction(){
@凌驾
公用元组2呼叫(消费者记录记录){
返回新的Tuple2(record.key(),record.value());
}
})

为了进一步参考,请访问以下链接

,但该链接会引发一些错误,这就是为什么我们还需要更改kafka utils和package的参数。那么,如果你能告诉我,新的卡夫卡通片包是什么,主题和卡夫卡通片的参数是什么。那太好了。