2014-02-11 1 views
2

Я tryuing запустить работу выглядит следующим образом (workflow.xml)Должен ли я предоставить конфигурацию в workflow.xml и job.properties в oozie?

<workflow-app name="FirstWorkFlow" xmlns="uri:oozie:workflow:0.2"> 
    <start to="FirstJob"/> 
    <action name="FirstJob"> 
     <pig> 
      <job-tracker>hadoop1:50300</job-tracker> 
      <name-node>hdfs://hadoop1:8020</name-node> 
      <script>lib/FirstScript.pig</script> 
     </pig> 
     <ok to="end"/> 
     <error to="kill"/> 
    </action> 
    <kill name="kill"> 
     <message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message> 
    </kill> 
    <end name="end" />  
</workflow-app> 

FirstScript:

dual = LOAD 'default.dual' USING org.apache.hcatalog.pig.HCatLoader(); 
store dual into '/user/oozie/dummy_file.txt' using PigStorage(); 

job.properties:

nameNode=hdfs://hadoop1:8020 
jobTracker=hadoop1:50300 
oozie.wf.application.path=/user/oozie/FirstScript 
oozie.use.system.libpath=true 

Мой вопрос: я необходимо указать имяNode и confTuration jobTracker как в job.properies, так и в workflow.xml?

Я совершенно запутался, причина не имеет значения, если я установить эти или нет Счетчики я получаю эту ошибку (ошибка из интерфейса цветового тона):

E0902: Exception occured: [Call to localhost/127.0.0.1:8020 failed on connection exception: java.net.ConnectException: Connection refused] 

С уважением Pawel

+0

Попробуйте изменить job.properties для: oozie.wf.application.path = HDFS: // hadoop1: 8020/пользователь/oozie/FirstScript –

+0

По умолчанию, в основном JobTracker работает на 8021. Кроме того, попробуйте поставить URL вы пытаясь найти работу в браузере, чтобы узнать, каков ответ. например: 'http: // hadoop1: 50030' имя хоста в идеале должно быть' hostname -f' output –

ответ

0

Я вижу разницу в порт, который вы указали в namenode и jobtracker. Просто проверьте, что вы настроили в mapred-site.xml и core-site.xml и поместите соответствующий порт.

А также может быть имя хозяина hadoop1 не будет разрешено. Попробуйте добавить IP-адрес сервера или поместите hasoop1 в файл/etc/hosts.

Вы определяете файл свойств так, чтобы рабочий процесс мог быть параметризован.

0

Попробуйте использовать порт 9000 по умолчанию. В противном случае нам нужно увидеть файлы конфигурации Hadoop.

2

Прежде всего, чтобы ответить на ваш вопрос о job.properties - он используется для параметризации рабочего процесса (переменные в потоке заменяются значениями, указанными в job.properties). Таким образом, вы можете установить отслеживатель задания и namenode в job.properties и использовать переменные в файле workflow.xml, или вы можете установить его непосредственно в файле workflow.xml.

Вы уверены, что ваш порт Job Tracker is 50300? Это кажется подозрительным по двум причинам: обычно веб-интерфейс отслеживания работы доступен по адресу http://ip:50030, но это не тот порт, который вы должны использовать для этой конфигурации. Для конфигурации задания Hadoop порт отслеживания работы обычно 8021, 9001, или 8012.

Похоже, ваша проблема связана с установкой правильного отслежывателя задания и узла имени (в отличие от установки его в нужном месте). Попробуйте проверить настройки Hadoop в mapred-site.xml и core-site.xml для правильных портов и IP-адресов. Кроме того, вы можете просто SSH на машинах, на которых запущены ваши узлы Hadoop, и запустите netstat -plnt и найдите порты, упомянутые здесь.

Смежные вопросы