我想通过火花流读取hdfs上的文件。我写一些这样的代码。
SparkConf sparkConf = new SparkConf().setMaster("local[4]");
JavaStreamingContext streamingContext = new JavaStreamingContext(sparkConf,
Durations.seconds(batchTime);
JavaDStream<String> sourceStream = streamingContext.textFileStream(hdfsPath)
sourceStream.mapToPair(pairFuntion)
.reduceByKey(reduceByKeyFunction)
.foreachRDD(foreachRddFunction);
一切正常,但是我发现spark UI所显示的RDD Block将会继续增加。 然后我发现RDD块是NewHadoopRDD创建的所有广播
//A Hadoop Configuration can be about 10 KB, which is pretty big, so
broadcast it
private val confBroadcast =
sc.broadcast(newSerializableConfiguration(_conf))
我的spark版本是2.2.0。当我将spark版本更改为1.6.2时。广播将被正确删除。
那么,我错过了一些配置吗?或者是其他东西? 有什么建议吗?谢谢。