Я пытаюсь понять функцию Spark в памяти. В этом процессе я наткнулся на Tachyon, который в основном находится на уровне данных памяти. который обеспечивает отказоустойчивость без репликации за счет использования систем происхождения и уменьшает повторные вычисления за счет проверки наборов данных. Теперь, когда вы запутались, все эти функции также достижимы с помощью стандартного RDD Spark. система. Поэтому мне интересно, реализуют ли RDD Tachyon за кулисами для реализации этих функций? Если нет, то какая польза от Tachyon, если всю его работу можно выполнить с помощью стандартных RDD. Или я делаю какую-то ошибку, связывая эти два? подробное объяснение или ссылка на него будет большим подспорьем. Спасибо.
Является ли Tachyon по умолчанию реализованным RDD в Apache Spark?
Ответы (1)
То, что находится в документе, на который вы ссылаетесь, не отражает реальности того, что находится в Tachyon как выпуске проекта с открытым исходным кодом, части этого документа когда-либо существовали только в качестве исследовательских прототипов и никогда не были полностью интегрированы в Spark / Tachyon.
Когда вы сохраняете данные на уровне хранения OFF_HEAP
через rdd.persist(StorageLevel.OFF_HEAP)
, он использует Tachyon для записи этих данных в пространство памяти Tachyon в виде файла. Это удаляет его из кучи Java, что дает Spark больше памяти кучи для работы.
В настоящее время он не записывает информацию о происхождении, поэтому, если ваши данные слишком велики, чтобы поместиться в настроенные кластеры Tachyon, части памяти RDD будут потеряны, и ваши задания Spark могут завершиться ошибкой.