所以我一直在玩 Oozie java api,一切都很好而且很花哨,直到我遇到了以下问题。在尝试运行以下 java 代码时:
OozieClient oc = new OozieClient(OOZIE_URL);
Properties conf = oc.createConfiguration();
conf.setProperty(OozieClient.APP_PATH, PATH_TO_WF);
String jobId = oc.run(conf);
while(oc.getJobInfo(jobId).getStatus() == WorkflowJob.Status.PREP){
Thread.sleep(1000);
}
oc.kill(jobId);
这失败了,但有以下例外:
E0508: User [?] not authorized for WF job [JOB_ID_GOES_HERE]
我已经能够在谷歌上找到一些相关的问题,尽管我注意到的问题只与命令行 oozie 客户端有关。
我的主要问题是,考虑到您可以作为另一个用户从 java 运行 Oozie 工作流,只需添加:
conf.setProperty("user.name", "user123");
是否有类似的事情可以通过终止工作流来完成?