Apache 如何在不重新启动oozie作业的情况下重新加载oozie作业配置文件
我想知道是否有办法在不重新启动oozie作业(协调器)的情况下重新加载oozie作业的配置文件 因为协调器实际上运行了我们的许多任务,所以有时我们可能只需要更改作业配置文件的一行,然后进行更新,而不会干扰其他任务 非常感谢。不太好(您可以进入数据库表进行更改,但如果您使用嵌入式Derby DB,则可能需要关闭OOZIE,而且可能不可取)Apache 如何在不重新启动oozie作业的情况下重新加载oozie作业配置文件,apache,hadoop,hbase,hive,oozie,Apache,Hadoop,Hbase,Hive,Oozie,我想知道是否有办法在不重新启动oozie作业(协调器)的情况下重新加载oozie作业的配置文件 因为协调器实际上运行了我们的许多任务,所以有时我们可能只需要更改作业配置文件的一行,然后进行更新,而不会干扰其他任务 非常感谢。不太好(您可以进入数据库表进行更改,但如果您使用嵌入式Derby DB,则可能需要关闭OOZIE,而且可能不可取) 如果您需要经常更改配置,那么考虑将值向下推到启动的WorkFuff.xml文件中,您可以在协调器实例化之间更改该文件的内容。 您还可以(如果这是一次性更改)杀死
如果您需要经常更改配置,那么考虑将值向下推到启动的WorkFuff.xml文件中,您可以在协调器实例化之间更改该文件的内容。 您还可以(如果这是一次性更改)杀死正在运行的协调器,进行更改,然后重新启动协调器,修改启动时间,这样以前的实例就不会计划再次运行。
不太可能:-) 这是你能做的<action name="devices-location">
<shell xmlns="uri:oozie:shell-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<exec>hadoop</exec>
<argument>fs</argument>
<argument>-cat</argument>
<argument>/path/to/config/file.properties</argument>
<capture-output/>
</shell>
<ok to="report"/>
<error to="kill"/>
</action>
<action name="report">
<java>
...
<main-class>com.twitter.scalding.Tool</main-class>
<arg>--device-graph</arg>
<arg>${wf:actionData('devices-location')['path']}</arg>
<file>${scalding_jar}</file>
</java>
<ok to="end"/>
<error to="kill"/>
</action>
最新的oozie 4.1允许更新协调器定义。请参见一旦协调员开始运行,可以使用以下命令更新oozie coordinator的属性。在unix文件系统中更新属性文件,然后按如下方式提交 oozie作业-oozie-config job.properties-update coordinator\u job\u id
请注意,所有创建的协调器版本(包括处于等待状态的版本)仍将使用旧配置。新配置将在新版本的协调器具体化时应用于它们 我发现这个答案很有用。但我有一个问题,在您的方法中,如果在运行时要求可变的属性是jobTracker本身,该怎么办。shell操作是否仍会指向旧的jobTracker并失败。是否有任何方法使等待的工作流使用新配置?到目前为止,没有任何方法使等待的协调员使用新配置。处于等待状态的协调员完成运行后,可以使用下面的-refresh选项以更新的配置重新运行他们。重新运行协调器操作或多个操作示例:$oozie job-rerun[-refresh]
path=/some/path/to/data