一、shell action
1、
##job.properties nameNode=hdfs://hadoop-senior.ibeifeng.com:8020 jobTracker=hadoop-senior.ibeifeng.com:8032 queueName=default oozieAppsRoot=user/root/oozie-apps oozieDataRoot=user/root/oozie/datas oozie.wf.application.path=${nameNode}/${oozieAppsRoot}/shell-hive-select exec=student-select.sh script=student-select.sql ##workflow.xml <workflow-app xmlns="uri:oozie:workflow:0.5" 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> <file>${nameNode}/${oozieAppsRoot}/shell-hive-select/${exec}#${exec}</file> <file>${nameNode}/${oozieAppsRoot}/shell-hive-select/${script}#${script}</file> <capture-output/> </shell> <ok to="end"/> <error to="fail"/> </action> <kill name="fail"> <message>Shell action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message> </kill> <end name="end"/> </workflow-app> ##student-select.sh #!/usr/bin/env bash ## student select /opt/cdh-5.3.6/hive-0.13.1-cdh5.3.6/bin/hive -f student-select.sql ##student-select.sql insert overwrite directory '/user/root/oozie/datas/shell-hive-select/output' select id, name from default.student ;
prepare元素里面配置启动job前要删除或者创建的文件夹,文件夹路径必须是以hdfs://HOST:PORT开头。 job-xml指定一个存在的配置文件。 configuration里面配置传递给sqoop job的参数。 exec元素包含要执行的shell命令的路径。可以给shell命令添加参数。 argument元素指定要传递给shell脚本的参数。 env-var包含传递给shell命令的环境变量。env-var只能包含一个环境变量和值。如果这个环境变量包含像$PATH一样的,那它必须写成PATH=$PATH:mypath。不能用${PATH},因为它将会被EL解析。 capture-output元素指定用来捕获shell脚本的标准输出。可以通过String action:output(String node, String key)函数【EL函数】来获得输出。 <file>属性会复制指定的文件到运行该脚本的机器上。
2、运行
##
[root@hadoop-senior oozie-apps]# /opt/cdh-5.3.6/hadoop-2.5.0-cdh5.3.6/bin/hdfs dfs -put shell-hive-select/ /user/root/oozie-apps/
##
[root@hadoop-senior oozie-4.0.0-cdh5.3.6]# export OOZIE_URL=http://hadoop-senior.ibeifeng.com:11000/oozie/
[root@hadoop-senior oozie-4.0.0-cdh5.3.6]# bin/oozie job -config oozie-apps/shell-hive-select/job.properties -run