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

Oozie客户端配置说明

操作场景

该任务指导用户在运维场景或业务场景中使用Oozie客户端。Oozie支持提交多种类型任务,例如Hive、Spark2x、Loader、Mapreduce、Java、DistCp、Shell、HDFS、SSH、SubWorkflow、Streaming、定时任务等。

前提条件

  • 已安装客户端,具体请参考安装客户端。例如安装目录为“/opt/client”,以下操作的客户端目录只是举例,请根据实际安装目录修改。
  • 各组件业务用户由MRS集群管理员根据业务需要创建。安全模式下,“机机”用户需要下载keytab文件。“人机”用户第一次登录时需修改密码。

使用Oozie客户端

  1. 以客户端安装用户,登录安装客户端的节点。
  2. 执行以下命令,切换到客户端安装目录,该操作的客户端目录只是举例,请根据实际安装目录修改。

    cd /opt/client

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

    source bigdata_env

  4. 判断集群认证模式。

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

      kinit exampleUser

    • 普通模式,执行5

  5. 配置Hue。

    1. spark2x环境配置(如果不涉及spark2x任务,可以跳过此步骤):

      hdfs dfs -put /opt/client/Spark2x/spark/jars/*.jar /user/oozie/share/lib/spark2x/

      当HDFS目录“/user/oozie/share”中的Jar包发生变化时,需要重启Oozie服务。

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

      hdfs dfs -mkdir /user/exampleUser

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

      • exampleUser为提交任务的用户名。
      • 在提交任务的用户和非job.properties文件均无变更的前提下,客户端安装目录/Oozie/oozie-client-*/examples目录一经上传HDFS,后续可重复使用,无需多次提交。
      • 解决Spark和Yarn关于jetty的jar冲突。

        hdfs dfs -rm -f /user/oozie/share/lib/spark/jetty-all-9.2.22.v20170606.jar

      • 普通模式下,上传过程如果遇到“Permission denied”的问题,可执行以下命令进行处理。

        su - omm

        source /opt/client/bigdata_env

        hdfs dfs -chmod -R 777 /user/oozie

        exit

  6. 本操作以在Oozie客户端提交MapReduce任务为例进行演示。

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

      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
    2. 运行Oozie任务:

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

      “21003”为Oozie HTTPS请求的运行端口,可在FusionInsight Manager,选择“集群 > 服务 > Oozie > 配置”,在搜索框中搜索“OOZIE_HTTPS_PORT”查看。

      [root@kwephispra44947 map-reduce]# oozie job -oozie https://kwephispra44948:21003/oozie/ -config job.properties -run
      ......
      job: 0000000-200730163829770-oozie-omm-W
    3. 登录FusionInsight Manager,选择“集群 > 待操作集群的名称 > 服务 > Oozie ”,单击“oozie WebUI”后的超链接进入Oozie页面,在Oozie的WebUI上查看任务运行结果。
      图1 任务运行结果