Задание WordCount выполняется на «localjobrunner» вместо «пряжи»

Я запускаю пример WordCount в eclipse luna 3.8. Моя работа работает нормально на localjobrunner, но я хочу, чтобы она работала на кластере пряжи, потому что хочу получить доступ к журналам Hadoop. Где-то я читал, что если задание выполняется локально, оно не создает журналы, пока не отправит их диспетчеру ресурсов. Отправка задания диспетчеру ресурсов возможна только тогда, когда задание выполняется на пряже.

Моя рабочая среда:

hadoop-2.6.0 работает в режиме псевдораспределения.

лунное затмение 3.8.

Любая помощь будет оценена.


person A_J    schedule 02.05.2017    source источник
comment
К каким журналам Hadoop вы хотите получить доступ? Журналы менеджера узлов и менеджера ресурсов? Если вы говорите о своих журналах приложений, то они (журналы картографа и редуктора) должны быть доступны на консоли, когда вы запускаете его из eclipse. О запуске его в YARN вместо локального режима, пожалуйста, проверьте мой ответ.   -  person nir    schedule 03.05.2017
comment
На самом деле я изменил кодировку и хочу проверить, отражаются ли мои изменения или нет. Для этого мне нужны логи nodemanager.   -  person A_J    schedule 03.05.2017
comment
Изменено кодирование примера nodemanager или WordCount?   -  person nir    schedule 04.05.2017


Ответы (2)


Вам нужны yarn-site.xml и core-site.xml правильно в вашем пути к классам, а также все jar-файлы yarn и mapreduce (зависимости). Теперь у вас могут быть эти банки от maven или что-то в этом роде, но вы, скорее всего, пропустите эти файлы конфигурации. Вы можете установить их в пути к классам из «Запуск от имени конфигурации» в eclipse. Я предполагаю, что у вас есть локальная установка Hadoop с этими файлами конфигурации, и вы можете запускать команды Hadoop. В этом случае вы можете указать свой путь к классам на каталоги conf и lib этой установки. Это может быть утомительно, но начните с простого указания каталога conf (который содержит core-site и yarn-site) и посмотрите, работает ли это. Если нет, то также исключите локальные зависимости ваших затмений (maven или аналогичные) пряжи и mapreduce и явно установите их из вашего установочного каталога. проверьте эту статью для установки пути к классам для hadoop1: https://letsdobigdata.wordpress.com/2013/12/07/running-hadoop-mapreduce-application-from-eclipse-kepler/

Вот еще одна статья из MapR (игнорировать настройку, связанную с клиентом mapr) https://mapr.com/blog/basic-notes-on-configuring-eclipse-as-a-hadoop-development-environment-for-mapr/

Вы можете выполнить аналогичные шаги для hadoop2 (yarn), но основная идея заключается в том, что среда выполнения вашего приложения должна выбирать правильные файлы jar и файлы конфигурации в пути к классам, чтобы иметь возможность успешно развернуть его в кластере.

person nir    schedule 02.05.2017
comment
Как вы упомянули ... У меня есть локальная установка Hadoop с этими файлами конфигурации, и я могу очень хорошо запускать команды Hadoop из терминала. Но когда я импортирую эти jar-файлы hadoop в eclipse, тогда свойства, которые я установил в файлах xml (hdfs, core, mapred, пряжа), не отражаются в eclipse, а eclipse принимает свойства по умолчанию (например, я установил значение dfs.replication равным 1 из терминала и когда я запускаю задания из eclipse, он показывает значение репликации 3). Я не знаю, как это решить, и я впервые использую eclipse. - person A_J; 03.05.2017
comment
Это указывает на то, что в вашем пути сборки eclipse есть другие файлы jar/config, которые переопределяют файлы jar, которые вы собираетесь использовать. Используете ли вы maven в качестве инструмента сборки и управления зависимостями в eclipse? - person nir; 04.05.2017
comment
Проблема решена, так как я не указывал расположение файла xml в eclipse. Теперь я добавил папку /usr/local/hadoop/etc/hadoop (содержит все файлы xml) в eclipse, и это сработало. - person A_J; 04.05.2017

Инициализируйте задание со специфическими конфигурациями YARN. Добавьте эти конфигурации в драйвер,

Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://localhost:8020");
conf.set("mapreduce.framework.name", "yarn");
conf.set("yarn.resourcemanager.address", "localhost:8032");
person franklinsijo    schedule 02.05.2017
comment
Я уже установил это свойство через терминал. Но я запускаю работу в eclipse, и она работает на localjobrunner, а не на платформе пряжи. Надеюсь, вы понимаете, что я пытаюсь донести. - person A_J; 02.05.2017
comment
Где я могу добавить эти конфигурации?? Это в моей программе WordCount? - person A_J; 02.05.2017
comment
Да. В вашем классе водителей. - person franklinsijo; 02.05.2017
comment
Я добавил, но он все еще работает на localjobrunner, а не на пряже - person A_J; 02.05.2017