2017-02-22 44 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对象中可用,如果需要进一步更改,可以在自定义操作中覆盖它。

相关问题