Как я могу запустить jar-пример hadoop в рабочем процессе oozie? - PullRequest
3 голосов
/ 23 февраля 2012

это сводит меня с ума - я чувствую себя идиотом, пытающимся понять, как это сделать!

Я создаю приложение, которое использует клиентские библиотеки Oozie для запуска рабочего процесса.Очень просто, я хотел бы создать несколько тестов для своего кода, чтобы я мог проверить, правильно ли я делаю, что реальный код - благодаря клиентской библиотеке oozie - очень прост.

Я установил Hadoopи могу без проблем запустить стандартный пример, предоставленный wordcount, но я не могу понять, как запускать вещи через Oozie и это сводит меня с ума.

Так что я решил обмануть и спросить некоторых людей, которыебудет знать (ползучесть).

Как мне преобразовать:

bin/hadoop jar hadoop*examples*.jar wordcount input/somedata output

В рабочий процесс Oozie?

Я предполагаю, что это действие Java, но я просто могу 't понять, что заполнять в рабочие процессы xml!

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

Большое спасибо.

1 Ответ

2 голосов
/ 10 марта 2012

Для запуска Oozie Job вам понадобится workflow.xml и файл свойств.
Для запуска Basic WordCount Program ваш workflow.xml будет выглядеть примерно так.

<workflow-app xmlns="uri:oozie:workflow:0.1" name="WorkflowRunnerTest">

  <start to="intersection0"/>

  <action name="intersection0">
    <map-reduce>
      <job-tracker>localhost:54101</job-tracker>
      <name-node>hdfs://localhost:54100</name-node>

      <prepare>
        <delete path="hdfs://localhost:54100/user/user1/out1"/>
      </prepare>

      <configuration>
        <property> 
          <name>mapred.job.queue.name</name>
          <value>default</value>
        </property>
        <property>
          <name>mapred.mapper.class</name>
          <value>MapperClass</value>
        </property>
        <property>
          <name>mapred.reducer.class</name>
          <value>ReducerClass</value>
        </property>
        <property>
          <name>mapred.output.key.class</name>
          <value>org.apache.hadoop.io.Text</value>
        </property>
        <property>
          <name>mapred.output.value.class</name>
          <value>org.apache.hadoop.io.IntWritable</value>
        </property>
        <property>
          <name>mapred.input.dir</name>
          <value>/user/user1/inp</value>
        </property>
        <property>
          <name>mapred.output.dir</name>
          <value>/user/user1/out1</value>
        </property>
      </configuration>
    </map-reduce>

    <ok to="end"/>
    <error to="fail"/>
  </action>

  <kill name="fail">
    <message>Map/Reduce failed, error message</message>
  </kill>
  <end name="end"/>

</workflow-app>


файл job.propertis будет
oozie.wf.application.path=hdfs://localhost:54100/user/user1/oozie/workflow-apps/sample-mr



Файл workflow.xml должен присутствовать в hdfs: // localhost: 54100 / user / user1 / oozie / workflow-apps / sample-mr и скопировать файл jar содержащий необходимый класс в пути hdfs: // localhost: 54100 / user / user1 / oozie / workflow-apps / sample-mr / lib.


Задание Oozie можно запустить из командной строки с помощью

oozie job -oozie http://localhost:8080/oozie -config map-reduce-job.properties -run

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