Spark Streaming问题。 (JAVA)

时间:2017-04-05 08:37:25

标签: apache-spark spark-streaming

我正在尝试使用spark streaming运行网络字数统计工作。代码如下:

public class myclass {
public static Iterator<String> myfunc(String s){
    String ar[]=s.split(" ");
    List<String> l = new ArrayList<String>();
    for(String a:ar){
        l.add(a);
    }
    return l.iterator();
}
public static void main(String args[]) throws Exception{
SparkConf conf = new SparkConf().setAppName("trial");
JavaStreamingContext jssc = new JavaStreamingContext(conf,Durations.seconds(1));
JavaDStream<String> lines = jssc.socketTextStream("localhost", 7777);
JavaPairDStream<String,Integer> tup=lines.flatMap(s -> myfunc(s)).mapToPair(s -> new Tuple2<String,Integer>(s,1)).reduceByKey((a,b)-> a+b);
tup.print();
jssc.start();
jssc.awaitTermination();
jssc.stop();
jssc.close();
}

}

我使用以下命令运行此作业:

spark-submit --class myclass --master local <myjar.jar>

在另一个终端中,我运行了一个本地服务器:

nc -lk 7777

这项工作运行良好,但它一直在继续......

它每隔一毫秒不断添加新作业。我尝试在本地服务器上添加行,它显示没有任何错误,但仍然工作继续和开放&amp;输出显示。

我浏览了一些使用相同代码的在线教程,代码的结果定期显示如下:

time 14500000ms
__________________
<output>

但在我的情况下并没有发生这种情况,它继续增加以下工作:

Added jobs for time 1450000
Added jobs for time 1460000
Added jobs for time 1470000
. . . . 
. . . .

我做错了什么?

0 个答案:

没有答案