3

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

コマンドラインを使用してジョブを起動することはできますが

4

1 に答える 1

2

これ以上の情報がなければ、これがランタイムエラーの原因である可能性があります。

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

2つのクラスターがない限り、APP_PATHがnameNodeプロパティで指定されたものと同じHDFSインスタンスを指すことを意味していると思います。その場合は、次のことを試してください。

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

jobtracker.bigdata.com:8021また、queueNameを実際のキュー名に変更することもできます(キューの実際の名前でない限り、おそらく「デフォルト」 )。

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

これらの観察結果とは別に、表示されている実際のランタイムエラーを投稿してみてください。

于 2012-10-11T10:31:53.873 に答える