資源:
安裝包+ 依賴jar包等:
鏈接:https://pan.baidu.com/s/1yT_vCRan2KyflcK06vrscA
提取碼:ybxo
1. 修改hadoop相關配置
1.1. 配置httpfs服務
修改hadoop的配置文件 core-site.xml
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
hadoop.proxyuser.root.hosts
允許通過httpfs方式訪問hdfs的主機名、域名;
hadoop.proxyuser.root.groups
允許訪問的客戶端的用戶組
1.2. 配置jobhistory服務
修改hadoop的配置文件mapred-site.xml
<property>
<name>mapreduce.jobhistory.address</name>
<value>node-1:10020</value>
<description>MapReduce JobHistory Server IPC host:port</description>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node-1:19888</value>
<description>MapReduce JobHistory Server Web UI host:port</description>
</property>
<!-- 配置運行過的日誌存放在hdfs上的存放路徑 -->
<property>
<name>mapreduce.jobhistory.done-dir</name>
<value>/export/data/history/done</value>
</property>
<!-- 配置正在運行中的日誌在hdfs上的存放路徑 -->
<property>
<name>mapreduce.jobhistory.intermediate-done-dir</name>
<value>/export/data/history/done_intermediate</value>
</property>
啓動history-server
mr-jobhistory-daemon.sh start historyserver
停止history-server
mr-jobhistory-daemon.sh stop historyserver
通過瀏覽器訪問Hadoop Jobhistory的WEBUI
http://node01:19888
如果之前配置過忽略!!!
1.3. 重啓Hadoop集羣相關服務
2. 上傳oozie的安裝包並解壓
oozie的安裝包上傳到/export/softwares
tar -zxvf oozie-4.1.0-cdh5.14.0.tar.gz -C /export/servers/
mv oozie-4.1.0-cdh5.14.0/ oozie4.1.0
解壓hadooplibs到與oozie平行的目錄
cd /export/servers/oozie4.1.0/
tar -zxvf oozie-hadooplibs-4.1.0-cdh5.14.0.tar.gz -C /export/servers/
3. 添加相關依賴
cd /export/servers/oozie4.1.0/
mkdir -p libext
拷貝hadoop依賴包到libext
cp -ra /export/servers/oozie-4.1.0-cdh5.14.0/hadooplibs/hadooplib-2.6.0-cdh5.14.0.oozie-4.1.0-cdh5.14.0/* /export/servers/oozie4.1.0/libext/
上傳mysql的驅動包到libext:
mysql-connector-java-5.1.32.jar
添加ext-2.2.zip壓縮包到libext:
ext-2.2.zip
4. 修改oozie-site.xml
/export/servers/oozie4.1.0/conf
vim oozie-site.xml
oozie默認使用的是UTC的時區,需要在oozie-site.xml當中配置時區爲GMT+0800時區,具體如下:
<property>
<name>oozie.processing.timezone</name>
<value>GMT+0800</value>
</property>
具體內容爲:
<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: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.coord.check.maximum.frequency</name>
<value>false</value>
</property>
<property>
<name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
<value>*=/export/servers/hadoop-2.7.5/etc/hadoop</value>
</property>
5. 初始化mysql相關信息
上傳oozie的解壓後目錄的下的yarn.tar.gz到hdfs目錄
cd /export/servers/oozie4.1.0
bin/oozie-setup.sh sharelib create -fs hdfs://node01:8020 -locallib oozie-sharelib-4.1.0-cdh5.14.0-yarn.tar.gz
本質上就是將這些jar包解壓到了hdfs上面的路徑下面去:
創建mysql數據庫
mysql -uroot -p
執行:
create database oozie;
初始化創建oozie的數據庫表:
cd /export/servers/oozie4.1.0
bin/oozie-setup.sh db create -run -sqlfile oozie.sql
[root@node01 oozie4.1.0]# bin/oozie-setup.sh db create -run -sqlfile oozie.sql
setting CATALINA_OPTS="$CATALINA_OPTS -Xmx1024m"
Validate DB Connection
DONE
Check DB schema does not exist
DONE
Check OOZIE_SYS table does not exist
DONE
Create SQL schema
DONE
Create OOZIE_SYS table
DONE
Oozie DB has been created for Oozie version '4.1.0-cdh5.14.0'
6. 打包項目,生成war包
cd /export/servers/oozie4.1.0
bin/oozie-setup.sh prepare-war
7. 配置oozie環境變量
vim /etc/profile
添加:
export OOZIE_HOME=/export/servers/oozie4.1.0
export OOZIE_URL=http://node01.hadoop.com:11000/oozie
export PATH=$PATH:$OOZIE_HOME/bin
刷新配置文件:
source /etc/profile
8. 啓動關閉oozie服務
啓動命令
cd /export/servers/oozie4.1.0
bin/oozied.sh start
關閉命令
bin/oozied.sh stop
啓動的時候產生的 pid文件,如果是kill方式關閉進程 則需要刪除該文件重新啓動,否則再次啓動會報錯。
9. 瀏覽器web UI頁面
http://node01:11000/oozie/
10. 解決oozie頁面時區顯示異常
頁面訪問的時候,發現oozie使用的還是GMT的時區,與我們現在的時區相差一定的時間,所以需要調整一個js的獲取時區的方法,將其改成我們現在的時區。
修改js當中的時區問題
cd /export/servers/oozie4.1.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/oozie4.1.0
bin/oozied.sh stop
bin/oozied.sh start