понял это. Поскольку я использую 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)
, которая позволяет мне иметь собственную логику, чтобы разрешить или запретить выполнение определенной работы на определенном трекере задач. Проблема решена.
Извлеченный урок: чтение исходного кода полезно.