Я обрабатываю один файл с картой, уменьшая размер файла 1 Гб, а размер блока по умолчанию в HDFS составляет 64 МБ, поэтому для этого примера, сколько входных расщеплений есть и сколько карт существует?Число входных разрывов равно числу индикаторов?
ответ
Number of splits=Number of mappers.
Таким образом, если размер вашего файла составляет 1 ГБ (1024/64), у вас будет 16 карт.
Разделение вашего входа отличается от размера блока. Блок - это физическое представление, которое содержит фактические данные, но входной распад - это просто логическое представление, которое просто содержит длину разделения и разделенное местоположение.
Однако количество датчиков также зависит от различных факторов.
- Если ваш файл сжат, что, в свою очередь, не является разделяемым форматом, то вы получите один обработчик, обрабатывающий весь файл.
- Если
issplittable()
в классе Inputformat имеет значение false, тогда ваш файл не будет разделяться, а затем вы также будете иметь один обработчик. - Редукторы должны быть явно заданы в коде драйвера.
job.setNumReduceTasks()
сделаю. Если не установлено, количество редукторов по умолчанию будет равно 1.
Я думаю, что количество входных дробей зависит от размера входного файла.
No of blocks = NO of Mappers; Если только один файл размером 1 ГБ и размером блока 64 МБ, то нет блоков (блоков) => 1026 МБ/64 МБ = 16. Таким образом, нет mappers = 16. По умолчанию мы получим только один редуктор, если мы хотим запустить больше редукторов, вы можете установить job.setNumReduceTasks();
Что относительно редукторов? –
Разработчик @koti отредактировал ответ. –
@kotideveloper отредактирован с вашими комментариями reg. inputplit –