Нужно избавиться от файлов part-m-0000 * в HDFS - PullRequest
0 голосов
/ 23 ноября 2011

При обработке HDFS после каждого задания создаются пустые файлы с именами, такими как part-m-0000 *.Каждый из этих файлов пуст, но они занимают 64 МБ дискового пространства, потому что это размер блока по умолчанию.

Необходимо внести изменения в код, чтобы пропустить создание этих файлов.Как мне это сделать?

Примечание: я использую org.apache.hadoop.mapreduce.lib.output.MultipleOutputs<KEYOUT,VALUEOUT> для записи выходных записей, а не Context, поэтому я в любом случае получаю выходные записи в файлах типа «success-m-00000» и т. Д.1006 *

1 Ответ

1 голос
/ 23 ноября 2011

Согласно Hadoop: Полное руководство , поэтому базовая файловая система не будет принимать размер блока HDFS, если файл пуст.

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

Для подавления выходных файлов, если они пусты, используйте LazyOutputFormat #setOutputFormatClass .Вот документация Apache для того же самого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...