2017-02-22 45 views
1

我正在使用Oozie 4.1.0。我部署了一個自定義操作,它擴展了Java操作。現在我需要部署另一個版本除此之外。 XSD將是相同的,但操作代碼有變化。Oozie:同一個自定義java動作的多個版本

我會把更新後的動作放到一個自定義的包中,並且會對動作XSD進行版本化。我猜這個類型名稱也應該在自定義操作的構造函數中進行更改,因爲這需要是唯一的,就我所判斷的代碼而言。
但是那麼我怎樣才能引用我的工作流XML中使用新版本的相同操作名稱? 什麼是處理版本的推薦方式?

+0

不能完全理解它,但你需要有獨特的動作名稱和它們各自的*** ActionExecutor在oozie-site.xml中實現和配置 – YoungHobbit

+0

我想保留動作名稱(xml元素名稱)相同但能夠控制要執行的操作類的哪個版本。 – Bruckwald

回答

1

的措施來解決這個問題:

  • 每個人都應該部署的jar(行動)的新版本Oozie的
  • 新的XSD版本應該在 Oozie的被添加到Oozie的-site.xml中.service.SchemaService.wf.ext.schemas

在運行期間,可以更改與給定操作關聯的實際Oozie操作類。對於此集合oozie.launcher.action.main.class在全局配置部分workflow.xml。 這將在org.apache.oozie.action.hadoop.JavaActionExecutor#getLauncherMain 中的launcherConf對象中可用,如果需要進一步更改,可以在自定義操作中覆蓋它。

相關問題