如何部署和运行oozie工作?

时间:2014-01-30 14:11:47

标签: hadoop apache-pig oozie

我正在尝试使用oozie做一个简单的工作。
这将是一个简单的猪行动。

我有一个文件:FirstScript.pig包含:

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

和包含以下内容的workflow.xml:

<workflow-app name="FirstWorkFlow" xmlns="uri:oozie:workflow:0.2">
    <start to="FirstJob"/> 
    <action name="FirstJob">
        <pig>
            <job-tracker>hadoop:50300</job-tracker>
            <name-node>hdfs://hadoop:8020</name-node>
            <script>/FirstScript.pig</script>
        </pig>
        <ok to="okjob"/>
        <error to="errorjob"/>
    </action>
    <ok name='okjob'>    
        <message>job OK, message[${wf:errorMessage()}]</message>
    </ok>    
    <error name='errorjob'>    
        <message>job error, error message[${wf:errorMessage()}]</message>
    </error>    
</workflow-app>

我创建了结构:

FirstScript
|- lib
|---FirstScript.pig
|- workflow.xml

现在怎么样? 如何部署它并与oozie一起运行?
任何人都可以获得更多经验吗?

问候
的Pawel

2 个答案:

答案 0 :(得分:8)

我是这样做的:

hadoop fs -put workflow.xml some_dir/ 
oozie job --oozie http://your_host:11000/oozie -config cluster_conf.xml -run

我的cluster_conf.xml看起来像这样(请先检查你的端口,他们依赖Hadoop发行版):

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<configuration>
<property>
        <name>nameNode</name>
        <value>hdfs://my_nn:8020</value>
</property>
<property>
        <name>jobTracker</name>
        <value>my_jt:8050</value>
</property>
<property>
        <name>oozie.wf.application.path</name>
        <value>/user/my_user/some_dir/workflow.xml</value>
</property>
</configuration>

答案 1 :(得分:2)

配置文件应指向job.properties而不是for (int i = 0; i < a.length; i++) { for (int j = 0; j < a[i].length; j++) { a[i][j] = ........ } } 。由于file.xml包含job.properties

的路径
workflow.xml