更新时间:2024-11-29 GMT+08:00

从零开始使用Oozie

Oozie是一个基于工作流引擎的开源框架,能够提供对Hadoop作业的任务调度与协调。

Oozie支持提交多种类型任务,例如Hive、Spark、Loader、Mapreduce、Java、DistCp、Shell、HDFS、SSH、SubWorkflow、Streaming、定时任务等。

本章节指导用户通过使用Oozie客户端提交MapReduce任务。

前提条件

已安装客户端。例如安装目录为“/opt/client”,以下操作的客户端目录只是举例,请根据实际安装目录修改。

操作步骤

  1. 以客户端安装用户,登录安装客户端的节点。
  2. 执行以下命令,切换到客户端安装目录。假如客户端安装目录为:/opt/client,请根据实际安装目录修改。

    cd /opt/client

  3. 执行以下命令配置环境变量。

    source bigdata_env

  4. 判断集群认证模式。

    • 安全模式,执行以下命令进行用户认证。UserOozie为提交任务的用户

      kinit UserOozie

    • 普通模式,执行5

  5. 上传Oozie配置文件以及Jar包至HDFS:

    hdfs dfs -mkdir /user/UserOozie

    hdfs dfs -put -f /opt/client/Oozie/oozie-client-*/examples /user/UserOozie/

    • /opt/client”为客户端安装目录,请根据实际安装目录修改。
    • UserOozie为提交任务的用户。
    • 创建“/user/UserOozie”目录,并上传“/opt/client/Oozie/oozie-client-*/examples”中的文件到该目录下后,需保证该目录、目录下的所有文件及其子目录都具有755权限,否则使用Oozie客户端提交任务时可能会出现权限异常。

  6. 修改任务执行配置文件:

    cd /opt/client/Oozie/oozie-client-*/examples/apps/map-reduce/

    vi job.properties

    nameNode=hdfs://hacluster
    resourceManager=10.64.35.161:8032(10.64.35.161为Yarn resourceManager(Active)节点业务平面IP;8032为yarn.resourcemanager.port)
    queueName=default
    examplesRoot=examples
    user.name=admin
    oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/apps/map-reduce #hdfs上传路径
    outputDir=map-reduce
    oozie.wf.rerun.failnodes=true

  7. 运行oozie任务:

    oozie job -oozie https://oozie角色的主机名:21003/oozie/ -config job.properties -run

    [root@kwephispra44947 map-reduce]# oozie job -oozie https://kwephispra44948:21003/oozie/ -config job.properties -run
    ......
    job: 0000000-200730163829770-oozie-omm-W

  8. 登录FusionInsight Manager。
  9. 选择“集群 > 服务 > Oozie ”,单击“oozie WebUI”后的超链接进入Oozie页面,在Oozie的WebUI上查看任务运行结果。

    图1 任务运行结果