Oozie:同一自定义java操作的多个版本

Oozie:同一自定义java操作的多个版本,java,hadoop,oozie,Java,Hadoop,Oozie,我正在使用Oozie 4.1.0。我部署了一个自定义操作,它扩展了Java操作。现在我需要部署除此之外的另一个版本。XSD将是相同的,但操作代码中有更改 我将更新的操作放入一个定制包中,并将操作版本设置为XSD。我想在自定义操作的构造函数中也应该更改类型名,因为根据我对代码的判断,这需要是唯一的 但是,如何在使用新版本的工作流XML中引用相同的操作名称呢? 处理版本的建议方法是什么?解决此问题的步骤: 应该将新版本的jar(操作)部署到Oozie 新的XSD版本应添加到下的oozie-site

我正在使用Oozie 4.1.0。我部署了一个自定义操作,它扩展了Java操作。现在我需要部署除此之外的另一个版本。XSD将是相同的,但操作代码中有更改

我将更新的操作放入一个定制包中,并将操作版本设置为XSD。我想在自定义操作的构造函数中也应该更改类型名,因为根据我对代码的判断,这需要是唯一的
但是,如何在使用新版本的工作流XML中引用相同的操作名称呢?
处理版本的建议方法是什么?

解决此问题的步骤:

  • 应该将新版本的jar(操作)部署到Oozie
  • 新的XSD版本应添加到下的oozie-site.xml中 oozie.service.SchemaService.wf.ext.schemas
在运行时,可以更改与给定操作关联的实际Oozie操作类。对于workflow.xml中全局配置部分中的此集合oozie.launcher.action.main.class。 这将在
org.apache.oozie.action.hadoop.JavaActionExecutor#getLauncherMain

如果需要进一步更改,可以在自定义操作中覆盖它。

无法完全理解它,但您需要在oozie站点中实现和配置唯一的操作名称及其各自的***ActionExecutor。xmlI希望保留操作名称(xml元素名称)相同,但可以控制要执行的action类的版本。