kafka将引发流式java api问题
我是卡夫卡和火花的初学者。我想通过spark streaming对从卡夫卡收到的特定主题的数据进行实时处理。我无法使用createStream函数返回的JavaPairReceiverInputStreamkafka将引发流式java api问题,java,apache-spark,Java,Apache Spark,我是卡夫卡和火花的初学者。我想通过spark streaming对从卡夫卡收到的特定主题的数据进行实时处理。我无法使用createStream函数返回的JavaPairReceiverInputStream SparkConf conf = new SparkConf().setMaster("local[2]").setAppName( "testwordCount"); JavaStreamingContext jssc = new JavaS
SparkConf conf = new SparkConf().setMaster("local[2]").setAppName(
"testwordCount");
JavaStreamingContext jssc = new JavaStreamingContext(conf,
Durations.seconds(1));
Map<String, Integer> topics_map = new HashMap<String, Integer>();
topics_map.put("Customtopic", 10);
JavaPairReceiverInputDStream<String, String> kafkaStream = KafkaUtils
.createStream(jssc, "localhost:2181", "kafkasparkconsumer",
topics_map);
SparkConf conf=new SparkConf().setMaster(“local[2]”)。setAppName(
“testwordCount”);
JavaStreamingContext jssc=新的JavaStreamingContext(conf,
持续时间:秒(1);
映射主题_Map=newhashmap();
主题地图放置(“自定义主题”,10);
JavaPairReceiverInputStream kafkaStream=KafkaUtils
.createStream(jssc,“本地主机:2181”,“kafkasparkconsumer”,
主题(地图),;
下面的代码给出了一个错误:
JavaPairDStream<String, Integer> wordCounts = kafkaStream.map(
new PairFunction<String, String, Integer>() {
@Override public Tuple2<String, Integer> call(String s) {
return new Tuple2<String, Integer>(s, 1);
}
}).reduceByKey(new Function2<Integer, Integer, Integer>() {
@Override
public Integer call(Integer i1, Integer i2) {
return i1 + i2;
}
});
wordCounts.print();
JavaPairDStream wordCounts=kafkaStream.map(
新PairFunction(){
@重写公共元组2调用(字符串s){
返回新的Tuple2(s,1);
}
}).reduceByKey(新功能2(){
@凌驾
公共整数调用(整数i1、整数i2){
返回i1+i2;
}
});
wordCounts.print();
JavaPairDStream类型中的方法映射(函数,R>)不适用于参数(新PairFunction(){})SparkStreamingKafka.java/Kafka Spark/src/com/sd/Kafka line 43 java问题
我使用的spark版本是1.2.0。我找不到处理卡夫卡消息的JavaAPI示例。有人能告诉我需要更改什么吗?您调用了错误的方法。在java中,如果想要获得一对,应该调用。请尝试以下代码:
JavaPairDStream<String, Integer> pairs = kafkaStream
.mapToPair(new PairFunction<Tuple2<String, String>, String, Integer>() {
@Override public Tuple2<String, Integer> call(Tuple2<String, String> word) throws Exception {
return new Tuple2<String, Integer>(word._2(), 1);
}
}).reduceByKey(new Function2<Integer, Integer, Integer>() {
@Override public Integer call(Integer integer, Integer integer2) throws Exception {
return integer + integer2;
}
});
pairs.print();
jssc.start();
jssc.awaitTermination();
JavaPairDStream pairs=kafkaStream
.mapToPair(新的PairFunction(){
@重写公共Tuple2调用(Tuple2字)引发异常{
返回新的元组2(word._2(),1);
}
}).reduceByKey(新功能2(){
@重写公共整数调用(整数、整数2)引发异常{
返回整数+整数2;
}
});
pairs.print();
jssc.start();
jssc.aittimination();
kafkaStream返回一个元组。检查这个
JavaPairReceiverInputDStream<String, String> kafkaStream = KafkaUtils
.createStream(jssc, "localhost:2181", "kafkasparkconsumer",
topics_map);
JavaDStream<String> lines = kafkaStream
.map(new Function<Tuple2<String, String>, String>() {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public String call(Tuple2<String, String> tuple2) {
return tuple2._2();
}
});
JavaPairReceiverInputDStream kafkaStream=KafkaUtils
.createStream(jssc,“本地主机:2181”,“kafkasparkconsumer”,
主题(地图),;
JavaDStream lines=kafkaStream
.map(新函数(){
/**
*
*/
私有静态最终长serialVersionUID=1L;
@凌驾
公共字符串调用(Tuple2 Tuple2){
返回tuple2._2();
}
});