Spark Streaming transformation 中部分代码不会执行

Joy_s 2017-09-18 05:06:37
在ExceptionUser类reduceByKey这个算子中,调用了Print.print()方法,但这个方法为什么在spark streaming运行中不执行呢?

public class ExceptionUser {
private static Logger logger = Logger.getLogger(ExceptionUser.class);
private static final String KAFKA_TOPIC = "TopicA";
public static void main(String[] args) throws Exception {
System.setProperty("hadoop.home.dir", "D:\\checkpoint\\hadoop-common-2.2.0-bin-master");
SparkConf conf = new SparkConf().setMaster("local
  • "
  • ).setAppName("WordsCount");
    JavaStreamingContext jssc = new JavaStreamingContext(conf, Durations.milliseconds(4000));

    Map<String, String> kafkaParams = new HashMap<String, String>();
    kafkaParams.put("bootstrap.servers", "127.0.0.1:9092");
    kafkaParams.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
    kafkaParams.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
    kafkaParams.put("group.id", "lingroup");
    //kafkaParams.put("auto.offset.reset", "latest");

    Set<String> topics = new HashSet<String>();
    topics.add(KAFKA_TOPIC);

    JavaPairInputDStream<String, String> stream = org.apache.spark.streaming.kafka.KafkaUtils.
    createDirectStream(jssc, String.class, String.class, StringDecoder.class, StringDecoder.class, kafkaParams, topics);

    JavaPairDStream<String, Integer> transDStream = stream.flatMap(new FlatMapFunction<Tuple2<String,String>, String>() {
    public Iterator<String> call(Tuple2<String, String> t) throws Exception {
    return Arrays.asList(t._2.split(" ")).iterator();
    }
    }).mapToPair(new PairFunction<String, String, Integer>() {
    public Tuple2<String, Integer> call(String t) throws Exception {
    return new Tuple2<String, Integer>(t, 1);
    }
    }).reduceByKey(new Function2<Integer, Integer, Integer>() {
    public Integer call(Integer v1, Integer v2) throws Exception {
    // 这一行代码不执行
    Print.print(v1);
    // 这一行也不执行
    System.out.println("#######" + v1);
    return v1 + v2;
    }
    });

    transDStream.print();

    jssc.checkpoint("file:///D:/checkpoint/");
    jssc.start();
    jssc.awaitTermination();
    }
    }



public class Print {

public static void print(Integer i){

System.out.println("--------------------------------");
System.out.println(i);
System.out.println("--------------------------------");

}

}
...全文
304 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
张某码 2017-09-20
  • 打赏
  • 举报
回复
你确定获取到了数据吗?在本地debug下看看咯

1,261

社区成员

发帖
与我相关
我的任务
社区描述
Spark由Scala写成,是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于MapReduce算法实现的分布式计算。
社区管理员
  • Spark
  • shiter
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧