问题描述
spark新手,如何在driver中接收多个stream,比如sparkexample中JavaNetworkWordCount例子SparkConfsparkConf=newSparkConf().setAppName("JavaNetworkWordCount");JavaStreamingContextssc=newJavaStreamingContext(sparkConf,newDuration(10000));JavaReceiverInputDStream<String>lines=ssc.socketTextStream(host,ip,StorageLevels.MEMORY_ONLY);
这个只接收了一个数据源的流,在官网上有查到可以支持多源接收,但是没有给出例子,本以为可以按如下实现SparkConfsparkConf=newSparkConf().setAppName("JavaNetworkWordCount");JavaStreamingContextssc=newJavaStreamingContext(sparkConf,newDuration(10000));JavaReceiverInputDStream<String>lines=ssc.socketTextStream(host1,ip1,StorageLevels.MEMORY_ONLY);JavaReceiverInputDStream<String>lines2=ssc.socketTextStream(host2,ip2,StorageLevels.MEMORY_ONLY);JavaDStream<String>words=lines.union(lines1);//利用union来合并
但发现这种方式不行,union后的transform操作都不再执行。另外发现csdn上spark模块问题好少,有没有其他论坛可以交流,stackoverflow需要翻墙才能体问,dt!
解决方案
本帖最后由 u012201996 于 2014-08-20 11:47:03 编辑
解决方案二:
发现transform操作只处理了其中一个流,另外个流未处理,action操作未执行