我正在尝试使用java代码启动oozie操作。在使用命令行时,我们通过“-config job.properties”指定属性文件,它知道要选择哪个工作流。我们如何在java代码中定义“job.properties”文件来执行相同的任务?
conf.setProperty(OozieClient.APP_PATH,"hdfs://clusterdb05.com:8020/user/apps/merge-logs/workflow.xml");
conf.setProperty("jobTracker", "jobtracker.com:8021");
conf.setProperty("nameNode", "hdfs://namenode.com:8020");
conf.setProperty("queueName", "jobtracker.com:8021");
conf.setProperty("appsRoot", "hdfs://namenode.com:8020/user/apps");
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 (OozieClientException oozieClientException) {
oozieClientException.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 0 :(得分:0)
这是ResourceBundel
的示例。尝试与您的程序集成。
public class BundleTest {
private ResourceBundle bundle;
public BundleTest() {
bundle = ResourceBundle.getBundle("job");
}
public String getMessage(String id, Object... params) {
String text = null;
try {
text = bundle.getString(id);
} catch (MissingResourceException e) {
text = "!! key " + id + " not found !!";
}
if (params != null) {
MessageFormat mf = new MessageFormat(text);
text = mf.format(params, new StringBuffer(), null).toString();
}
return text;
}
public static void main(String[] args) {
BundleTest test = new BundleTest();
String jobTracker = test.getMessage("jobTracker");
String nameNode = test.getMessage("nameNode");
String queueName = test.getMessage("queueName");
String appsRoot = test.getMessage("appsRoot");
System.out.println(jobTracker);
System.out.println(nameNode);
System.out.println(queueName);
System.out.println(appsRoot);
String message2 = test.getMessage("JOB_KEY_2", "Your First");
System.out.println(message2);
}
}
job.properties
jobTracker=jobtracker.com:8021
nameNode=hdfs://namenode.com:8020
queueName=jobtracker.com:8021
appsRoot=hdfs://namenode.com:8020/user/apps;
#With Parameter
JOB_KEY_2= {0} Job
输出:
jobtracker.com:8021
hdfs://namenode.com:8020
jobtracker.com:8021
hdfs://namenode.com:8020/user/apps;
Your First Job