Каталог 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. Просмотрите документацию этих объединений один раз и подайте заявку в зависимости от ваших размеров и требований.

https://bluewatersql.wordpress.com/category/Pig/

Другие вопросы по тегам