1. 程式人生 > >任務排程之Oozie簡介

任務排程之Oozie簡介

一、Oozie 簡介
Oozie 英文翻譯為:馴象人。一個基於工作流引擎的開源框架,由 Cloudera 公司貢獻給Apache,提供對 Hadoop Mapreduce、Pig Jobs 的任務排程與協調。Oozie 需要部署到 Java Servlet 容器中執行。主要用於定時排程任務,多工可以按照執行的邏輯順序排程。

二、Oozie 的功能模組介紹
2.1、模組

  1. Workflow
    順序執行流程節點,支援 fork(分支多個節點),join(合併多個節點為一個)
  2. Coordinator
    定時觸發 workflow
  3. Bundle Job
    繫結多個 Coordinator
    2.2、常用節點
  4. 控制流節點(Control Flow Nodes)
    控制流節點一般都是定義在工作流開始或者結束的位置,比如 start,end,kill 等。以及提供工作流的執行路徑機制,如 decision,fork,join 等。
  5. 動作節點(Action Nodes)
    負責執行具體動作的節點,比如:拷貝檔案,執行某個 Shell 指令碼等等。

三、Oozie 的部署
3.1 下載安裝包並解壓到指定目錄
3.2 在原來學習的基礎上修改 Hadoop 配置資訊如下:
core-site.xml

<!-- Oozie Server 的 Hostname -->
<property>
<name>hadoop.proxyuser.admin.hosts</name>
<value>*</value>
</property>
<!-- 允許被 Oozie 代理的使用者組 -->
<property>
<name>hadoop.proxyuser.admin.groups</name>
<value>*</value>
</property>

mapred-site.xml

<!-- 配置 MapReduce JobHistory Server 地址 ,預設埠 10020 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>linux01:10020</value>
</property>
<!-- 配置 MapReduce JobHistory Server web ui 地址, 預設埠 19888 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>linux01:19888</value>
</property>

yarn-site.xml

<!-- 任務歷史服務 -->
<property>
<name>yarn.log.server.url</name>
<value>http://linux01:19888/jobhistory/logs/</value>
</property>

3.3 將配置檔案同步到叢集的其它節點
3.4 重啟Hadoop叢集
3.5 在 oozie 根目錄下解壓 hadooplibs
3.6 在 Oozie 根目錄下建立 libext 目錄
3.7 拷貝一些依賴的 jar 包
1.將 hadooplibs 裡面的 jar 包,拷貝到 libext 目錄下
2.拷貝 Mysql 驅動包到 libext 目錄下
3.8 將 ext-2.2.zip 拷貝到 libext/目錄下
3.9 修改Oozie配置檔案
oozie-site.xml

屬性:oozie.service.JPAService.jdbc.driver
屬性值:com.mysql.jdbc.Driver
解釋:JDBC 的驅動

屬性:oozie.service.JPAService.jdbc.url 
屬性值:jdbc:mysql://linux01:3306/oozie 
解釋:oozie 所需的資料庫地址

屬性:oozie.service.JPAService.jdbc.username 
屬性值:root
解釋:資料庫使用者名稱

屬性:oozie.service.JPAService.jdbc.password 
屬性值:123456
解釋:資料庫密碼

屬性:oozie.service.HadoopAccessorService.hadoop.configurations
屬性值:*=/home/admin/modules/cdh/hadoop-2.5.0-cdh5.3.6/etc/hadoop
解釋:讓Oozie 引用 Hadoop 的配置檔案

3.10 在 Mysql 中建立 Oozie 的資料庫
1.上傳 Oozie 目錄下的 yarn.tar.gz 檔案到 HDFS
2. 建立 oozie.sql 檔案
3. 打包專案,生成 war 包
3.11 啟動、關閉 Oozie 服務

$ bin/oozied.sh start
$ bin/oozied.sh stop

3.12 訪問 Oozie 的 Web 頁面

http://主機IP:11000/oozie

完!