我正试图在按照本教程安装的本地单节点集群上运行hadoop 2.2.0 mapreduce作业:http://codesfusion.blogspot.co.at/2013/10/setup-hadoop-2x-220-on-ubuntu.html?m=1
尽管在服务器端抛出了以下异常:
org.apache.hadoop.ipc.RpcNoSuchProtocolException: Unknown protocol: org.apache.hadoop.yarn.api.ApplicationClientProtocolPB
at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.getProtocolImpl(ProtobufRpcEngine.java:527)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:566)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:928)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2048)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2044)
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:1491)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2042)
有没有一种方法可以让我将Protobuf RPC配置为在服务器端可用?我需要hadoop本机库吗?或者我可以在客户端以某种方式切换到Writables/Avro RPC吗?
好的,找到了原因,我为纱线资源管理器连接了错误的端口。正确的配置是:yarn.resourcemanager.address=localhost:8032
在我的情况下,当ApplicationMaster和YARN容器之间没有足够的内存时,我在日志中得到了同样的错误。减少了yarn.app.mapreduce.am.resource.mb属性,它适用于我的单节点安装。