Sample Code
Function
Oozie submits a job from the run method of org.apache.oozie.client.OozieClient and obtains job information from getJobInfo.
Sample Code
Change OOZIE_URL_DEFAULT in the code example to the actual host name of any Oozie node, for example, https://10-1-131-131:21003/oozie/.
The code example is as follows:
public void test(String jobFilePath) {
try {
runJob(jobFilePath);
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void runJob(String jobFilePath) throws OozieClientException, InterruptedException {
Properties conf = getJobProperties(jobFilePath);
String user = PropertiesCache.getInstance().getProperty("submit_user");
conf.setProperty("user.name", user);
// submit and start the workflow job
String jobId = oozieClient.run(conf);
logger.info("Workflow job submitted: {}" , jobId);
// wait until the workflow job finishes printing the status every 10 seconds
while (oozieClient.getJobInfo(jobId).getStatus() == WorkflowJob.Status.RUNNING) {
logger.info("Workflow job running ... {}" , jobId);
Thread.sleep(10 * 1000);
}
// print the final status of the workflow job
logger.info("Workflow job completed ... {}" , jobId);
logger.info(String.valueOf(oozieClient.getJobInfo(jobId)));
}
/**
* Get job.properties File in filePath
*
* @param filePath file path
* @return job.properties
* @since 2020-09-30
*/
public Properties getJobProperties(String filePath) {
File configFile = new File(filePath);
if (!configFile.exists()) {
logger.info(filePath , "{} is not exist.");
}
InputStream inputStream = null;
// create a workflow job configuration
Properties properties = oozieClient.createConfiguration();
try {
inputStream = new FileInputStream(filePath);
properties.load(inputStream);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
return properties;
}
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.