Oozie的介紹
Oozie是運行在hadoop平臺上的一種工作流調度引擎,它可以用來調度與管理hadoop任務,如,MapReduce、Pig等。
oozie的組件介紹
workFlow:工作流,定義工作流任務的執行,主要由一個個的action組成,每個action都是一個任務,在xml中進行配置即可
Coordinator :協作器,可以理解爲工作流的協調器,可以將多個工作流協調成一個工作流來進行處理。也是oozie當中的定時任務調度的模塊,
Bundle :捆,束。多個Coordinator 的抽象,可以通過bundle將多個Coordinator 進行組裝集合起來,形成一個bundle
oozie的架構
oozie的安裝
第一步:修改core-site.xml
修改core-site.xml添加我們hadoop集羣的代理用戶
cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
vim core-site.xml
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
注意:hadoop的歷史任務的服務必須啓動,即19888端口可以查看,具體如何配置19888請查看hadoop課程的環境搭建
修改完成之後,記得重啓hadoop的hdfs與yarn集羣,還要記得啓動jobhistory
重啓hdfs與yarn集羣
cd /export/servers/hadoop-2.6.0-cdh5.14.0
sbin/stop-dfs.sh
sbin/start-dfs.sh
sbin/stop-yarn.sh
sbin/start-yarn.sh
第二步:上傳oozie的安裝包並解壓
將oozie的安裝包上傳到/export/softwares
cd /export/softwares/
tar -zxvf oozie-4.1.0-cdh5.14.0.tar.gz -C ../servers/
第三步:解壓hadooplibs到與oozie平行的目錄
cd /export/servers/oozie-4.1.0-cdh5.14.0
tar -zxvf oozie-hadooplibs-4.1.0-cdh5.14.0.tar.gz -C ../
第四步:創建libext目錄
在oozie的安裝路徑下創建libext目錄
cd /export/servers/oozie-4.1.0-cdh5.14.0
mkdir -p libext
第五步:拷貝依賴包到libext
拷貝一些依賴包到libext目錄下面去
拷貝所有的依賴包
cd /export/servers/oozie-4.1.0-cdh5.14.0
cp -ra hadooplibs/hadooplib-2.6.0-cdh5.14.0.oozie-4.1.0-cdh5.14.0/* libext/
拷貝mysql的驅動包
cp /export/servers/hive-1.1.0-cdh5.14.0/lib/mysql-connector-java-5.1.38.jar /export/servers/oozie-4.1.0-cdh5.14.0/libext/
第六步:添加ext-2.2.zip壓縮包
拷貝ext-2.2.zip這個包到libext目錄當中去
將我們準備好的軟件ext-2.2.zip拷貝到libext目錄當中去
第七步:修改oozie-site.xml
cd /export/servers/oozie-4.1.0-cdh5.14.0/conf
vim oozie-site.xml
如果沒有這些屬性,直接添加進去即可,oozie默認使用的是UTC的時區,我們需要在我們oozie-site.xml當中記得要配置時區爲GMT+0800時區
<property>
<name>oozie.service.JPAService.jdbc.driver</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>oozie.service.JPAService.jdbc.url</name>
<value>jdbc:mysql://node03.hadoop.com:3306/oozie</value>
</property>
<property>
<name>oozie.service.JPAService.jdbc.username</name>
<value>root</value>
</property>
<property>
<name>oozie.service.JPAService.jdbc.password</name>
<value>123456</value>
</property>
<property>
<name>oozie.processing.timezone</name>
<value>GMT+0800</value>
</property>
<property>
<name>oozie.service.ProxyUserService.proxyuser.hue.hosts</name>
<value>*</value>
</property>
<property> <name>oozie.service.ProxyUserService.proxyuser.hue.groups</name>
<value>*</value>
</property>
<property>
<name>oozie.service.coord.check.maximum.frequency</name>
<value>false</value>
</property>
<property>
<name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
<value>*=/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop</value>
</property>
第八步:創建mysql數據庫
mysql -uroot -p
create database oozie;
第九步:上傳oozie依賴的jar包到hdfs上面去
上傳oozie的解壓後目錄的yarn.tar.gz到hdfs目錄去
bin/oozie-setup.sh sharelib create -fs hdfs://node01:8020 -locallib oozie-sharelib-4.1.0-cdh5.14.0-yarn.tar.gz
實際上就是將這些jar包解壓到了hdfs上面的路徑下面去了
第十步:創建oozie的數據庫表
cd /export/servers/oozie-4.1.0-cdh5.14.0
bin/oozie-setup.sh db create -run -sqlfile oozie.sql
第十一步:打包項目,生成war包
cd /export/servers/oozie-4.1.0-cdh5.14.0
bin/oozie-setup.sh prepare-war
第十二步:配置oozie的環境變量
vim /etc/profile
export OOZIE_HOME=/export/servers/oozie-4.1.0-cdh5.14.0
export OOZIE_URL=http://node03.hadoop.com:11000/oozie
export PATH=:$OOZIE_HOME/bin:$PATH
source /etc/profile
第十三步:啓動與關閉oozie服務
啓動命令
cd /export/servers/oozie-4.1.0-cdh5.14.0
bin/oozied.sh start
關閉命令
bin/oozied.sh stop
第十四步:瀏覽器頁面訪問oozie
解決oozie的頁面的時區問題:
我們頁面訪問的時候,發現oozie使用的還是GMT的時區,與我們現在的時區相差一定的時間,所以我們需要調整一個js的獲取時區的方法,將其改成我們現在的時區
修改js當中的時區問題
cd /export/servers/oozie-4.1.0-cdh5.14.0/oozie-server/webapps/oozie
vim oozie-console.js
function getTimeZone() {
Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
return Ext.state.Manager.get("TimezoneId","GMT+0800");
}
重啓oozie即可
cd /export/servers/oozie-4.1.0-cdh5.14.0
關閉oozie服務
bin/oozied.sh stop
啓動oozie服務
bin/oozied.sh start