我的大数据之旅-Oozie执行shell脚本任务

目录

目标:通过Oozie调度hdfs上的shell脚本

步骤:

1.解压Oozie官方案例模板

2.创建工作目录

3.拷贝案例模板

4.创建Shell脚本

5.修改property文件

6.修改workflow.xml

7.将整个job目录上传HDFS

8.运行job

效果图:


目标:通过Oozie调度hdfs上的shell脚本

 

步骤:

1.解压Oozie官方案例模板

[feng@hadoop129 oozie-4.0.0-cdh5.3.6]$ tar -zxf oozie-examples.tar.gz

2.创建工作目录

[feng@hadoop129 oozie-4.0.0-cdh5.3.6]$ mkdir  feng-apps/

3.拷贝案例模板

[feng@hadoop129 oozie-4.0.0-cdh5.3.6]$ cp -a examples/apps/shell/ feng-apps/

4.创建Shell脚本

[feng@hadoop129 shell]$ touch feng.sh
[feng@hadoop129 shell]$ vim feng.sh
[feng@hadoop129 shell]$
[feng@hadoop129 shell]$
[feng@hadoop129 shell]$ more feng.sh
#!/bin/bash
ssh feng@hadoop129 'echo "Oozie invoked:Hello, world" >> /home/feng/feng_oozie.log'

5.修改property文件


nameNode=hdfs://hadoop130:8020

jobTracker=hadoop:8021

queueName=default

examplesRoot=feng-apps

oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/shell

            
            /user/feng/feng-apps/shell/${EXEC}#${EXEC}
		        
        
        
        
    
    
        
            
                ${wf:actionData('shell-node')['my_output'] eq 'Hello Oozie'}
            
            
        
    
    
        Shell action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]
    
    
        Incorrect output, expected [Hello Oozie] but was [${wf:actionData('shell-node')['my_output']}]
    
    

7.将整个job目录上传HDFS

/opt/module/cdh/hadoop-2.5.0-cdh5.3.6/bin/hadoop fs -rm -r feng-apps
/opt/module/cdh/hadoop-2.5.0-cdh5.3.6/bin/hadoop fs -put /opt/module/oozie-4.0.0-cdh5.3.6/feng-apps/

先删除原hdfs上的feng-apps目录再上传新的

8.运行job

bin/oozie job -oozie http://hadoop129:11000/oozie -config feng-apps/shell/job.properties -run

效果图:

打开Oozie 页面找到刚执行的job:

我的大数据之旅-Oozie执行shell脚本任务_第1张图片

运行成功,查看对应的shell脚本打印日志是否成功:

大功告成。

你可能感兴趣的:(大数据)