我有2列象過程行分別在Oozie的
pkg1 date1
pkg2 date2
pkg3 date3
...
...
我想要創建一個工作流Oozie的將分別處理每行一個簡單的輸入文件。對於每一行,我想要一個接一個地運行多個Actions(Hive,Pig ..),然後處理另一行。 但它比我預期的更困難。我想,我必須以某種方式創建一個循環並遍歷它。
你能給我建築建議我怎麼能做到這一點?
我有2列象過程行分別在Oozie的
pkg1 date1
pkg2 date2
pkg3 date3
...
...
我想要創建一個工作流Oozie的將分別處理每行一個簡單的輸入文件。對於每一行,我想要一個接一個地運行多個Actions(Hive,Pig ..),然後處理另一行。 但它比我預期的更困難。我想,我必須以某種方式創建一個循環並遍歷它。
你能給我建築建議我怎麼能做到這一點?
Oozie的不支持循環/週期,因爲它是向非循環圖
https://oozie.apache.org/docs/3.3.0/WorkflowFunctionalSpec.html#a2.1_Cycles_in_Workflow_Definitions
此外,沒有內置的方式(即我所知道的)來讀取數據蜂房成Oozie工作流程,並用它來控制Oozie工作流程。
您可以使用一個Oozie工作流啓動一些自定義進程(例如Shell Action),並在該進程中讀取Hive中的數據,併爲每個條目啓動一個新的單獨的Oozie工作流。
我完全同意@Mattinbits,你必須使用一些程序代碼(shell腳本,Python等)來運行循環並啓動適當的Pig/Hive任務。
但如果您過程必須等待的任務啓動下一批次之前完成,協調部分可能會變得更加複雜一點來實現。我能想到的使用了Oozie進行的協調非常邪惡的方式...
當然還有一些其他的事情需要注意 - 爲子工作流操作,鏈接它們,處理錯誤生成唯一的名稱。通常的東西。