Это зависит от вашего: формат
- Вход - некоторые входные форматы (
NLineInputFormat
, WholeFileInputFormat
) работают на других, чем размер блока границ. В общем случае, если что-либо, простирающееся от FileInputFormat
, будет использовать границы блоков в качестве направляющих.
- Размер файла - отдельные файлы не должны иметь тот же размер блока, что и размер блоков по умолчанию. Это устанавливается, когда файл загружается в HDFS - если он явно не установлен, тогда применяется размер блока по умолчанию (во время загрузки). Любые изменения размера по умолчанию/системного блока после файла не будут иметь эффекта в уже загруженном файле.
- Два
FileInputFormat
свойства конфигурации mapred.min.split.size
и mapred.max.split.size
обычно по умолчанию 1
и Long.MAX_VALUE
, но если это будет переопределен в конфигурации вашей системы, или в работе, то это приведет к изменению Amunt данных, обрабатываемых каждым картографа, и количество Задачи картографа порождаются.
- неразрываемое сжатие - такие, как Gzip, не может быть обработано более одного картограф, так что вы получите 1 картограф за GZIP файл (если вы не используете что-то вроде
CombineFileInputFormat
, CompositeInputFormat
)
Так что если у вас есть файл с размером блока 64m, но либо хотят обработать более или менее это на задачу карты, то вы должны просто быть в состоянии установить следующие свойства конфигурации задания:
mapred.min.split.size
- больше по умолчанию, если вы хотите использовать меньше карт, за счет (потенциально) потери данных loc (все данные, обработанные одной задачей карты, теперь могут быть на двух или более узлах данных)
mapred.max.split.size
- меньше, чем по умолчанию, если вы хотите использовать больше карт (например, у вас есть процессор с интенсивным вычислением) для обработки каждого файла
Если вы используете MR2/ПРЯЖА, то вышеуказанные свойства устаревшее и заменены:
mapreduce.input.fileinputformat.split.minsize
mapreduce.input.fileinputformat.split.maxsize