0 關於oozie 尋找包尋找位置原則:html
oozie在運行的時候 只會去兩個地方尋找本身須要的lib 1 回去當前提交任務的workflow所在的hdfs目錄下的lib下尋找 eg: /user/root/examples/apps/fork-merge的workflow下有 job.properties lib workflow.xml三個目錄 會去lib目錄下找對應jar 2 若是是shell命令提交的話,他會主動去本身的公共資源庫中尋找本身須要的jar文件,公共資源庫爲 /user/root/share/lib/lib_20150128185329 其中共享庫裏面存放的是oozie 常見action須要的包 好比hive hive2 pig sqoop oozie hcatalog distcp等 若是是java客戶端提交任務的話,須要設置oozie.libpath(此時此路徑下能夠存放你工程須要的別的jar包而不須要存放在共享庫中 防止混淆) properties.setProperty("oozie.use.system.libpath","true"); ---> 設置使用oozie共享庫 properties.setProperty("oozie.libpath","hdfs://master:9000/user/hdfs/examples/thirdlib"); ---> 設置存放工程使用的第三方的jar 3 上面2是針對java代碼寫法,若是對應到job.properties寫法爲: nameNode=hdfs://master:9000 jobTracker=master:8032 queueName=default examplesRoot=examples oozie.use.system.libpath=true oozie.libpath=hdfs://master:9000/user/hdfs/examples/thirdlib oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/apps/sqoop-sqlserver-to-hdfs
1 關於oozie使用調用sqoop action執行數據導出導入時對應的jar包:java
1.1 須要將 mysql/sqlserver/oracle等主流數據庫的驅動包放在oozie的共享庫對應hdfs目錄下 eg:node
hdfs://master:9000/user/root/share/lib/lib_20141031094140/sqoop下mysql
1.2 將 oozie-sharelib-sqoop-4.0.0-cdh5.1.0.jar sqoop-1.4.4-cdh5.1.0.jar也放在上述目錄中web
2 hadoop運行時內存不足或者其餘緣由內存引發的錯誤sql
修改hadoop的配置文件 mapred-site.xml 增長以下內容 <property> <name>mapred.child.java.opts</name> <value>-Xmx4096m</value> </property> <property> <name>mapred.map.child.java.opts</name> <value>-Xmx4096m</value> </property> <property> <name>mapred.reduce.child.java.opts</name> <value>-Xmx4096m</value> </property> 或者增長map的數量
3 關於oozie安裝時數據庫有問題的:shell
因爲oozie錯誤或者其餘緣由形成的oozie安裝失敗,第二次安裝若是採用默認值可能會失敗:eg 數據庫初始化失敗錯誤,
處理方式: 刪除上一次默認的oozie數據文件data文件夾或者修改默認的值使得安裝指向別的地方。數據庫
4 oozie提交任務時,job.properties文件的namenode屬性值不建議寫IP 建議寫主機名apache
5 關於oozie分支的:api
oozie的節點分爲 動做節點(action) 和控制節點(好比 start end fork merge) 其中控制節點下目前只能夠放動做節點 分支節點下不支持在存放分支節點(即分支套分支的寫法) 案例來自官網: http://oozie.apache.org/docs/4.0.0/WorkflowFunctionalSpec.html#a3.1.5_Fork_and_Join_Control_Nodes <workflow-app name="sample-wf" xmlns="uri:oozie:workflow:0.1"> ... <fork name="forking"> <path start="firstparalleljob"/> <path start="secondparalleljob"/> </fork> <action name="firstparallejob"> <map-reduce> <job-tracker>foo:8021</job-tracker> <name-node>bar:8020</name-node> <job-xml>job1.xml</job-xml> </map-reduce> <ok to="joining"/> <error to="kill"/> </action> <action name="secondparalleljob"> <map-reduce> <job-tracker>foo:8021</job-tracker> <name-node>bar:8020</name-node> <job-xml>job2.xml</job-xml> </map-reduce> <ok to="joining"/> <error to="kill"/> </action> <join name="joining" to="nextaction"/> ... </workflow-app>
6 關於oozie 對應mysql數據庫下表的說明:
7 關於oozie webservice api的部分說明:
其他問題後續須要跟進的: 須要等到7月份
a) 關於oozie流程設計圖設計方面的技巧 規則 建議
b) 關於oozie 用戶的,尤爲是oozie在 cm版本上的用戶 什麼oozie用戶 root用戶 等等
在cm上oozie用的是哪一個帳號提交任務 白名單等
c) oozie提怎麼提交任務給mr的,oozie是否有一些參數來規定提交到mr後 mr任務的啓動的任務數,
佔有資源等