Каталог Hadoop TMP становится огромным
Моя проблема в том, что у меня кластер Hadoop из 5 узлов, файлы в кластере занимают 350 ГБ. Я запускаю сценарий Pig, который объединяет три разных файла и соединяет их. Задание выполняется каждый раз менее 30 минут для выполнения всех задач карты, а затем 6 часов для выполнения задач сокращения. В лучшем случае все эти задачи сокращения завершаются неудачно в конце. В худшем случае мой хадоп застрял из-за наменода, который переходит в безопасный режим, потому что у него недостаточно места (превышена квота).
Проблема, вызванная каталогом tmp, который занимает доступное пространство зала (7TB!!). Мой сценарий выглядит так:
info_file = LOAD '$info' as (name, size, type,generation,streamId);
chunks_file = LOAD '$chunk' as (fp, size);
relation_file = LOAD '$relation' as (fp, filename);
chunks_relation = JOIN chunks_file BY fp, relation_file BY fp;
chunks_files= JOIN chunks_relation BY $3, info_file BY $0;
result = FOREACH chunks_files GENERATE $0,$1,$3,$5,$6,$7,$8;
STORE result INTO '$out';
Любая идея??
1 ответ
Ваш сценарий выглядит хорошо. Каков размер файлов, к которым вы присоединяетесь?
Join является дорогостоящим оператором в любом месте. Вы можете оптимизировать объединения, используя реплицированные, асимметричные, объединенные объединения в Pig. Просмотрите документацию этих объединений один раз и подайте заявку в зависимости от ваших размеров и требований.