
# Oozie客户端配置说明
#### 操作场景
该任务指导用户在运维场景或业务场景中使用Oozie客户端。Oozie支持提交多种类型任务，例如Hive、Spark2x、Loader、Mapreduce、Java、DistCp、Shell、HDFS、SSH、SubWorkflow、Streaming、定时任务等。
#### 前提条件
- 已安装客户端，具体请参考[安装客户端](https://support.huaweicloud.com/usermanual-mrs/mrs_01_24212.html)。例如安装目录为"/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*/
      ![](https://support.huaweicloud.com/cmpntguide-mrs/public_sys-resources/note_3.0-zh-cn.png)
      - *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任务运行结果   
      ![](https://support.huaweicloud.com/cmpntguide-mrs/zh-cn_image_0000001933871454.png) 
   
   
   
   
 
