用戶畫像第三章(企業級360°用戶畫像_Oozie的使用)

4、oozie的使用

在這裏插入圖片描述
4.1、使用oozie調度shell腳本
oozie安裝好了之後,需要測試oozie的功能是否完整好使,官方已經給我們帶了各種測試案例,我們可以通過官方提供的各種案例來對oozie進行調度
第一步:解壓官方提供的調度案例
oozie自帶了各種案例,我們可以使用oozie自帶的各種案例來作爲模板,所以我們這裏先把官方提供的各種案例給解壓出來

cd /export/servers/oozie-4.1.0-cdh5.14.0
tar -zxf oozie-examples.tar.gz
在這裏插入圖片描述

第二步:創建工作目錄
在任意地方創建一個oozie的工作目錄,以後調度任務的配置文件全部放到oozie的工作目錄當中去
我這裏直接在oozie的安裝目錄下面創建工作目錄

cd /export/servers/oozie-4.1.0-cdh5.14.0
mkdir oozie_works

第三步:拷貝任務模板到工作目錄當中去
任務模板以及工作目錄都準備好了之後,我們把shell的任務模板拷貝到我們oozie的工作目錄當中去

cd /export/servers/oozie-4.1.0-cdh5.14.0
cp -r examples/apps/shell/ oozie_works/

第四步:隨意準備一個shell腳本

cd /export/servers/oozie-4.1.0-cdh5.14.0
vim oozie_works/shell/hello.sh
注意:這個腳本一定要是在我們oozie工作路徑下的shell路徑下的位置
#!/bin/bash
echo “hello world” >> /export/servers/hello_oozie.txt

第五步:修改模板下的配置文件
修改job.properties
cd /export/servers/oozie-4.1.0-cdh5.14.0/oozie_works/shell
vim job.properties
nameNode=hdfs://node01:8020
jobTracker=node01:8032
queueName=default
examplesRoot=oozie_works
oozie.wf.application.path=nameNode/user/{nameNode}/user/{user.name}/${examplesRoot}/shell
EXEC=hello.sh
修改workflow.xml
vim workflow.xml

<workflow-app xmlns="uri:oozie:workflow:0.4" name="shell-wf">
<start to="shell-node"/>
<action name="shell-node">
    <shell xmlns="uri:oozie:shell-action:0.2">
        <job-tracker>${jobTracker}</job-tracker>
        <name-node>${nameNode}</name-node>
        <configuration>
            <property>
                <name>mapred.job.queue.name</name>
                <value>${queueName}</value>
            </property>
        </configuration>
        <exec>${EXEC}</exec>
        <!-- <argument>my_output=Hello Oozie</argument> -->
        <file>/user/root/oozie_works/shell/${EXEC}#${EXEC}</file>

        <capture-output/>
    </shell>
    <ok to="end"/>
    <error to="fail"/>
</action>
<decision name="check-output">
    <switch>
        <case to="end">
            ${wf:actionData('shell-node')['my_output'] eq 'Hello Oozie'}
        </case>
        <default to="fail-output"/>
    </switch>
</decision>
<kill name="fail">
    <message>Shell action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<kill name="fail-output">
    <message>Incorrect output, expected [Hello Oozie] but was [${wf:actionData('shell-node')['my_output']}]</message>
</kill>
<end name="end"/>
</workflow-app>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章