2012-09-03 2 views
4

내가 (버전 3.0.0-SNAPSHOT으로 설정되어 왜 하둡의 SVN 체크 아웃, 사용) 분산 쉘 예제를 실행하기 위해 노력하고있어 : 그러나하둡/원사 분산 쉘 예를

yarn jar share/hadoop/yarn/hadoop-yarn-applications-distributedshell-3.0.0-SNAPSHOT.jar \ 
-jar share/hadoop/yarn/hadoop-yarn-applications-distributedshell-3.0.0-SNAPSHOT.jar \ 
org.apache.hadoop.yarn.applications.distributedshell.Client -shell_command whoami 

을 그것은 작동하지 않습니다

Unknown protocol: org.apache.hadoop.yarn.api.ClientRMProtocolPB 

사람이 알고 있나요 :

12/09/03 13:44:37 FATAL distributedshell.Client: Error running CLient 
java.lang.reflect.UndeclaredThrowableException 
at org.apache.hadoop.yarn.exceptions.impl.pb.YarnRemoteExceptionPBImpl.unwrapAndThrowException(YarnRemoteExceptionPBImpl.java:128) 
at org.apache.hadoop.yarn.api.impl.pb.client.ClientRMProtocolPBClientImpl.getClusterMetrics(ClientRMProtocolPBClientImpl.java:123) 
at org.hadoop.yarn.client.YarnClientImpl.getYarnClusterMetrics(YarnClientImpl.java:163) 
at org.apache.hadoop.yarn.applications.distributedshell.Client.run(Client.java:316) 
at org.apache.hadoop.yarn.applications.distributedshell.Client.main(Client.java:164) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:601) 
at org.apache.hadoop.util.RunJar.main(RunJar.java:208) 
Caused by: org.apache.hadoop.ipc.RemoteException(java.io.IOException): Unknown protocol: org.apache.hadoop.yarn.api.ClientRMProtocolPB 
at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.getProtocolImpl(ProtobufRpcEngine.java:398) 
at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:456) 
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:898) 
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1732) 
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1728) 
at java.security.AccessController.doPrivileged(Native Method) 
at javax.security.auth.Subject.doAs(Subject.java:415) 
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1367) 
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1726) 

at org.apache.hadoop.ipc.Client.call(Client.java:1164) 
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:202) 
at $Proxy7.getClusterMetrics(Unknown Source) 
at org.apache.hadoop.yarn.api.impl.pb.client.ClientRMProtocolPBClientImpl.getClusterMetrics(ClientRMProtocolPBClientImpl.java:121) 
... 8 more 

근본적인 문제는 두 번째 추적 것 같다 Hadoops ProtoBufRPC의 프로토콜 등록이 어떻게 작동합니까? 디버깅하는 방법에 대한 아이디어?

편집 : Hadoop 버전 2.0.1-alpha에서는 약간 더 잘 작동합니다.

12/09/03 18:43:14 INFO distributedshell.Client: Application did not finish. YarnState=FAILED, DSFinalStatus=FAILED. Breaking monitoring loop 
12/09/03 18:43:14 ERROR distributedshell.Client: Application failed to complete successfully 

아마도 내 빌드가 제대로 작동하지 않을 수 있습니다. 위의 문제를 일으키는 아이디어 (MapReduce 외에도 몇 가지 저수준 실험을 계획 중이므로 HEAD를 사용하고 싶습니다.)? 또는 HEAD가 부분적으로 손상 되었습니까? HEAD의 분산 쉘이 작동합니까? 그것은 내 자신의 코드의 주요 문제는 내가 순진 Configuration 클래스를 인스턴스화한다는 것을 밝혀졌다

Caused by: java.io.IOException: Unknown protocol: org.apache.hadoop.yarn.api.ClientRMProtocolPB 

답변

3

:

내 자신의 (아직 작동하지 ...) 클라이언트는 여전히 같은 오류와 함께 실패 YarnConfiguration을 인스턴스화하는 대신 이렇게하면 실 구성 파일이 읽히지 않고 기본 포트의 서버에 연결하려고했는데 이는 내 설정과 일치하지 않습니다.

distributedshell 예제에는 동일한 버그가있는 것 같습니다.