Трансляция, созданная NewHadoopRDD, не будет удалена? - PullRequest
0 голосов
/ 07 ноября 2018

Я хочу читать файлы в формате 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. Трансляция будет удалена правильно.

Итак, есть ли какой-то конфиг, который я пропустил? или что-то другое? Любое предложение? Спасибо.

1 Ответ

0 голосов
/ 09 ноября 2018

Решите это сами.

Это ошибка для искры 2.1 и 2.2.

SPARK-21357 , этот джира описывает, что произошло.

...