什么是Oozie?
Oozie是一種Java Web應用程序,它運行在Java servlet容器——即Tomcat——中,並使用數據庫來存儲以下內容:
- 工作流定義
- 當前運行的工作流實例,包括實例的狀態和變量
Oozie工作流是放置在控制依賴DAG(有向無環圖 Direct Acyclic Graph)中的一組動作(例如,Hadoop的Map/Reduce作業、Pig作業等),其中指定了動作執行的順序。我們會使用hPDL(一種XML流程定義語言)來描述這個圖。
修改HDFS配置:
修改hadoop core-site.xml,內容如下:
<property> <name>hadoop.proxyuser.[USER].hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.[USER].groups</name> <value>*</value> </property>其中,[USER]需要改為后面啟動oozie tomcat的用戶
不重啟hadoop集群,而使配置生效
hdfs dfsadmin -refreshSuperUserGroupsConfiguration yarn rmadmin -refreshSuperUserGroupsConfiguration
配置Oozie
(由於是在bs035上部署oozie,所以把下面的壓縮包拷貝到bs035上)
1) 取得壓縮包:
oozie-4.1.0/distro/target/oozie-4.1.0-distro.tar.gz
2) 解壓縮:
tar -zxf oozie-4.1.0-distro.tar.gz
oozie-4.1.0/distro/target/oozie-4.1.0-distro.tar.gz
2) 解壓縮:
tar -zxf oozie-4.1.0-distro.tar.gz
3)在oozie-4.2.0目錄下新建libext目錄,並把
ext-2.2.zip 拷貝到該目錄下;
並拷貝hadoop相關jar包到該目錄下
cp $HADOOP_HOME/share/hadoop/*/*.jar libext/
cp $HADOOP_HOME/share/hadoop/*/lib/*.jar libext/
把hadoop與tomcat沖突jar包去掉
mv servlet-api-2.5.jar servlet-api-2.5.jar.bak
mv jsp-api-2.1.jar jsp-api-2.1.jar.bak
mv jasper-compiler-5.5.23.jar jasper-compiler-5.5.23.jar.bak
mv jasper-runtime-5.5.23.jar jasper-runtime-5.5.23.jar.bak
拷貝mysql驅動到該目錄下(使用mysql數據庫,默認是derby)
scp mysql-connector-java-5.1.25-bin.jar node3:/usr/oozie/oozie-4.2.0/libext/
ext-2.2.zip 拷貝到該目錄下;
並拷貝hadoop相關jar包到該目錄下
cp $HADOOP_HOME/share/hadoop/*/*.jar libext/
cp $HADOOP_HOME/share/hadoop/*/lib/*.jar libext/
把hadoop與tomcat沖突jar包去掉
mv servlet-api-2.5.jar servlet-api-2.5.jar.bak
mv jsp-api-2.1.jar jsp-api-2.1.jar.bak
mv jasper-compiler-5.5.23.jar jasper-compiler-5.5.23.jar.bak
mv jasper-runtime-5.5.23.jar jasper-runtime-5.5.23.jar.bak
拷貝mysql驅動到該目錄下(使用mysql數據庫,默認是derby)
scp mysql-connector-java-5.1.25-bin.jar node3:/usr/oozie/oozie-4.2.0/libext/
4)配置數據庫連接,文件是conf/oozie-site.xml
<property> <name>oozie.service.JPAService.create.db.schema</name> <value>true</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://bs035.zx.nicx.cn:3306/oozie?createDatabaseIfNotExist=true</value> </property> <property> <name>oozie.service.JPAService.jdbc.username</name> <value>hive</value> </property> <property> <name>oozie.service.JPAService.jdbc.password</name> <value>hive</value> </property> <property> <name>oozie.service.HadoopAccessorService.hadoop.configurations</name> <value>*=/home/manual/module/hadoop-2.6.0-cdh5.4.0/etc/hadoop</value> </property>
最后一個配置,是需要配置的,不然后面運行調度的時候,任務會報File /user/root/share/lib does not exist 的錯誤
5)啟動前的初始化
a. 打war包
bin/oozie-setup.sh prepare-war
bin/oozie-setup.sh prepare-war
b. 初始化數據庫
bin/ooziedb.sh create -sqlfile oozie.sql -run
c. 修改oozie-4.2.0/oozie-server/conf/server.xml文件,注釋掉下面的記錄
<!--<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />-->
d. 上傳jar包
bin/oozie-setup.sh sharelib create -fs hdfs://bs035.zx.nicx.cn:8020 -locallib oozie-sharelib-4.1.0-cdh5.4.0-yarn.tar.gz
bin/oozie-setup.sh sharelib create -fs hdfs://bs035.zx.nicx.cn:8020 -locallib oozie-sharelib-4.1.0-cdh5.4.0.tar.gz
啟動
bin/oozied.sh start
【轉自】http://www.open-open.com/lib/view/open1453606606995.html
更進一步的介紹,見上述網站。