Изменить конфигурацию по умолчанию на подчиненных узлах Hadoop? - PullRequest
1 голос
/ 23 сентября 2011

В настоящее время я пытаюсь передать некоторые значения через аргументы командной строки, а затем проанализировать их с помощью GenericOptionsParser с реализованным инструментом.

с главного узла. Я запускаю что-то вроде этого:Но это применимо только к Мастеру!Есть ли способ сделать это применимо и к рабам?

Я использую Hadoop 0.20.203.

Любая помощь приветствуется.

1 Ответ

3 голосов
/ 23 сентября 2011

Но это применимо только к Мастеру !! Есть ли способ сделать это применимо и к рабам?

Согласно "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.

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