Как определить, что я собираюсь запустить потоковое задание Hadoop в кластере или в «локальном» режиме? - PullRequest
0 голосов
/ 31 декабря 2011

Потоковая передача Hadoop будет запускать процесс в «локальном» режиме, когда на устройстве не запущен экземпляр hadoop.У меня есть сценарий оболочки, который управляет набором потоковых заданий Hadoop по очереди, и мне нужно подготовить условия копирования файлов из HDFS в локальный, в зависимости от того, выполнялись ли задания локально или нет.Есть ли стандартный способ выполнить этот тест?Я мог бы сделать «ps aux | grep что-то», но это кажется специальным.

Ответы [ 3 ]

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

Вместо того, чтобы пытаться определить во время выполнения, в каком режиме работает процесс, вероятно, лучше обернуть инструмент, который вы разрабатываете, в скрипт bash, который явно выбирает локальный или кластерный оператор. О'Рейли Hadoop описывает, как явно выбрать локальный с помощью переопределения файла конфигурации:

hadoop v2.MaxTemperatureDriver -conf conf/hadoop-local.xml input/ncdc/micro max-temp

где conf-local.xml - файл XML, настроенный для локальной работы.

0 голосов
/ 27 января 2012

Я еще не пробовал, но я думаю, что вы можете просто прочитать настройки конфигурации mapred.job.tracker.

0 голосов
/ 31 декабря 2011

Потоковая передача Hadoop будет запускать процесс в "локальном" режиме, когда на коробке не запущен экземпляр hadoop.

Можете ли вы указать ссылку на эту ссылку?

Обычное или потоковое задание будет выполняться так, как оно настроено, поэтому мы заранее знаем, в каком режиме выполняется задание.Ознакомьтесь с документацией по настройке Hadoop на одном узле и кластере в различных режимах.

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