Spark - детальное представление об использовании памяти исполнителем - PullRequest
0 голосов
/ 18 октября 2018

Я унаследовал неприятный фрагмент итеративного кода TSQL, который нужно запускать на спарк.

Я не буду утомлять вас слишком многими деталями, но код применяет скользящее 10-дневное окно в течение четырех месяцевпериод от minDate до maxdate и применяет исправления.

Общий размер 4-месячного периода, хранящегося в формате Hive в формате Parquet, составляет около 12 ГБ, поэтому он невелик.Предполагая равномерное распределение. Стоимость данных за один день составляет около 100 МБ.

Алгоритм применяется дважды, поэтому во избежание накладных расходов при записи на диск я кеширую каждый день и сохраняю как глобальное временное представление, когда эта дата заканчивается до концадесятидневного окна.Эти временные представления также удаляются при первой же возможности.

Каждый исполнитель имеет 32 ГБ памяти, однако я вижу, что моя работа не удалась, потому что она превышена.

Итак, мои вопросы:

  1. Возможно ли получить более детальное представление о памяти исполнителя, чем то, которое предоставляется Spark UI, чтобы я мог видеть, что может быть причиной проблемы.

  2. Я предполагаю, что глобальные временные представления хранятся у нескольких исполнителей, если они разделены.Это тот случай?Есть ли что-то еще, что мне нужно знать, например, различия в коэффициентах сжатия между форматами Parquet и Hive, используемые при сохранении глобальных временных представлений?

...