Я хочу читать файлы в формате hdf с помощью потокового воспроизведения. И я пишу такой код, как этот.
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);
Все в порядке, но я обнаружил, что блок RDD, показанный интерфейсом spark, будет увеличиваться.
Затем я обнаружил, что блоки 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. Когда я меняю версию свечи на 1.6.2. Трансляция будет удалена правильно.
Итак, есть ли какой-то конфиг, который я пропустил? или что-то другое?
Любое предложение? Спасибо.