簡體   English   中英

Oozie觸發MapReduce主類

[英]Oozie to Trigger a MapReduce Main Class

我希望o調用我的ExampleDecision.java,而不是在oozie工作流xml中設置作業驅動程序配置(例如Inputformat映射器類等)。 ExampleDecision主要方法將負責作業設置和配置。 怎么做 ?

OOZIE_COOK_BOOK中的 II-Java-Main Action決策節點圖將等於java ExampleDecision <strings...>並將該作業作為普通的Java作業提交

要么

它等於Hadoop jar SomeJar.ExampleDecision <strings...>

是的,您可以很好地使用Java創建map / reduce代碼,在該代碼中,主類照常配置作業和作業分配。

然后,您可以在Oozie工作流程中使用java action標簽來調用Jar中的Main類。

在這里,Main類將分派map / reduce作業,這與使用map-reduce標記的方法相同。

您必須聲明的主要考慮因素是,您應該僅使用Main類中的job.waitForCompletion(true)語句來分派作業。

這樣做的重要原因是將Oozie執行保留在Java動作節點上,直到Main類調度的map / reduce作業完成為止。

編輯:-

調用hadoop jarjava jar之間的區別是

  • hadoop命令將為Mapreduce作業執行事先安排一些env屬性,例如JAVA_HOME,HADOOP_HOME,HADOOP_OPTS等。通常,您可能已經在環境變量中定義了,這在使用java命令執行時不會造成任何問題。

  • 當您使用java動作通過Oozie工作流調用mapreduce作業時,Oozie將無法收集有關已調度mapreduce作業的統計信息,因為實際的mr作業將從為java action調度的容器中產生。

因此,由Oozie執行的Java action node將在單獨的容器(MapTask)中運行,該容器只是准備作業並等待作業完成的Driver類,屆時Oozie工作流也將等待獲取java action MapTask完成。 您將可以通過Oozie -info命令查看生成的mapreduce作業的作業ID。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM