Каталог Hadoop tmp становится огромным

моя проблема в том, что у меня есть кластер Hadoop из 5 узлов, файлы на кластере занимают 350 ГБ. Я запускаю скрипт Pig, который объединяет три разных файла и объединяет их. Задание запускается каждый раз менее чем за 30 минут для выполнения всех задач карты, а затем 6 часов для выполнения задач сокращения, в лучшем случае все эти задачи сокращения завершаются неудачно. В худшем случае мой хауп застрял из-за того, что namenode переходит в безопасный режим, потому что ему не хватает места (превышена квота).

Проблема вызвана каталогом tmp, который занимает доступное место в зале (7 ТБ!!). Мой скрипт выглядит так:

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';

Есть идеи ??


person Bafla13    schedule 29.01.2015    source источник


Ответы (1)


Ваш скрипт выглядит нормально. Каков размер файлов, к которым вы присоединяетесь?

Регистрация является дорогостоящим оператором в любом месте. Вы можете оптимизировать соединения, используя реплицированные, перекошенные, объединенные объединения в Pig. Просмотрите эту документацию по соединениям один раз и примените в зависимости от размера файла и требований.

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

person Bharat Gamini    schedule 30.01.2015
comment
Вы имеете в виду, что это нормально, если 3 файла, которые вместе составляют 20 ГБ, будут занимать более 7 ТБ при каждом соединении? - person Bafla13; 30.01.2015