oozie 的使用 最好使用cdh,各框架兼容性好的, 如果使用apache 版本, 需要逛逛apache社區(qū),看看個框架的版本依賴,最好不要跨版本號依賴,解決兼容性問題是很頭疼的問題
大數(shù)據(jù)框架中,oozie 是比較復雜的, 尤其是部署的時候
定時調(diào)度任務框架有
Azkaban Azkaban部署起來 非常簡單, 是最簡單的
crontab 滴滴公司就是用的crontab 輕量級
oozie 是最強大的 ,部署的時候, 細節(jié)很重要
1、解壓Oozie
[victor@node1 software]$ tar -xzvf oozie-4.0.0-cdh5.3.6.tar.gz -C /opt/module
2、修改Hadoop配置文件,添加Oozie相關(guān)配置
oozie是有用戶的,默認用戶就是oozie
core-site.xml
<!-- Oozie Server的Hostname -->
## 允許哪些框架被oozie 代理victor用戶去操作hadoop,victor修改成自己的用戶名
<property>
<name>hadoop.proxyuser.victor.hosts</name>
<value>*</value>
</property>
<!-- 允許被Oozie代理的用戶組 -->
## 允許oozie 代理victor用戶去操作hadoop,victor修改成自己的用戶名
<property>
<name>hadoop.proxyuser.victor.groups</name>
<value>*</value>
</property>
mapred-site.xml
使用oozie框架,一定要配置jobhistory server
<!-- 配置 MapReduce JobHistory Server 地址 ,默認端口10020 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop102:10020</value>
</property>
<!-- 配置 MapReduce JobHistory Server web ui 地址, 默認端口19888 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop102:19888</value>
</property>
yarn-site.xml
<!-- 任務歷史服務 -->
<property>
<name>yarn.log.server.url</name>
<value>http://hadoop102:19888/jobhistory/logs/</value>
</property>
完成后:記得scp同步到其他機器節(jié)點
3、啟動Hadoop集群
[victor@node1 hadoop]$ sbin/start-dfs.sh
[victor@node1 hadoop]$ sbin/start-yarn.sh
[victor@node1 hadoop]$ sbin/mr-jobhistory-daemon.sh start historyserver
尖叫提示:需要開啟JobHistoryServer, 最好執(zhí)行一個MR任務進行測試。
4、在oozie根目錄下,解壓hadooplibs
[victor@node1 oozie]$ tar -xzvf oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz -C ../
完成后Oozie目錄下會出現(xiàn)hadooplibs目錄。目的是把解壓后的hadooplibs文件夾,放到oozie目錄下
5、在Oozie目錄下創(chuàng)建libext目錄
[victor@node1 oozie]$ mkdir libext/
6、拷貝一些依賴的Jar包
1) 將hadooplibs里面的jar包,拷貝到libext目錄下
[victor@node1 oozie]$ cp -ra hadooplibs/hadooplib-2.5.0-cdh5.3.6.oozie-4.0.0-cdh5.3.6/* libext/
2) 拷貝Mysql驅(qū)動包到libext目錄下
oozie 的 元數(shù)據(jù)保存在mysql 中 ,默認derby
[victor@node1 oozie]$ cp -a mysql-connector-java-5.1.27-bin.jar libext/
7、將ext-2.2.zip拷貝到自己創(chuàng)建的libext/目錄下
ext是一個js框架,用于展示oozie前端頁面
[victor@node1 oozie]$ cp -a ext-2.2.zip libext/
8、修改Oozie配置文件
oozie-site.xml
[victor@node1 oozie]$ vim conf/oozie-site.xml
<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://hadoop102: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>000000</value>
</property>
<property>
<name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
<value>*=/opt/module/cdh/hadoop-2.5.0-cdh5.3.6/etc/hadoop</value>
<description>讓Oozie引用Hadoop的配置文件“*=”不能刪</description>
</property>
9、在Mysql中創(chuàng)建Oozie的數(shù)據(jù)庫
[victor@node1 oozie]$ mysql -uroot -p000000
mysql> create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
10、初始化Oozie
1)上傳Oozie目錄下的yarn.tar.gz文件到HDFS
[victor@node1 oozie]$ bin/oozie-setup.sh sharelib create -fs \
hdfs://hadoop102:9000 -locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz
尖叫提示:yarn.tar.gz文件會自行解壓
命令的意思是把這個oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz 包 解壓出來,放到hdfs上面
以wordcount案例,oozie作為定時調(diào)度框架,必須先把w..t.jar上傳到hdfs,oozie才有能力去 調(diào)度它,放到本地是不行的
執(zhí)行成功之后,去50070檢查對應目錄有沒有文件生成。
/user/victor/share/lib/lib_20180208085236
2) 創(chuàng)建oozie.sql文件
[victor@node1 oozie]$ bin/oozie-setup.sh db create -run -sqlfile oozie.sql
操作的時候, mysql一定要有oozie這個數(shù)據(jù)庫
在oozie這個庫里面,創(chuàng)建了一系列的表
3) 打包項目,生成war包
[victor@node1 oozie]$ bin/oozie-setup.sh prepare-war
11、啟動Oozie服務
[victor@node1 oozie]$ bin/oozied.sh start
如需正常關(guān)閉Oozie服務,請使用
[victor@node1 oozie]$ bin/oozied.sh stop
12、訪問Oozie的Web頁面
看到的web頁面, 依賴ext-2.2.zip這個js框架
http://linux01:11000/oozie