本博客一共包含ooize workflow流程写法,job.properties 文件配置,ooize 任务的启动与杀死。
1.workflow 的开始和workflow 的命名
说明:
在xmls属性中定义了workflow的版本为0.4,workflow的版本不能高于oozie兼容的最高版本,可以降低
2.决定另外一个workflow 运行的频率并且调用另外一个workflow:
${hour eq 23}
${nameNode}/user/oozie/jutou/datasynch/day_offline_wf
mapred.job.queue.name
${queueName}
3.运行Java 代码:
${jobTracker}
${nameNode}
mapred.job.queue.name
${queueName}
com.huanju.realtime.JuTouRealtimeDataSynch
${jdbcUrl}
${username}
${password}
${today}
${yesterday}
${tomorrow}
4.oozie 中执行hql 语句
${jobTracker}
${nameNode}
my-hive-default.xml
day=${today}
说明:
prepare 如果需要在hive作业之前创建或删除HDFS目录,则可以增加prepare参数,指定需要创建或删除的HDFS路径。
job-xml 指定hive-site.xml所在HDFS上的路径;如果是CDH搭建的集群,则可以在任何一台hive gateway机器上的/etc/hive/conf目录下找到该配置文件。如果不指定该文件路径,hive action就不work。
configuration 包含传递给hive作业的参数,可以没有这个配置项,这样就全部使用默认配置
script 指定hql脚本所在HDFS上的路径;这个参数是hive action必须的。这个hql脚本中,可以使用${VARIABLES}来表示参数,获取在hive action中定义的param参数配置
param 定义在hql脚本中所需要的变量值
5.在oozie中执行sqoop
${jobTracker}
${nameNode}
my-sqoop-default.xml
import --connect "${jdbcUrl}" --username ${username} --password ${password} --table tb_vivo_promotion --fields-terminated-by \001 -m 1 --columns company_id,plat_promotion_id,plat_promotion_name,daily_budget,startdate,enddate,is_delete,ctime,mtime --target-dir /jutou/original/vivo_promotion --delete-target-dir --hive-drop-import-delims --null-string \\N --null-non-string \\N
6.在oozie中执行邮件发送
${toEmail}
${ccEmail}
[OOZIE FAILED] ${wf:name()} ${wf:id()}
Task failed!
wfid:${wf:id()}
Error message:[${wf:errorMessage(wf:lastErrorNode())}].
7.在oozie中执行shell脚本
${jobTracker}
${nameNode}
mapred.job.queue.name
${queueName}
weixin.py
${wechats}
${nameNode} ${wf:name()} | ${wf:id()} Failed,Please Check it !
${nameNode}/${hdfsroot}/weixin.py
说明:
8.错误终止和成功结束
failed, error message[${wf:errorMessage(wf:lastErrorNode())}]
#hdfs所在节点和端口
nameNode=hdfs://u007:8020
#RM 所在节点以及端口号
jobTracker=U007:8032
queueName=default
examplesRoot=examples
oozie.usr.system.libpath=true
#指是否加载用户lib目录
oozie.libpath=${nameNode}/user/oozie/libserver
#用户lib库所在位置
oozie.wf.application.path=${nameNode}/user/oozie/tt/user_count/wf
#oozie流程所在hdfs地址即workflow.xml所在地址
hiveMetastore=U006
#发送邮件人和抄送邮件人,多个用逗号隔开
toEmail=
ccEmail=
jdbcUrl=jdbc:mysql://10.10.25.13:3306/tt?useUnicode=true&characterEncoding=utf-8
username=root
password=123456
启动oozie任务命令:
oozie job -oozie http://${OOZIE_SERVER}:11000/oozie/ -config ${WORKROOT}/wf/job.properties -run -verbose -Dday=${day} -Dhour=${hour} -Dforce=${force} -Dstartline=${startline} -DbeforeFiveDate=${beforeFiveDate}
OOZIE_SERVER:oozie 所在节点
-config :job.properties 所在目录
-verbose :任务执行所需要的参数,如果没有参数,不写即可
杀死oozie任务命令:
oozie job -oozie http://${OOZIE_SERVER}:11000/oozie -kill job_id