В чем преимущество наличия раздела репликации путем установки STORAGE_LEVEL - PullRequest
0 голосов
/ 04 октября 2018

В чем преимущество наличия раздела репликации путем установки УРОВНЕЙ ХРАНЕНИЯ, таких как MEMORY_ONLY_2, MEMORY_AND_DISK_2 и т. Д.?

Если у нас уже есть репликация HDFS, какая польза от этого?

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Spark RDD / Datases оцениваются лениво.

Если два отдельных действия зависят от одного и того же RDD / DS, тогда RDD / DS будут оцениваться дважды, что может быть дорогостоящей операцией.

Чтобы уменьшить вероятность этого, мы можем кэшировать / сохранять RDD / DS, чтобы при необходимости второй / последующий раз загружать его из кэша.

.cache будет сохранять RDD / DS после того, какбыл оценен с уровнем хранения MEMORY_AND_DISK.В качестве альтернативы можно использовать .persit, который позволяет полностью контролировать уровень хранилища.

Как общее практическое правило, если вы используете дорогостоящий расчет RDD / DS более одного раза, тогда рассмотрите возможность его кэширования.

0 голосов
/ 04 октября 2018

Когда вы сохраняете Spark RDD / DataSet с помощью MEMORY_ONLY_2 / MEMORY_AND_DISK_2 , данные не отправляются в HDFS.Он хранится в локальном файловом хранилище узла, на котором выполняется задача.

Репликация выполняется Spark, а не HDFS.В случае невозможности получить сохраненные разделы, Spark должен пересчитать разделы.Репликация 2 обеспечивает репликацию постоянных разделов на два узла.

Вы также можете получить некоторые сведения о постоянных разделах в пользовательском интерфейсе Spark.На вкладке хранилища вы можете увидеть все сохраненные данные.Вы можете видеть узел, на котором хранятся данные, размер разделов в памяти (в куче / без кучи) и на диске.и т.д.

...