更新时间:2024-07-24 GMT+08:00

使用Oozie客户端提交其它任务

操作场景

除了Hive、Spark2x、Loader任务,也支持使用Oozie客户端提交MapReduce、Java、Shell、HDFS、SSH、SubWorkflow、Streaming、定时等任务。

请下载使用最新版本的客户端。

前提条件

  • Oozie组件及客户端已经安装,并且正常运行。
  • 已创建或获取访问Oozie服务的人机用户账号及密码。
    • Shell任务:

      该用户需要从属于hadoop、supergroup组,添加Oozie的角色操作权限,并确保Shell脚本在每个nodemanager节点都有执行权限。

    • SSH任务:

      该用户需要从属于hadoop、supergroup组,添加Oozie的角色操作权限,并完成互信配置。

    • 其他任务:

      该用户需要从属于hadoop、supergroup组,添加Oozie的角色操作权限,并具备对应任务类型所需的权限。

    • 用户同时还需要至少manager_viewer权限的角色。
  • 获取运行状态的Oozie服务器(任意实例)URL,如“https://10.1.130.10:21003/oozie”。
  • 获取运行状态的Oozie服务器主机名,如“10-1-130-10”。
  • 获取Yarn ResourceManager主节点IP,如10.1.130.11。

操作步骤

  1. 以客户端安装用户,登录安装Oozie客户端的节点。
  2. 执行以下命令,获取安装环境信息。其中“/opt/client”为客户端安装路径,该操作的客户端目录只是举例,请根据实际安装目录修改。

    source /opt/client/bigdata_env

  3. 判断集群认证模式。

    • 安全模式,执行kinit命令进行用户认证。

      例如,使用oozieuser用户进行认证。

      kinit oozieuser

    • 普通模式,执行4

  4. 根据提交任务类型,进入对应样例目录。

    表1 样例目录列表

    任务类型

    样例目录

    Mapreduce任务

    客户端安装目录/Oozie/oozie-client-*/examples/apps/map-reduce

    Java任务

    客户端安装目录/Oozie/oozie-client-*/examples/apps/java-main

    Shell任务

    客户端安装目录/Oozie/oozie-client-*/examples/apps/shell

    Streaming任务

    客户端安装目录/Oozie/oozie-client-*/examples/apps/streaming

    SubWorkflow任务

    客户端安装目录/Oozie/oozie-client-*/examples/apps/subwf

    SSH任务

    客户端安装目录/Oozie/oozie-client-*/examples/apps/ssh

    定时任务

    客户端安装目录/Oozie/oozie-client-*/examples/apps/cron

    其他任务样例中已包含HDFS任务样例。

    样例目录下需关注文件如表2所示。

    表2 文件说明

    文件名称

    描述

    job.properties

    工作流的参数变量定义文件。

    workflow.xml

    工作流的规则定制文件。

    lib

    工作流运行依赖的jar包目录。

    coordinator.xml

    “cron”目录下存在,定时任务配置文件,用于设置定时策略。

    oozie_shell.sh

    “shell”目录下存在,提交Shell任务需要的Shell脚本文件。

  5. 执行以下命令,编辑“job.properties”文件。

    vi job.properties

    修改如下内容:

    更改“userName”的参数值为提交任务的人机用户名,例如“userName=oozieuser”

  6. 执行oozie job命令,运行工作流文件。

    oozie job -oozie https://oozie角色的主机名:21003/oozie -config job.properties文件所在路径 -run

    例如:

    oozie job -oozie https://10-1-130-10:21003/oozie -config

    /opt/client/Oozie/oozie-client-*/examples/apps/map-reduce/job.properties -run

    • 命令参数解释如下:

      -oozie:实际执行任务的Oozie服务器URL。

      -config:工作流属性文件。

      -run:运行工作流。

    • 执行完工作流文件,显示job id表示提交成功,例如:job: 0000021-140222101051722-oozie-omm-W。登录Oozie管理页面,查看运行情况。

      使用oozieuser用户,登录Oozie WebUI页面:https://oozie角色的ip地址:21003/oozie 。

      Oozie的WebUI界面中,可在页面表格根据jobid查看已提交的工作流信息。