запуск рабочего процесса oozie с использованием кода Java

Я новичок в java, и у меня возникли проблемы с запуском задания oozie с использованием кода java. Я не могу понять проблему в коде. Некоторая помощь будет действительно оценена. Вот мой код

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");
    }
}
}

Хотя я могу запустить задание с помощью командной строки


person Chirag    schedule 11.10.2012    source источник
comment
Ошибка компиляции или выполнения?   -  person Giulio Quaresima    schedule 11.10.2012
comment
@GiulioQuaresima выдает мне ошибки времени выполнения   -  person Chirag    schedule 11.10.2012


Ответы (1)


Без какой-либо дополнительной информации я бы сказал, что это, вероятно, причина ваших ошибок во время выполнения:

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 указывает на тот же экземпляр HDFS, что и тот, который указан в вашем свойстве nameNode, и в этом случае попробуйте:

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

Вы также можете изменить имя очереди на реальное имя очереди (вероятно, «по умолчанию», если только jobtracker.bigdata.com:8021 не является фактическим именем вашей очереди):

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

Помимо этих наблюдений, попробуйте опубликовать фактическую ошибку времени выполнения, которую вы видите.

person Chris White    schedule 11.10.2012
comment
внесла необходимые изменения. больше не будет ошибок во время выполнения. консоль печатает ошибки в соответствии с определенным исключением. есть идеи в чем может быть причина? - person Chirag; 11.10.2012
comment
Серьезно, было бы намного проще, если бы вы публиковали ошибки, которые видите. - person Chris White; 12.10.2012
comment
заработало дело. это было из-за, во-первых, изменений, которые вы просили внести, и, наконец, включения json-simple jar в путь к классам - person Chirag; 12.10.2012