프로그래밍 방식으로 작업을 시작하려면 YarnClient를 사용하고 있습니다. 내가 운영하는 클러스터는 kerberosized입니다.클라이언트가 다음을 통해 인증 할 수 없습니다. [TOKEN, KERBEROS]
"yarn jar examples.jar wordcount ..."를 통해 제출 된 일반지도 축소 작업이 작동합니다.
프로그래밍 방식으로 제출하려고하는 작업은 그렇지 않습니다.
이14/09/04 21:14:29 ERROR client.ClientService: Error happened during application submit: Application application_1409863263326_0002 failed 2 times due to AM Container for appattempt_1409863263326_0002_000002 exited with exitCode: -1000 due to: Failed on local exception: java.io.IOException: org.apache.hadoop.security.AccessControlException: Client cannot authenticate via:[TOKEN, KERBEROS]; Host Details : local host is: "yarn-c1-n1.clouddev.snaplogic.com/10.184.28.108"; destination host is: "yarn-c1-cdh.clouddev.snaplogic.com":8020; .Failing this attempt.. Failing the application. 14/09/04 21:14:29 ERROR client.YClient: Application submission failed
코드는 다음과 같은 : :이 오류가
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()));
아마도 내 비애를 누그러 수 ,하지만 그건 도움이되지 않는 것 같습니다. 어떤 도움이라도 대단히 감사하겠습니다.
이 작업을 수행하는 방법을 보여주는 코드 스 니펫은 정말 좋을 것입니다. 나는이 문제에 어려움을 겪고 있으며, 당신이 말하는 것을 어떻게하는지 분명하지 않습니다. – quux00
관련 내용 : https://groups.google.com/a/cloudera.org/forum/#!topic/scm-users/D0qbrngp59g –