【问题标题】:Killing an Oozie workflow from java从 java 中杀死一个 Oozie 工作流
【发布时间】:2015-03-16 13:59:25
【问题描述】:

所以我一直在使用 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]

我已经能够在 google 上找到一些相关问题,虽然我注意到的问题仅与命令行 oozie 客户端有关。

我的主要问题是,考虑到您可以作为另一个用户从 java 运行 Oozie 工作流,只需添加:

conf.setProperty("user.name", "user123");

是否有类似的事情可以通过终止工作流来完成?

【问题讨论】:

    标签: java hadoop oozie oozie-coordinator


    【解决方案1】:

    使用 AuthOozieClient 并设置系统用户。

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

    【讨论】:

    • 你能解决这个问题吗?我仍然遇到同样的异常。让我知道你是否能够解决同样的问题,如果是,代码更改是什么
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-03
    相关资源
    最近更新 更多