Я пытаюсь выяснить, почему мои 15 ГБ таблицы увеличиваются до 182 ГБ, когда я запускаю простой запрос к нему.
Сначала я читаю таблицу в Spark из Redshift.Когда я говорю Spark сделать простой подсчет на столе, он работает нормально.Однако, когда я пытаюсь создать таблицу, я получаю всевозможные сбои YARN, и в конечном итоге некоторые из моих задач имеют объемную память разлива 182 ГБ.
Вот проблемный запрос (я изменил некоторые имена):
CREATE TABLE output
SELECT
*
FROM inputs
DISTRIBUTE BY id
SORT BY snapshot_date
Что происходит?Как случайный разлив может превысить общий размер ввода?Я не делаю декартово соединение или что-то в этом роде.Это очень простой запрос.
Я знаю, что в Red Hat Linux (я использую EMR в AWS) есть проблемы с виртуальной памятью, так как я столкнулся с этой темой здесь , но я 'мы добавили рекомендованную конфигурацию classification=yarn-site,properties=[yarn.nodemanager.vmem-check-enabled=false]
в мои свойства EMR, и проблема не исчезла.
Вот снимок экрана из интерфейса Spark, если он помогает: