Взаимодействие InputSplit Mapper JobTracker

Ниже приведено мое понимание InputSplits и их взаимодействия с картографами... пожалуйста, поправьте меня, если я где-то ошибаюсь...

InputFormat генерирует InputSplits, и задача карты создается для каждого inputsplit. Для локальности данных обычно выбирается слот карты на узле данных, который физически несет блок, на который ссылается этот InputSplit. Представьте, что здесь нет репликации данных.

Что произойдет, если на узле данных, где находится блок, нет доступного слота карты? Будет ли средство отслеживания заданий ждать получения пустого слота на этом узле данных, а затем запланировать сопоставление на этом узле данных, или он запланирует сопоставление на любом другом узле, где есть свободный слот карты, а затем будет передавать данные с первого узла данных?


person harry potter    schedule 08.06.2013    source источник


Ответы (1)


Последний. Вы можете увидеть следующие счетчики в вашей работе:

Data-local map tasks=46
Rack-local map tasks=5

Количество задач карты Data-local означает, сколько задач карты выполняется на одном и том же узле данных без передачи данных по сети. Количество задач карты на локальной стойке означает, сколько задач карты выполняется на другом узле данных с передачей данных по сети.

Число Rack-local map tasks учитывает только узлы, локальные для стойки. Если у вас есть какие-то задачи, которые используют данные некоторых узлов в другой стойке (это означает, что в той же стойке нет слота), это будет остановлено Other local map tasks. Однако для таких задач необходимо передавать данные через стойку. Вы можете подтвердить логику выбора узла даты здесь.

person zsxwing    schedule 09.06.2013
comment
В случае с локальным размещением в стойке учитываются ли данные, которые являются локальными для стойки, т. е. может включать передачу данных между узлами, присутствующими в одной и той же стойке, но не между стойками? - person harry potter; 09.06.2013