Переменные среды Hadoop MapReduce - PullRequest
0 голосов
/ 25 августа 2018

Я экспериментирую с переменными среды Hadoop MapReuce. Мой случай использования довольно необычен, но это не причина, по которой я борюсь.

Моя цель состоит в том, чтобы экспортировать переменные окружения на все мои картографы и редукторы. Для этого я использую настройки mapreduce.map.env и mapreduce.reduce.env conf следующим образом:

hadoop jar myJob.jar -Dmapreduce.map.env="A=foo"

Это прекрасно работает и действительно выставляет A на всех моих картографах. В этой связи я упомяну, что mapreduce.map.env - это действительно отсутствие документации или примеров использования в Интернете.

Моя проблема в том, что мой проект выполняет задания MapReduce по слоям, каждый слой может передавать флаги команде Jadoop Jar, пока я не управляю верхними слоями.

Поэтому я могу запустить следующую команду:

hadoop jar -Dmapreduce.map.env="A=foo" -Dmapreduce.map.env="B=foo2"

Насколько мне известно и эксперименты (исправьте меня, если я ошибаюсь), эта команда только выставит "B = foo2" в моей среде картографа.

Я не могу найти ничего в сети, чтобы преодолеть эту проблему.

ВАЖНОЕ ПРИМЕЧАНИЕ: Поскольку я знаю только переменную env, которую я хочу представить во время выполнения (она динамическая и может изменяться), я не могу добавить переменные env в mapred-default / stie.xml

1 Ответ

0 голосов
/ 15 ноября 2018

Согласно ответу @ cricket_007: Вы можете разделить запятыми один аргумент. Если вы передаете несколько, они переопределяют друг друга.

Работает нормально

...