Oozie:同一自定义 java 操作的多个版本
Oozie: multiple versions of the same custom java action
我正在使用 Oozie 4.1.0。我已经部署了一个扩展 Java 操作的 自定义操作 。现在我需要部署另一个版本 除了这个。 XSD 与 相同 但操作代码有所变化。
我会将更新后的操作放入自定义包中,并对操作进行版本化 XSD。我想在自定义操作的构造函数中也应该更改类型名称,因为根据我对代码的判断,这需要是唯一的。
但是,我如何在使用新版本的工作流程 XML 中引用相同的操作名称?
处理版本的推荐方法是什么?
解决此问题的步骤:
- 应该将新版本的 jar(操作)部署到 Oozie
- 新的XSD版本应该添加到oozie-site.xml下
oozie.service.SchemaService.wf.ext.schemas
在运行时,可以更改与给定操作关联的实际 Oozie 操作 class。为此,在 workflow.xml 的全局配置部分中设置 oozie.launcher.action.main.class。
这将在 org.apache.oozie.action.hadoop.JavaActionExecutor#getLauncherMain
的 launcherConf 对象中可用
如果需要进一步更改,可以在自定义操作中覆盖它。
我正在使用 Oozie 4.1.0。我已经部署了一个扩展 Java 操作的 自定义操作 。现在我需要部署另一个版本 除了这个。 XSD 与 相同 但操作代码有所变化。
我会将更新后的操作放入自定义包中,并对操作进行版本化 XSD。我想在自定义操作的构造函数中也应该更改类型名称,因为根据我对代码的判断,这需要是唯一的。
但是,我如何在使用新版本的工作流程 XML 中引用相同的操作名称?
处理版本的推荐方法是什么?
解决此问题的步骤:
- 应该将新版本的 jar(操作)部署到 Oozie
- 新的XSD版本应该添加到oozie-site.xml下 oozie.service.SchemaService.wf.ext.schemas
在运行时,可以更改与给定操作关联的实际 Oozie 操作 class。为此,在 workflow.xml 的全局配置部分中设置 oozie.launcher.action.main.class。
这将在 org.apache.oozie.action.hadoop.JavaActionExecutor#getLauncherMain
的 launcherConf 对象中可用
如果需要进一步更改,可以在自定义操作中覆盖它。