oozie初學習

oozie:工作流調度工具

Oozie是一個基於工作流引擎的服務器,可以在上面運行Hadoop的Map Reduce和Pig任務。它其實就是一個運行在Java Servlet容器(比如Tomcat)中的Javas Web應用。

對於Oozie來說,工作流就是一系列的操作(比如Hadoop的MR,以及Pig的任務),這些操作通過有向無環圖的機制控制。這種控制依賴是說,一個操作的輸入依賴於前一個任務的輸出,只有前一個操作完全完成後,才能開始第二個。

Oozie工作流通過hPDL定義(hPDL是一種XML的流程定義語言)。工作流操作通過遠程系統啓動任務。當任務完成後,遠程系統會進行回調來通知任務已經結束,然後再開始下一個操作。

簡單來說,oozie的功能就是按照某一順序執行一些列操作

如:先執行hive進行數據分析,然後將結果通過sqoop傳到mysql。這兩部可以通過一個workflow實現,即工作流。

oozie的功能

  • Workflow:順序執行流程節點,支持fork(分支多個節點),join(合併多個節點爲一個)
  • Coordinator:定時觸發workflow;
  • Bundle Job:綁定多個Coordinator。


                Workflow示例圖:


   Coordinator示例圖:

   Bundle示例圖:



oozie的配置(這裏我使用的是oozie-4.1.0-cdh5.5.0版本)

需要準備的環境:
linux
java1.6+
hadoop2
extjs2.2(這個是oozie在瀏覽器顯示所需要的)

1、修改hadoop配置文件中的core-site.xml(修改後hadoop需要重啓)
  <!-- OOZIE -->
  <property>
    <name>hadoop.proxyuser.用戶名.hosts</name>
    <value>主機名</value>
  </property>
  <property>
    <name>hadoop.proxyuser.用戶名.groups</name>
    <value>*</value>
  </property>
2、在oozie的配置文件oozie-site.xml中配置hadoop的配置文件路徑
<property>  
    <name>oozie.service.HadoopAccessorService.hadoop.configurations</name>  
    <value>*=$HADOOP_HOME/etc/hadoop</value>  
</property>
3、在oozie目錄下解壓一個hadooplib的tar包,生成了oozie-4.1.0-cdh5.5.0/hadooplibs文件夾,其中有兩個文件夾,一個是第一代的mapreduce,另一個是yarn的,這裏我們只使用yarn的。
4、創建一個 libext目錄,將上一步yarn的包下的所有jar包複製到該目錄下,extjs2.2的zip壓縮包也放到該目錄下
5、打包(在oozie-server/webapps下生成一個oozie.war包)
bin/oozie-setup.sh prepare-war
6、上傳一個共享的包到HDFS中(會在hdfs的對應用戶目錄下生成一個share文件夾,裏面存放很多jar包,供後續一些程序使用)
bin/oozie-setup.sh sharelib create -fs hdfs://你的主機名(IP):端口號 -locallib sharelib的yarn的tar包
7、創建數據庫
bin/ooziedb.sh create -sqlfile oozie.sql -run DB Connection
8、現在就可以啓動了
bin/oozie-start.sh

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章