だから私は、次の問題に遭遇するまで、Oozie Java API をいじっていました。次のJavaコードを実行しようとしているとき:
OozieClient oc = new OozieClient(OOZIE_URL);
Properties conf = oc.createConfiguration();
conf.setProperty(OozieClient.APP_PATH, PATH_TO_WF);
String jobId = oc.run(conf);
while(oc.getJobInfo(jobId).getStatus() == WorkflowJob.Status.PREP){
Thread.sleep(1000);
}
oc.kill(jobId);
これは次の例外で失敗します。
E0508: User [?] not authorized for WF job [JOB_ID_GOES_HERE]
Google で関連する問題をいくつか見つけることができましたが、私が気付いた問題はコマンド ラインの Oozie クライアントにのみ関連していました。
私の主な質問は、単に次を追加するだけで、Java から別のユーザーとして Oozie ワークフローを実行できると考えていることです。
conf.setProperty("user.name", "user123");
ワークフローを強制終了することでできる同様のことはありますか?