4

プログラムでジョブを開始するために YarnClient を使用しています。私が実行しているクラスターは kerberos 化されています。

「yarn jar examples.jar wordcount...」を介して送信された法線マップ削減ジョブが機能します。

プログラムで送信しようとしているジョブは送信されません。次のエラーが表示されます。

14/09/04 21:14:29 エラー client.ClientService: アプリケーションの送信中にエラーが発生しました: appattempt_1409863263326_0002_000002 の AM コンテナーが原因で 2 回失敗しましたIOException: org.apache.hadoop.security.AccessControlException: クライアントは [トークン、KERBEROS] 経由で認証できません。ホストの詳細: ローカル ホストは次のとおりです: "yarn-c1-n1.clouddev.snaplogic.com/10.184.28.108"; 宛先ホストは: "yarn-c1-cdh.clouddev.snaplogic.com":8020; .この試みに失敗しました.. アプリケーションに失敗しました。14/09/04 21:14:29 エラー client.YClient: アプリケーションの送信に失敗しました

コードは次のようになります。

ClientContext context = createContextFrom(args);
YarnConfiguration configuration = new YarnConfiguration();
YarnClient yarnClient = YarnClient.createYarnClient();
yarnClient.init(configuration);
ClientService client = new ClientService(context, yarnClient, new InstallManager(FileSystem.get(configuration)));
LOG.info(Messages.RUNNING_CLIENT_SERVICE);
boolean result = client.execute();

私は、おそらく次の効果に何かを追加すると考えていました。

yarnClient.getRMDelegationToken(new Text(InetAddress.getLocalHost().getHostAddress()));

おそらく私の悩みを和らげることができるかもしれませんが、それも役に立たないようです. どんな助けでも大歓迎です。

4

3 に答える 3