oozie是一個開源的比較牛叉的工作流調度工具,尤其是在管理hadoop工作流程方面,類似於java的quartz。記得,我去年剛用hadoop的時候,把所有的工作流程都組織在shell中,雖然寫起來比較方便,但是不便於維護及管理,oozie的強大之處就在於他強大的工作流程管理方面,他提供了一個web管理工具,你可以非常直觀的通過一個網頁來管理和監視你的工作流程的配置、組織關係及運行情況。我在去年寫過一篇關於oozie安裝的一篇文章,當時介紹的oozie的版本是2.3.2,hadoop版本是0.20.2。現在由於業務原因升級了版本,畢竟之前的版本太老了,好多新版的hadoop工具都無法兼容,比如pig 0.12和hive 0.13版本。雖然,升級後的還是hadoop 1系列,但現在可以使用比較新的hadoop工具了。(ps:如hadoop由0.20.2升級到了1.2.1,pig由0.8升級到0.12,hive由0.7升級到0.13,sqoop由1.3.0升級到了1.4.4)。好了,廢話不說了,開始安裝吧!
一、在安裝oozie-3.3.2時,請確保你已經安裝瞭如下工具:
(1).jdk(1.6版本及以上)、
(2.)mysql數據庫(可選,如果不用指定數據庫默認使用oozie自帶的derby數據庫。當然其他的數據庫也可以,比如 postgresql)、
(3).maven(3.2版本及以上)、
(4). tomcat(可選,如不安裝默認使用oozie自帶的tomcat)、
(5).ext-2.2.zip(ExtJS是一種功能強大的ajax框架,具體介紹可以參考:http://blog.csdn.net/zhu_xun/article/details/18448061)
二、安裝
1.下載oozie
可以使用wget工具下載:wget http://archive.apache.org/dist/oozie/3.3.2/oozie-3.3.2.tar.gz。
ps:該文件就1M,下載很快的。
2.解壓
tar -zxvf oozie-3.3.2.tar.gz
3.用maven編譯該工程生成目標安裝包:
執行bin/mkdistro.sh
-DskipTests
ps:要加上-DskipTests跳過測試,否則會build failed
這個過程或許會很漫長,用過maven的朋友都有這個體會,在該過程中,需要不斷地從網絡下載大量的相關文件(jar),這個倒不要緊,也就一兩百兆,關鍵是在我國從老外的maven服務器下載東西是異常的慢啊。你可以吃個飯或打打遊戲,也許過3個小時就好了,也許。。。。
PS:最好晚上執行這個過程,如果你還是嫌時間太長,你可以從網上下載人家編譯好的安裝包(由於csdn上次文件大小限制,本人無法上傳,請諒解)。
如果過程順利的話,會在distro目錄下生成一個oozie-3.3.2-distro.tar.gz文件,這個文件及時我們最終需要的安裝包。
PS:你可以把之前的文件都刪掉了,有了oozie-3.3.2-distro.tar.gz就夠了。
4.解壓oozie-3.3.2-distro.tar.gz文件:
5.配置OOZIE_HOME環境變量
6.下載ExtJS並將該文件放在OOZIE_HOME/下:
cd $OOZIE_HOME;wget http://extjs.com/deploy/ext-2.2.zip
7.在OOZIE_HOME目錄下建立libext目錄並將hadoop相關的jar庫文件拷貝到libext下面,我使用的是Hadoop 1.2.1版本:
mkdir libext;
cp $HADOOP_HOME/hadoop-*.jar libext/;
cp $HADOOP_HOME/lib/*.jar ./libext/
8.生成war包:
bin/oozie-setup.sh -extjs ext-2.2.zip
執行成功後就會在$OOZIE_HOME/oozie-server/webapps目錄下生成oozie.war文件。
9.修改conf/oozie-site.xml配置文件:
10.如果不想使用oozie自帶的derby數據庫,而是使用自己指定的數據庫,可以繼續修改配置文件onf/oozie-site.xml,進行如下修改:
<property> <name>oozie.service.JPAService.jdbc.driver</name> <value>com.mysql.jdbc.Driver</value> <description> JDBC driver class. </description> </property> <property> <name>oozie.service.JPAService.jdbc.url</name> <value>jdbc:mysql://localhost:3306/oozie</value> <description> JDBC URL. </description> </property> <property> <name>oozie.service.JPAService.jdbc.username</name> <value>shirdrn</value> <description> DB user name. </description> </property> <property> <name>oozie.service.JPAService.jdbc.password</name> <value>0o21e</value> <description> DB user password. </description> </property>11.如果沒有安裝tomcat,oozie默認使用自帶的tomcat
12.修改hadoop配置文件,整合oozie和hadoop:
<!-- 因使用oozie,故添加如下配置-->
<property>
<name>hadoop.proxyuser.zhu.hosts</name> <!-- zhu表示運行oozie的用戶-->
<value>localhost</value>
</property>
<property>
<name>hadoop.proxyuser.zhu.groups</name>
<value>zhu</value> <!-- zhu表示zhu用戶所在的組(呵呵,組合用戶都是zhu)-->
</property>
13.啓動oozie:
oozied.sh start或者oozie-start.sh