Количество заданий карты, созданных на основе объема данных
Всякий раз, когда мы запускаем какое-либо задание Map для любого объема данных, по умолчанию создается определенное количество заданий Map. Я хотел знать логику этого.
Рассмотрим ситуацию, когда я пытаюсь загрузить данные в HDFS или использовать sqoop для загрузки данных в HIVE
- Есть ли какое-то статическое количество заданий на основе объема данных, таких как математическая формула.
- Существует ли какая-нибудь интеллектуальная система, которая распознает ваши данные на основе алгоритма кластеризации Supervised и группирует данные в каждой из карт?
Я хотел точно знать, как Hadoop узнает о числе, если в Map заданиях я пытался найти ответ в Интернете, но не смог найти точный ответ.
2 ответа
Количество выполненных задач карты зависит от количества вычисленных входных разбиений.
Логика для вычисления количества входных разбиений зависит от InputFormat, используемого в задании MapReduce.
Одна задача карты будет порождена для каждого входного разделения, поэтому, если есть 3 входных разделения, у нас будет 3 задачи карты
Вы можете создать собственный InputFormat, если вам все равно нужно настроить эту логику
Посмотрите на Подробное руководство для более подробной информации
Каждый файл представлен в виде блоков в HDFS. Размер блока по умолчанию составляет 64 МБ.
(Blks) количество блоков будет примерно равно (объем данных в мб) /64.
Процесс сопоставления создается для каждого InputSplit. По умолчанию размер InputSplit равен размеру блока, т.е. 64 МБ.
Для соблюдения принципа локальности данных Mapper выполняется на той же машине, где находится этот блок. Таким образом, количество картостроителей будет равно количеству блоков.