
# 使用Oozie客户端提交其它任务
#### 操作场景
除了Hive、Spark2x、Loader任务，也支持使用Oozie客户端提交MapReduce、Java、Shell、HDFS、SSH、SubWorkflow、Streaming、定时等任务。
![](https://support.huaweicloud.com/cmpntguide-mrs/public_sys-resources/note_3.0-zh-cn.png)
请下载使用最新版本的客户端。
#### 前提条件
- Oozie组件及客户端已经安装，并且正常运行。
- 已创建或获取访问Oozie服务的人机用户账号及密码。
  ![](https://support.huaweicloud.com/cmpntguide-mrs/public_sys-resources/note_3.0-zh-cn.png)
  - 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       |
      
   ![](https://support.huaweicloud.com/cmpntguide-mrs/public_sys-resources/note_3.0-zh-cn.png)
   其他任务样例中已包含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**
   ![](https://support.huaweicloud.com/cmpntguide-mrs/public_sys-resources/note_3.0-zh-cn.png)
   - 命令参数解释如下： -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查看已提交的工作流信息。
     
    
   
   
 
