В чем разница между уровнем памяти memory_only и memory_and_disk в искры?

Как отличается поведение уровня кэширования memory_only и memory_and_disk в искровом режиме?

Ответ 1

Документация говорит ---

Уровень хранения

Значение

MEMORY_ONLY

Храните RDD как десериализованные объекты Java в JVM. Если RDD не поместится в память, некоторые разделы не будут кэшироваться и будут пересчитываются "на лету" каждый раз, когда они нужны. Это значение по умолчанию уровень.

MEMORY_AND_DISK

Храните RDD как десериализованные объекты Java в JVM. Если RDD не вписываются в память, сохраняют разделы, которые не помещаются на диск, и читают их оттуда, когда они нужны.

MEMORY_ONLY_SER

Хранить RDD как сериализованные объекты Java (один байт-массив на раздел). Это, как правило, более экономично, чем десериализованные объекты, особенно при использовании быстрого сериализатора, но с большим читать.

MEMORY_AND_DISK_SER

Подобно MEMORY_ONLY_SER, но разлитые разделы, которые не вписываются в память на диск, а не перепрограммировать их "на лету" каждый раз они нужны.

DISK_ONLY

Храните разделы RDD только на диске.

MEMORY_ONLY_2, MEMORY_AND_DISK_2 и т.д.

То же, что и уровни выше, но реплицируйте каждый раздел на два кластера узлы.

OFF_HEAP (экспериментальный)

Храните RDD в сериализованном формате в Tachyon. В сравнении с MEMORY_ONLY_SER, OFF_HEAP уменьшает накладные расходы на сборку мусора и позволяет исполнителям быть меньше и делиться пулом памяти, делая он привлекателен в средах с большими кучами или несколькими параллельными Приложения. Кроме того, поскольку RDD находятся в Тахионе, крушение исполнитель не приводит к потере кэша в памяти. В этом режиме, память в Тахионе отбрасывается. Таким образом, Tachyon не пытается для восстановления блока, который он выдает из памяти.

Это означает, что ТОЛЬКО для памяти, искра будет стараться всегда держать разделы в памяти. Если некоторые разделы не могут храниться в памяти или для потери node некоторые разделы удаляются из ОЗУ, искра будет перепрограммироваться с использованием информации о линии. В области памяти и диска искра всегда поддерживает вычисления и кэширование разделов. Он будет пытаться сохранить в ОЗУ, но если он не подходит, на диск будут пролиты парирования.

Ответ 2

Уровни стойкости с точки зрения эффективности:

Level                Space used  CPU time  In memory  On disk  Serialized
-------------------------------------------------------------------------
MEMORY_ONLY          High        Low       Y          N        N
MEMORY_ONLY_SER      Low         High      Y          N        Y
MEMORY_AND_DISK      High        Medium    Some       Some     Some
MEMORY_AND_DISK_SER  Low         High      Some       Some     Y
DISK_ONLY            Low         High      N          Y        Y

MEMORY_AND_DISK и MEMORY_AND_DISK_SER разливаются на диск, если в памяти слишком много данных.