Но это применимо только к Мастеру !! Есть ли способ сделать это применимо и к рабам?
Согласно "Hadoop: Полное руководство" . Установка некоторых свойств на стороне клиента не имеет смысла. Вам необходимо установить то же самое в файле конфигурации. Обратите внимание, что вы также можете создавать новые свойства в файлах конфигурации и читать их в коде, используя объект конфигурации.
Имейте в виду, что некоторые свойства не действуют при настройке в конфигурации клиента. За
Например, если при подаче работы вы установили mapred.tasktracker.map.tasks.maximum с помощью
ожидание того, что это изменит количество слотов задач для треккеров, выполняющих вашу работу, тогда вы будете разочарованы, так как это свойство только соблюдается
если установлено в файле mapred-site.html на трескере задач. В общем, вы можете сказать компонент
где свойство должно быть установлено по его имени, поэтому тот факт, что mapred.task.tracker.map.tasks.maximum начинается с mapred.tasktracker, дает вам подсказку, что его можно установить только для демона tasktracker. Однако это не жесткое и быстрое правило, поэтому в некоторых случаях вам может потребоваться прибегнуть к методам проб и ошибок или даже прочитать источник.
Вы также можете сконфигурировать среду переменных Hadoop, используя HADOOP _ * _ OPTS в файле conf / hadoop-env.sh.
Опять же, согласно "Hadoop: Полное руководство" .
Не путайте установку свойств Hadoop с помощью параметра -D свойство = значение для GenericOptionsParser (и ToolRunner) с настройкой системных свойств JVM с помощью параметра -Dproperty = значение для команды java. Синтаксис системных свойств JVM не допускает никаких пробелов между D и именем свойства, тогда как GenericOptionsParser требует, чтобы они разделялись пробелами.
Системные свойства JVM извлекаются из класса java.lang.System, тогда как свойства Hadoop доступны только из объекта Configuration.