oozie 用法说明

本博客一共包含ooize workflow流程写法,job.properties 文件配置,ooize 任务的启动与杀死。

oozie 流程定义:

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())}]

job.properties 写法:

#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任务命令:

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

你可能感兴趣的:(oozie)