任務排程之Oozie簡介
阿新 • • 發佈:2019-01-05
一、Oozie 簡介
Oozie 英文翻譯為:馴象人。一個基於工作流引擎的開源框架,由 Cloudera 公司貢獻給Apache,提供對 Hadoop Mapreduce、Pig Jobs 的任務排程與協調。Oozie 需要部署到 Java Servlet 容器中執行。主要用於定時排程任務,多工可以按照執行的邏輯順序排程。
二、Oozie 的功能模組介紹
2.1、模組
- Workflow
順序執行流程節點,支援 fork(分支多個節點),join(合併多個節點為一個) - Coordinator
定時觸發 workflow - Bundle Job
繫結多個 Coordinator
2.2、常用節點 - 控制流節點(Control Flow Nodes)
控制流節點一般都是定義在工作流開始或者結束的位置,比如 start,end,kill 等。以及提供工作流的執行路徑機制,如 decision,fork,join 等。 - 動作節點(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
完!