2013-07-25 3 views
2

Является ли размер блока 64 МБ для HDFS? Есть ли какой-либо параметр конфигурации, который я могу использовать для его изменения?Каков размер по умолчанию, который каждый считыватель Hadoop будет читать?

Для чтения карт-файлов gzip, верно ли, что количество файлов gzip должно быть равно числу картографов?

ответ

7

Это зависит от вашего: формат

  • Вход - некоторые входные форматы (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
Смежные вопросы