从java中杀死Oozie工作流程

时间:2015-03-16 13:59:26

标签: java hadoop oozie oozie-coordinator

所以我一直在玩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");

杀死工作流程是否可以做类似的事情?

1 个答案:

答案 0 :(得分:1)

使用AuthOozieClient并设置系统用户。

OozieClient oc = new AuthOozieClient(OOZIE_URL);
System.setProperty("user.name", userName);
client.kill(jobId);
相关问题