1. 解壓 tar -zxvf oozie-4.0.0-cdh5.3.6.tar.gz
2.配置hadoop的集群,添加一個代理用戶(給oozie運行mapreduce的權限)
在hadoop的core-site.xml配置文件中添加 (要在hadoop啟動之前添加) root 可以改成 當前操作系統的用戶 eg:beifeng
1 <!-- OOZIE 添加代理--> 2 <property> 3 <!-- OOZIE 的啟動用戶--> 4 <name>hadoop.proxyuser.root.hosts</name> 5 <!-- OOZIE 所在的主機--> 6 <value>hadoop</value> 7 </property> 8 <property> 9 <!-- OOZIE 用戶的組--> 10 <name>hadoop.proxyuser.root.groups</name> 11 <value>*</value> 12 </property>
配置 oozie 的配置文件 oozie-site.xml
3.解壓 oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz
多了一個文件
jar包存放位置 /opt/cdh-5.3.6/oozie-4.0.0-cdh5.3.6/oozie-4.0.0-cdh5.3.6/hadooplibs/hadooplib-2.5.0-cdh5.3.6.oozie-4.0.0-cdh5.3.6
4:拷貝jar至 libxt目錄下
5:把ext.zip拷貝到剛創建的libxt目錄下
6:運行oozie-setup.sh腳本的所有組件配置Oozie添加到libext /目錄。
語法:
1 $ bin/oozie-setup.sh prepare-war [-d directory] [-secure] 2 sharelib create -fs <FS_URI> [-locallib <PATH>] 3 sharelib upgrade -fs <FS_URI> [-locallib <PATH>] 4 db create|upgrade|postupgrad -run [-sqlfile <FILE>]
將jar包導成war包
1 bin/oozie-setup.sh prepare-war -d /opt/cdh-5.3.6/oozie-4.0.0-cdh5.3.6/libxt
7:啟動hadoop 創建一個hdfs目錄oozie共享包 /user/root/share/lib/lib_20171214123146
1 bin/oozie-setup.sh sharelib create -fs hdfs://hadoop -locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz
(ps:如果已經存在直接使用upgrade更新最新的lib bin/oozie-setup.sh sharelib upgrade -fs hdfs://hadoop -locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz)
8:創建數據庫
1 bin/ooziedb.sh create -sqlfile oozie.sql -run DB Connection
9:啟動oozie
1 *在控制台啟動 2 bin/oozied.sh run 3 *在后台啟動 4 bin/oozied.sh start | stop
多了一個
10:oozie的日志目錄
1 more /opt/cdh-5.3.6/oozie-4.0.0-cdh5.3.6/logs/oozie.log
補充一下 more的用法
11:訪問 web端 http://hadoop:11000/oozie/
12:運行 example application
1) 解壓
oozie-examples.tar.gz
1 tar -zxf oozie-examples.tar.gz
2) 上傳examples至hdfs用戶主目錄下
1 /opt/cdh-5.3.6/hadoop-2.5.0-cdh5.3.6/bin/hadoop dfs -put examples examples
注意:這里本地的/cdh-5.3.6/oozie-4.0.0-cdh5.3.6/examples/apps/*里面的文件發生變化不用同步到hdfs的文件中
3) 修改job.properties
oozie-4.0.0-cdh5.3.6/examples/apps/map-reduce/job.properties
1 #jobTracker=hadoop:8032 yrc是resourcemanager的ha cluster-id 2 jobTracker=yrc 3 # 隊列 yarn的資源是按隊列分配的 4 queueName=default 5 examplesRoot=examples 6 7 #定義一個workflow工作流的路徑,一個路徑下只能有一個workflow.xml 8 oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/apps/map-reduce/workflow.xml 9 outputDir=map-reduce
4)運行job
###方法一 直接使用-oozie http://localhost:11000/oozie
1 bin/oozie job -oozie http://localhost:11000/oozie -config examples/apps/map-reduce/job.properties -run
###方法二 配置環境變量
1 export OOZIE_URL=http://localhost:11000/oozie 2 bin/oozie job -config examples/apps/map-reduce/job.properties -run
出現兩個任務的原因是 oozie本身就是一個MapReduce 它又運行了一個MapReduce程序所以會有兩個任務
也可以在命令行查看結果
1 bin/oozie job --oozie http://localhost:11000/oozie -config examples/apps/map-reduce/job.properties -info 0000000-170205191208965-oozie-chk-W
這個博客里面詳細的介紹了 oozie運行時的一些錯誤場景以及解決方案
1 http://blog.csdn.net/wiborgite/article/details/78585689
(4)oozie本身是一個MapReduce程序,僅僅只有Map Task。
針對不同類型的任務,workflow,模板
(5)workflow action nodes
*actions可以計算處理,運行在框架(遠程)
*actions是異步的
*actions有兩個狀態:要么成功(ok)要么失敗(error)
*actions可以自動恢復
(6)如何定義一個WorkFlow
* job.properties
關鍵點:指向workflow.xml文件所在的HDFS位置
* workflow.xml
定義文件
XML文件
包含幾點
* start
* action
MapReduce、Hive、Sqoop、Shell
* ok
* error
* kill
* end
* lib 目錄
依賴的jar包
workflow.xml編寫:
* 流程控制節點
* Action節點
注意:節點名稱必需復合 [a-zA-Z][\-_a-zA-Z0-0]* ,最大20個字符