編譯oozie-4.1.0之中遇到的問題彙總
阿新 • • 發佈:2019-01-24
背景
2016年4月的第三週,我一直在調查Falcon這個資料管理平臺,但卻在調查的過程中發現,當自己在Firefox中輸入http://localhost:15443/public後,在接下來的設定中,需要用到Oozie。鑑於之前編譯falcon的經驗來看,還是自行編譯Oozie原始碼為好。為此,就遇到了各種各樣曾經困擾自己的問題,現在問題解決了,為了梳理自己過去一週自己的思路,打算將遇到的問題一一記錄下來,以備以後遇到類似的問題,優化思路,提高解決問題的效率。Apache Oozie
Oozie是什麼,這個我現在也敢說百分之百的理解。但根據自己在設定Falcon以及最後在Oozie web介面看到的資訊來看,Oozie是一個根據時間來排程作業的一個workflow引擎。 可以看看Oozie在falcon框架中的位置就一目瞭然了。遇到的問題
問題1編譯Oozie中,遇到最大的,也是最耗時的問題,就是codehaus repository這個資料倉無法下載的問題,或者說原始碼pom.xml檔案中指定的URL不穩定,中途一次是可以下載的,但之後就不行了。
分析
- 第一次使用maven,對裡面一些的實際應用不是很清楚,當發生上面的問題後,質疑是網速的問題導致的,僥倖的以為多試幾次應該是可以解決的。導致浪費了大量的時間,也沒有最終解決問題。
- 質疑是Oozie的一個BUG,查看了Oozie buglist中,也有人提及到這個問題,但最終確認不是,而是指定的資料倉庫不穩定或者是無法訪問之類的。
- 排除了這些後,跟JC組的人聊怎麼提高虛擬機器的網速的問題時,想到了可以試試去找找有沒有對應的備用的資料倉庫,這下才找到解決方案了。
<repositories> <repository> <id>Codehaus repository</id> <name>codehaus-mule-repo</name> <url>https://repository-master.mulesoft.org/nexus/content/groups/public/ </url> <layout>default</layout> </repository> </repositories>
如果你是使用Oozie的原始碼直接編譯的話,直接換成上面的URL地址。 如果你是使用Falcon中package.sh一起來編譯falcon和Oozie的話,只需要在~/.m2/settings.xml只追加上面的內容即可。 問題2
當編譯成功後,由於急於求成,沒有仔細的閱讀Oozie官網上關於啟動Oozie的教程,導致發生了Web console is disabled問題。再者,在使用bin/oozie-setup.sh prepare-war libext/命令的時候,忽視了console中輸出的一條[INFO]EXTJS is disabled的資訊,以為只是一條INFO,連個WARN都不是,應該不影響應用,但坑還是自己要踩的。最終在firefox裡輸入http://localhost:11000/oozie後,就出現了Web console is disabled的資訊。
分析
- 自己對問題的認識不足,web extjs只是當需要使用web介面的時候,才會影響web介面的顯示,因為缺少相應的js檔案,但對Ooize在linux下使用命令來執行是絲毫沒有影響的。
- 登入http://localhost:11000/oozie後,發現web介面不能正確顯示,檢視oozie官網,最終發現【If using the ExtJS library copy the ZIP file to the libext/ directory.】,本來看到這句話,應該就直接可以解決問題了,但又參考了一下網上其他的資訊,將下載的ext-2.3.zip檔案直接解壓,將解壓後的檔案拷貝到了libext,折騰了好久。還是沒有解決問題
- 對指令碼oozie-setup.sh沒有仔細的閱讀,順帶吐槽一下,Oozie官網以及oozie的原始碼READ.txt中都沒有提及,oozie-setup.sh中硬編碼了ext的版本號,直接指定了ext-2.2.zip,導致自己最後即使將ext-2.3.0.zip檔案拷貝過去後,也沒有直接解決。【其實最後反思,製藥將shell中的ext指定為ext-2.3.o.zip,應該也是可以解決的】
- 下載ext-2.2.zip,將其拷貝紙libext/下,執行。bin/oozie-setup.sh prepare-war -d libext/,然後執行./bin/oozied.sh run以demon形式啟動Oozie服務。
- 如果已經下載ext-2.3.0.zip的話,只需將oozie-setup.sh中ext的版本換成自己現有的,然後的操作跟接下來1中 一樣。