• 【Hadoop离线基础总结】oozie定时任务设置



    简介

    • 概述
      在oozie当中,主要是通过Coordinator 来实现任务的定时调度,与workflow类似。Coordinator 这个模块也是主要通过xml来进行配置即可
      Coordinator 的调度主要有两种实现方式:
      第一种: 基于时间的定时任务调度,oozie基于时间的调度主要需要指定三个参数,第一个起始时间,第二个结束时间,第三个调度频率。
      第二种: 基于数据的任务调度,只有在有了数据才会去出发执行。

    oozie定时任务设置

    • 1.拷贝定时任务的调度模板
      cd /export/servers/oozie-4.1.0-cdh5.14.0
      cp -r examples/apps/cron oozie_works/cron-job
      
    • 拷贝hello.sh脚本
      cd /export/servers/oozie-4.1.0-cdh5.14.0/oozie_works
      cp shell/hello.sh  cron-job/
      
    • 3.修改配置文件

      修改job.properties

      cd /export/servers/oozie-4.1.0-cdh5.14.0/oozie_works/cron-job
      vim job.properties
      
      nameNode=hdfs://node01:8020
      jobTracker=node01:8032
      queueName=default
      examplesRoot=oozie_works
      
      oozie.coord.application.path=${nameNode}/user/${user.name}/${examplesRoot}/cron-job/coordinator.xml
      start=2018-08-22T19:20+0800
      end=2019-08-22T19:20+0800
      EXEC=hello.sh
      workflowAppUri=${nameNode}/user/${user.name}/${examplesRoot}/cron-job/workflow.xml
      

      修改coordinator.xml
      vim coordinator.xml

      <!--
      	oozie的frequency 可以支持很多表达式,其中可以通过定时每分,或者每小时,或者每天,或者每月进行执行,也支持可以通过与linux的crontab表达式类似的写法来进行定时任务的执行
      	例如frequency 也可以写成以下方式
      	frequency="10 9 * * *"  每天上午的09:10:00开始执行任务
      	frequency="0 1 * * *"  每天凌晨的01:00开始执行任务
       -->
      <coordinator-app name="cron-job" frequency="${coord:minutes(1)}" start="${start}" end="${end}" timezone="GMT+0800"
                       xmlns="uri:oozie:coordinator:0.4">
              <action>
              <workflow>
                  <app-path>${workflowAppUri}</app-path>
                  <configuration>
                      <property>
                          <name>jobTracker</name>
                          <value>${jobTracker}</value>
                      </property>
                      <property>
                          <name>nameNode</name>
                          <value>${nameNode}</value>
                      </property>
                      <property>
                          <name>queueName</name>
                          <value>${queueName}</value>
                      </property>
                  </configuration>
              </workflow>
          </action>
      </coordinator-app>
      
      修改workflow.xml
      vim workflow.xml
      <workflow-app xmlns="uri:oozie:workflow:0.5" name="one-op-wf">
          <start to="action1"/>
          <action name="action1">
          <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/cron-job/${EXEC}#${EXEC}</file>
      
              <capture-output/>
          </shell>
          <ok to="end"/>
          <error to="end"/>
      </action>
          <end name="end"/>
      </workflow-app>
      
    • 4.上传到hdfs对应路径
      cd /export/servers/oozie-4.1.0-cdh5.14.0/oozie_works
      hdfs dfs -put cron-job/ /user/root/oozie_works/
      
    • 5.运行定时任务
      cd /export/servers/oozie-4.1.0-cdh5.14.0
      bin/oozie job -oozie http://node03:11000/oozie -config oozie_works/cron-job/job.properties -run
      
  • 相关阅读:
    Ruby: 获取IE的一些信息(其实应用AutoIt脚本本身,获取这些信息更加简单)
    Watir: 对浏览器的保存文件操作, 其实应用的是AutoIt脚本
    Watir: 右键点击实例(某些如果应用AutoIt来做会更加简单高效)
    Watir: Get document detail information in Watir.
    Ruby的一些常用全局变量
    Watir: 很久以前,对Watir开始学习时候做的笔记
    AutoIT: 开发界面结合GUI automation和Watir Automation
    AutoIT:为文件夹下面的文件批量改名
    AutoIT: 如何设置GUICtrlCreateCombo选项为不可修改状态
    AutoIT: GUISetFont VS GUICtrlSetFont
  • 原文地址:https://www.cnblogs.com/zzzsw0412/p/12772455.html
Copyright © 2020-2023  润新知