Можно ли выбрать конкретные машины для выполнения определенного типа заданий Hadoop? - PullRequest
0 голосов
/ 13 августа 2010

Насколько я понимаю, архитектура hadoop рассматривает все машины как равные любой задаче / задаче, способной работать на всех и на всех машинах кластера.помечать определенные машины как обладающие определенными возможностями, а затем выбирать только машины, обладающие возможностями, необходимыми для выполнения задания, для запуска этого задания?

Ответы [ 2 ]

1 голос
/ 17 августа 2010

понял это. Поскольку я использую FairScheduler, есть точка расширения, которая позволяет мне достичь своей цели, написав простой класс, реализующий интерфейс LoadManager

Согласно http://hadoop.apache.org/common/docs/current/fair_scheduler.html, FairScheduler использует экземпляр класса, указанного в свойстве конфигурации mapred.fairscheduler.loadmanager (CapBasedLoadManager по умолчанию). Интерфейс LoadManager предоставляет удобный метод

boolean canLaunchTask(TaskTrackerStatus tracker, JobInProgress job,  TaskType type)

, которая позволяет мне иметь собственную логику, чтобы разрешить или запретить выполнение определенной работы на определенном трекере задач. Проблема решена.

Извлеченный урок: чтение исходного кода полезно.

0 голосов
/ 13 ноября 2012

Хорошо. это кажется полезным, но данные не могут быть локальными, верно? Можно также запустить два Jobtrackers, каждый из которых управляет различным пулом Tracker. Вы можете отправить работу на нужную работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...