
# Oozie样例程序开发思路
#### 开发流程
1. 工作流配置文件"workflow.xml"（"coordinator.xml"是对工作流进行调度，"bundle.xml"是对一组Coordinator进行管理）与"job.properties"。
2. 如果有实现代码，需要开发对应的jar包，例如Java Action；如果是Hive，则需要开发SQL文件。
3. 上传配置文件与jar包（包括依赖的jar包）到HDFS，上传的路径取决于"workflow.xml"中的"oozie.wf.application.path"参数配置的路径。
4. 提供三种方式对工作流进行操作，详情请参见[Oozie应用开发常见问题](https://support.huaweicloud.com/devg3-mrs/mrs_07_160034.html)。
   - Shell命令
   
   - Java API
   
   - Hue
    
5. Oozie客户端提供了比较完整的examples示例供用户参考，包括各种类型的Action，以及Coordinator以及Bundle的使用。以客户端安装目录为"/opt/client"为例，examples具体目录为"/opt/client/Oozie/oozie-client-\*/examples"。
如下通过一个MapReduce工作流的示例演示如何配置，并通过Shell命令调用。
#### 场景说明
假设存在这样的业务需求：
每天需要对网站的日志文件进行离线分析，统计出网站各模块的访问频率（日志文件存放在HDFS中）。
通过客户端中模板与配置文件提交任务。
