Oozie是一個基于作業流引擎的開源框架,由Cloudera公司貢獻給Apache,提供對Hadoop MapReduce、Pig Jobs的任務調度與協調,Oozie需要部署到Java Servlet容器中運行,主要用于定時調度任務,多任務可以按照執行的邏輯順序調度,關注專欄《破繭成蝶——大資料篇》,查看更多相關的內容~
目錄
一、Oozie的簡介
1.1 簡介
1.2 模塊
1.3 Workflow常用節點
二、Oozie的安裝部署
2.1 安裝CDH版本的Hadoop
2.1.1 上傳解壓安裝包
2.1.2 修改組態檔
2.1.3 分發
2.1.4 測驗
2.2 安裝Oozie
2.2.1 上傳并解壓Oozie安裝包
2.2.2 解壓oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz到Oozie的根目錄
2.2.3 在Oozie目錄下創建libext目錄
2.2.4 添加jar包
2.2.5 拷貝ext-2.2.zip
2.2.6 修改Oozie組態檔
2.2.7 在MySQL中創建oozie資料庫
2.2.8 初始化Oozie
2.2.9 啟動/關閉Oozie
一、Oozie的簡介
1.1 簡介
一個基于作業流引擎的開源框架,是由Cloudera公司貢獻給Apache的,它能夠提供對HadoopMapReduce和Pig Jobs的任務調度與協調,Oozie需要部署到Java Servlet容器中運行,Oozie作業流定義,同JBoss jBPM提供的jPDL一樣,也提供了類似的流程定義語言hPDL,通過XML檔案格式來實作流程的定義,對于作業流系統,一般都會有很多不同功能的節點,比如分支、并發、匯合等等,Oozie定義了控制流節點(Control Flow Nodes)和動作節點(Action Nodes),其中控制流節點定義了流程的開始和結束,以及控制流程的執行路徑(Execution Path),如decision、fork、join等;而動作節點包括Hadoop map-reduce、Hadoop檔案系統、Pig、SSH、HTTP、Email和Oozie子流程,
1.2 模塊
1、Workflow:順序執行流程節點,支持fork(分支多個節點),join(合并多個節點為一個),2、Coordinator:定時觸發workflow,3、Bundle:系結多個Coordinator,
1.3 Workflow常用節點
1、控制流節點(Control Flow Nodes):控制流節點一般都是定義在作業流開始或者結束的位置,比如start、end、kill等,以及提供作業流的執行路徑機制,如decision,fork,join等,2、動作節點(Action Nodes):負責執行具體動作的節點,比如:拷貝檔案,執行某個Shell腳本等等,
二、Oozie的安裝部署
2.1 安裝CDH版本的Hadoop
2.1.1 上傳解壓安裝包
首先還是上傳安裝包并解壓到相關目錄:
[root@master software]# tar -zxvf hadoop-2.5.0-cdh5.3.6.tar.gz -C ../modules/cdh/
2.1.2 修改組態檔
修改/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/etc/hadoop目錄下的相關組態檔:
1、修改slaves組態檔
master
slave01
slave02
2、修改yarn-env.sh組態檔
export JAVA_HOME=/opt/modules/jdk1.8.0_144
3、修改mapred-env.sh組態檔
export JAVA_HOME=/opt/modules/jdk1.8.0_144
4、修改hadoop-env.sh組態檔
export JAVA_HOME=/opt/modules/jdk1.8.0_144
5、修改core-site.xml組態檔
<configuration>
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<!-- 指定Hadoop運行時產生檔案的存盤目錄 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/data/tmp</value>
</property>
<!-- Oozie Server的Hostname -->
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<!-- 允許被Oozie代理的用戶組 -->
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
</configuration>
6、修改hdfs-site.xml組態檔
<configuration>
<!-- 指定副本數 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定Hadoop輔助名稱節點主機配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave02:50090</value>
</property>
</configuration>
7、修改mapred-site.xml組態檔
<configuration>
<!-- 指定MR運行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 配置集群歷史服務器 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>slave01:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>slave01:19888</value>
</property>
</configuration>
8、修改yarn-site.xml組態檔
<configuration>
<!-- Reducer獲取資料的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>slave01</value>
</property>
<!-- 任務歷史服務 -->
<property>
<name>yarn.log.server.url</name>
<value>http://master:19888/jobhistory/logs/</value>
</property>
</configuration>
2.1.3 分發
將配置好的目錄分發到集群機器各節點:
2.1.4 測驗
1、格式化NameNode
bin/hdfs namenode -format
2、啟動集群
1、master節點
sbin/start-dfs.sh
2、slave01節點
sbin/start-yarn.sh
sbin/mr-jobhistory-daemon.sh start historyserver
3、監控界面看一下啟動是否正常

4、測驗,新建一個檔案測驗wordcount,跑通說明集群沒有問題,

2.2 安裝Oozie
2.2.1 上傳并解壓Oozie安裝包
[root@master software]# tar -zxvf oozie-4.0.0-cdh5.3.6.tar.gz -C ../modules/
2.2.2 解壓oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz到Oozie的根目錄
[root@master oozie-4.0.0-cdh5.3.6]# tar -zxvf oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz -C ../

2.2.3 在Oozie目錄下創建libext目錄
[root@master oozie-4.0.0-cdh5.3.6]# mkdir libext
2.2.4 添加jar包
[root@master oozie-4.0.0-cdh5.3.6]# cp -ra hadooplibs/hadooplib-2.5.0-cdh5.3.6.oozie-4.0.0-cdh5.3.6/* ./libext/
[root@master oozie-4.0.0-cdh5.3.6]# cp -a /opt/software/mysql-connector-java-5.1.47.jar ./libext/
2.2.5 拷貝ext-2.2.zip
[root@master libext]# cp /opt/software/ext-2.2.zip ./
ext是一個js框架,用于展示oozie前端頁面,
2.2.6 修改Oozie組態檔
修改Oozie的組態檔oozie-site.xml,如下:
<property>
<name>oozie.service.JPAService.jdbc.driver</name>
<value>com.mysql.jdbc.Driver</value>
<description>
JDBC driver class.
</description>
</property>
<property>
<name>oozie.service.JPAService.jdbc.url</name>
<value>jdbc:mysql://master:3306/oozie</value>
<description>
JDBC URL.
</description>
</property>
<property>
<name>oozie.service.JPAService.jdbc.username</name>
<value>root</value>
<description>
DB user name.
</description>
</property>
<property>
<name>oozie.service.JPAService.jdbc.password</name>
<value>p@ssw0rd</value>
<description>
DB user password.
IMPORTANT: if password is emtpy leave a 1 space string, the service trims the value,
if empty Configuration assumes it is NULL.
</description>
</property>
<property>
<name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
<value>*=/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/etc/hadoop</value>
<description>
Comma separated AUTHORITY=HADOOP_CONF_DIR, where AUTHORITY is the HOST:PORT of
the Hadoop service (JobTracker, HDFS). The wildcard '*' configuration is
used when there is no exact match for an authority. The HADOOP_CONF_DIR contains
the relevant Hadoop *-site.xml files. If the path is relative is looked within
the Oozie configuration directory; though the path can be absolute (i.e. to point
to Hadoop client conf/ directories in the local filesystem.
</description>
</property>
2.2.7 在MySQL中創建oozie資料庫
create database oozie;
2.2.8 初始化Oozie
1、上傳Oozie目錄下的yarn.tar.gz檔案到HDFS,
bin/oozie-setup.sh sharelib create -fs hdfs://master:8020 -locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz
監控界面可以發現有目錄生成:

2、創建oozie.sql檔案
bin/ooziedb.sh create -sqlfile oozie.sql -run
3、打包專案,生成war包
bin/oozie-setup.sh prepare-war
2.2.9 啟動/關閉Oozie
bin/oozied.sh start/stop

以上就是本文的所有內容,比較簡單,你們在此程序中遇到了什么問題,歡迎留言,讓我看看你們都遇到了哪些問題~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/276998.html
標籤:其他
