Перемешивать промежуточные файлы между рабочими местами? - PullRequest
0 голосов
/ 08 июня 2018

Ссылаясь на https://spark.apache.org/docs/1.6.2/programming-guide.html#performance-impact

Shuffle также генерирует большое количество промежуточных файлов на диске.Начиная с версии Spark 1.3 эти файлы сохраняются до тех пор, пока соответствующие RDD больше не используются и не будут собираться мусором.Это сделано для того, чтобы файлы shuffle не создавались заново, если пересчитывается происхождение

Я понимаю, почему эти файлы будут сохранены.Тем не менее, я не могу понять, являются ли эти промежуточные файлы общими для заданий?

Мои эксперименты показывают, что эти случайные файлы НЕ являются общими для заданий.Кто-нибудь может подтвердить?

Сценарий, о котором я говорю: `` `

val rdd1 = sc.text...
val rdd2 = sc.text...

val rdd3 = rdd1.join(rdd2)
// at this point shuffle takes place

//Now, if I do this again:
val rdd4 = rdd1.join(rdd2) 
// will the shuffle files be reused? And I think I ve got the answer, which is know since the rdds do not share the lineage

` ``

Ответы [ 2 ]

0 голосов
/ 08 июня 2018
  • Между заданиями - да.В этом и заключается цель сохранения случайных файлов ( Что означает «Пропущенный этап» в веб-интерфейсе Apache Spark? ).Рассмотрим следующую стенограмму сессии:

    scala> val rdd1 = sc.parallelize(Seq((1, None), (2, None)), 4)
    rdd1: org.apache.spark.rdd.RDD[(Int, None.type)] = ParallelCollectionRDD[0] at parallelize at <console>:24
    
    scala> val rdd2 = sc.parallelize(Seq((1, None), (2, None)), 4)
    rdd2: org.apache.spark.rdd.RDD[(Int, None.type)] = ParallelCollectionRDD[1] at parallelize at <console>:24
    
    scala> val rdd3 = rdd1.join(rdd2)
    rdd3: org.apache.spark.rdd.RDD[(Int, (None.type, None.type))] = MapPartitionsRDD[4] at join at <console>:27
    
    scala> rdd3.count  // First job
    res0: Long = 2
    
    scala> rdd3.foreach(_ => ())  // Second job
    

    и соответствующее состояние интерфейса Spark

    enter image description here

  • Между приложениями - нет.Случайные файлы отбрасываются при закрытии SparkContext.

0 голосов
/ 08 июня 2018

Файлы в случайном порядке предназначены для этапов в работе.Другие задания не смогут использовать эти случайные файлы.Так что, афаик, нет!случайные файлы не могут быть разделены между заданиями

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...