gpt4 book ai didi

java - 使用 java 代码运行 oozie 工作流

转载 作者:可可西里 更新时间:2023-11-01 14:50:33 26 4
gpt4 key购买 nike

我是 java 的新手,在使用 java 代码运行 oozie 作业时遇到了一些问题。我无法找出代码中的问题。一些帮助将不胜感激。这是我的代码

import java.util.Properties;

import org.apache.oozie.client.OozieClient;
import org.apache.oozie.client.WorkflowJob;

public class oozie {

public static void main(String[] args) {
OozieClient wc = new OozieClient("http://host:11000/oozie");

Properties conf = wc.createConfiguration();

conf.setProperty(OozieClient.APP_PATH, "hdfs://cluster/user/apps/merge-psp-logs/merge-wf/workflow.xml");
conf.setProperty("jobTracker", "jobtracker.bigdata.com:8021");
conf.setProperty("nameNode", "hdfs://namenode.bigdata.com:8020");
conf.setProperty("queueName", "jobtracker.bigdata.com:8021");
conf.setProperty("appsRoot", "hdfs://namenode.bigdata.com:8020/user/workspace/apps");
conf.setProperty("appLibLoc", "hdfs://namenode.bigdata.com:8020/user/workspace/lib");
conf.setProperty("rawlogsLoc", "hdfs://namenode.bigdata.com:8020/user/workspace/");
conf.setProperty("mergedlogsLoc", "jobtracker.bigdata.com:8021");
try {
String jobId = wc.run(conf);
System.out.println("Workflow job submitted");

while (wc.getJobInfo(jobId).getStatus() == WorkflowJob.Status.RUNNING) {
System.out.println("Workflow job running ...");
Thread.sleep(10 * 1000);
}
System.out.println("Workflow job completed ...");
System.out.println(wc.getJobInfo(jobId));
} catch (Exception r) {
System.out.println("Errors");
}
}
}

虽然我可以使用命令行启 Action 业

最佳答案

没有任何进一步的信息,我会说这可能是您运行时错误的原因:

conf.setProperty(OozieClient.APP_PATH, 
"hdfs://cluster/user/apps/merge-psp-logs/merge-wf/workflow.xml");
conf.setProperty("jobTracker", "jobtracker.bigdata.com:8021");
conf.setProperty("nameNode", "hdfs://namenode.bigdata.com:8020");
conf.setProperty("queueName", "jobtracker.bigdata.com:8021");

除非你有两个集群,否则我的猜测是你的意思是 APP_PATH 指向与你的 nameNode 属性中命名的相同的 HDFS 实例,在这种情况下尝试:

conf.setProperty(OozieClient.APP_PATH, 
"hdfs://namenode.bigdata.com:8020/user/apps/merge-psp-logs/merge-wf/workflow.xml");

您可能还想将 queueName 更改为真实的队列名称(可能是“默认”,除非 jobtracker.bigdata.com:8021 是您队列的实际名称):

conf.setProperty("queueName", "default");

除了这些观察结果,尝试发布您看到的实际运行时错误。

关于java - 使用 java 代码运行 oozie 工作流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12836393/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com