Oozie--安裝部署

韓家小志發表於2021-01-04

1、上傳解壓

  • 以第一臺機器為例
  • 使用filezila或者SecureFx或者XFTP來上傳
    在這裡插入圖片描述
cd /export/software/
tar -zxvf oozie-4.1.0-cdh5.14.0.tar.gz -C /export/servers/

2、配置Hadoop代理使用者

  • 在Hue階段已配置過不需要配置:oozie需要排程Hadoop,依賴於YARN,所以需要配置代理
  • 在工作中每個框架有自己的使用者來負責管理,大資料的所使用者屬於同一個使用者組
<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>

3、重啟Hadoop叢集

start-dfs.sh
mr-jobhistory-daemon.sh start historyserver
start-yarn.sh

4、解壓lib包

cd /export/servers/oozie-4.1.0-cdh5.14.0
tar -zxvf oozie-hadooplibs-4.1.0-cdh5.14.0.tar.gz -C ../

5、引入extjs

cd /export/servers/oozie-4.1.0-cdh5.14.0
mkdir -p libext
#將hadoop程式的依賴包放入oozie的依賴目錄
cp -ra hadooplibs/hadooplib-2.6.0-cdh5.14.0.oozie-4.1.0-cdh5.14.0/* libext/
#將mysql的連線驅動包放入oozie的依賴目錄,後面oozie的後設資料要儲存在MySQL
cp /export/servers/hive-1.1.0-cdh5.14.0/lib/mysql-connector-java-5.1.38.jar libext/
#將extjs的包放入oozie的依賴目錄,用於構建oozie的web頁面
cp /export/software/ext-2.2.zip libext/

6、修改oozie配置檔案

  • 修改conf/oozie-site.xml
<!--配置Oozie的後設資料儲存為MySQL-->
<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://node-03: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>
<!--配置Oozie的時區-->
<property>
    <name>oozie.processing.timezone</name>
    <value>GMT+0800</value>
</property>
<!--配置Oozie的最小排程頻率是否低於5分鐘-->
<property>
    <name>oozie.service.coord.check.maximum.frequency</name>
    <value>false</value>
</property> 
<!--配置與Hadoop的關聯--> 
<property>
    <name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
    <value>*=/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop</value>
</property>
<!--配置oozie的代理使用者--> 
<property>
    <name>oozie.service.ProxyUserService.proxyuser.root.hosts</name>
    <value>*</value>
</property>
<property>
    <name>oozie.service.ProxyUserService.proxyuser.root.groups</name>
    <value>*</value>
</property>

7、建立oozie後設資料庫

  • 第三臺機器MySQL中執行
mysql -uroot -p
create database oozie;

8、初始化oozie

  • 將Oozie需要用到的所有jar包放在HDFS上
cd /export/servers/oozie-4.1.0-cdh5.14.0
#將oozie執行時需要用到的jar包上傳到hdfs上
bin/oozie-setup.sh  sharelib create -fs hdfs://node-01:8020 -locallib oozie-sharelib-4.1.0-cdh5.14.0-yarn.tar.gz
#初始化oozie的後設資料儲存
bin/oozie-setup.sh  db create -run -sqlfile oozie.sql

為什麼要將oozie的這些jar包放到hdfs上?

  • oozie是將工作流變成一個 MapReduce程式執行,具體執行在哪一臺機器,由YARN決定,這是隨機的
  • 執行工作流時需要用到各種各樣 的jar包,當前這些jar包只在第一臺機器有
  • oozie的解決方案:
    • 將所有需要用到的jar包,放到HDFS上,工作流執行時從hdfs上讀取jar包,不用從某臺機器上讀

9、生成web專案

cd /export/servers/oozie-4.1.0-cdh5.14.0
bin/oozie-setup.sh  prepare-war

10、配置環境變數

vim /etc/profile
​
export OOZIE_HOME=/export/servers/oozie-4.1.0-cdh5.14.0
export OOZIE_URL=http://node-01:11000/oozie
export PATH=$PATH:$OOZIE_HOME/bin
​
source /etc/profile

11、Oozie的啟動與關閉

  • 啟動
cd /export/servers/oozie-4.1.0-cdh5.14.0
bin/oozied.sh start 
  • web介面
http://node-01:11000
  • 關閉
bin/oozied.sh stop

12、修改介面預設時區

cd /export/servers/oozie-4.1.0-cdh5.14.0/oozie-server/webapps/oozie
vim oozie-console.js

#修改179行:
return Ext.state.Manager.get("TimezoneId","GMT+0800");
#修改2635行
var currentTimezone = Ext.state.Manager.get("TimezoneId","GMT+0800");