Spark Caching - распространение и репликация данных - PullRequest
1 голос
/ 09 апреля 2019

Как spark определяет, сколько раз реплицировать кэшированный раздел?Уровень хранилища на вкладке хранилища в пользовательском интерфейсе spark говорит «Disk Serialized 1x Replicated», но похоже, что разделы реплицируются на нескольких исполнителей.Мы заметили, что это происходит с уровнями хранения DISK_ONLY и OFF_HEAP с использованием spark 2.3.Мы кэшируем набор данных с 101 разделом (размер на диске 468,4 ГБ).Первоначально данные распределены по 101 исполнителю (всего у нас 600 исполнителей).По мере того, как мы выполняем запросы к этому набору данных, увеличивается размер диска, а также количество данных исполнителей.

Когда я запускаю запрос на спарку в наборе кэшированных данных, я вижу, что задание спаркисоздание 101 задания и назначение его 101 исполнителю.Немногие из исполнителей - PROCESS_LOCAL, и немногие другие - NODE_LOCAL или RACK_LOCAL.Для NODE_LOCAL и RACK_LOCAL выполнение задачи занимает больше времени, так как требует копирования данных.

Я заметил, что при каждом выполнении запроса, если задача назначается на NODE_LOCAL или RACK_LOCAL, размер кэша увеличивается.Этап, который я видел, перешел 2,5 ТБ

Я хочу понять, почему размер кэша увеличивается при выполнении запроса?Если это поведение искры по умолчанию при копировании данных из DISK в NODE_LOCAL или RACK_LOCAL executor, то как управлять размером кэша?

Я также заметил, что обычно один блок / раздел реплицируется на несколько исполнителей на одном и том жеузел - если он хранится на диске, почему он не распределяется между исполнителями одного узла?

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