解决:Yarn不能启动,没有ResourceManager

用start-yarn.sh命令之后,刚开始有ResourceManager进程,一会儿该进程就被关闭了。

查看日志发现:

INFO org.apache.hadoop.service.AbstractService: Service org.apache.hadoop.yarn.server.resourcemanager.ResourceTrackerService failed in state STARTED; cause: org.apache.hadoop.yarn.exceptions.YarnRuntimeException: java.net.BindException: Problem binding to [slave1:8031] java.net.BindException: Cannot assign requested address; For more details see:  http://wiki.apache.org/hadoop/BindException
org.apache.hadoop.yarn.exceptions.YarnRuntimeException: java.net.BindException: Problem binding to [slave1:8031] java.net.BindException: Cannot assign requested address; For more details see:  http://wiki.apache.org/hadoop/BindException
    at org.apache.hadoop.yarn.factories.impl.pb.RpcServerFactoryPBImpl.getServer(RpcServerFactoryPBImpl.java:139)
    at org.apache.hadoop.yarn.ipc.HadoopYarnProtoRPC.getServer(HadoopYarnProtoRPC.java:65)
    at org.apache.hadoop.yarn.ipc.YarnRPC.getServer(YarnRPC.java:54)
    at org.apache.hadoop.yarn.server.resourcemanager.ResourceTrackerService.serviceStart(ResourceTrackerService.java:162)
    at org.apache.hadoop.service.AbstractService.start(AbstractService.java:193)
    at org.apache.hadoop.service.CompositeService.serviceStart(CompositeService.java:120)
    at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$RMActiveServices.serviceStart(ResourceManager.java:592)
    at org.apache.hadoop.service.AbstractService.start(AbstractService.java:193)
    at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.startActiveServices(ResourceManager.java:1007)
    at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$1.run(ResourceManager.java:1048)
    at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$1.run(ResourceManager.java:1044)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:422)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1656)
    at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.transitionToActive(ResourceManager.java:1044)
    at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.serviceStart(ResourceManager.java:1084)
    at org.apache.hadoop.service.AbstractService.start(AbstractService.java:193)
    at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.main(ResourceManager.java:1219)
Caused by: java.net.BindException: Problem binding to [slave1:8031] java.net.BindException: Cannot assign requested address; For more details see:  http://wiki.apache.org/hadoop/BindException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:791)
    at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:720)
    at org.apache.hadoop.ipc.Server.bind(Server.java:424)
    at org.apache.hadoop.ipc.Server$Listener.<init>(Server.java:573)
    at org.apache.hadoop.ipc.Server.<init>(Server.java:2206)
    at org.apache.hadoop.ipc.RPC$Server.<init>(RPC.java:931)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Server.<init>(ProtobufRpcEngine.java:537)
    at org.apache.hadoop.ipc.ProtobufRpcEngine.getServer(ProtobufRpcEngine.java:512)
    at org.apache.hadoop.ipc.RPC$Builder.build(RPC.java:776)
    at org.apache.hadoop.yarn.factories.impl.pb.RpcServerFactoryPBImpl.createServer(RpcServerFactoryPBImpl.java:169)
    at org.apache.hadoop.yarn.factories.impl.pb.RpcServerFactoryPBImpl.getServer(RpcServerFactoryPBImpl.java:132)
    ... 17 more
Caused by: java.net.BindException: Cannot assign requested address
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Net.java:433)
    at sun.nio.ch.Net.bind(Net.java:425)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
    at org.apache.hadoop.ipc.Server.bind(Server.java:407)
    ... 25 more

解决方法:

       在ResourceManager所在节点上启动Yarn。

启动YARN后如果没有显示ResourceManager、NodeManagers和DataNode,可能存在以下几种原因: 1. **配置文件错误**: - 检查YARN配置文件(`yarn-site.xml`)和HDFS的配置文件(`hdfs-site.xml`)是否正确配置。确保`ResourceManager`、`NodeManager`和`DataNode`的相关配置项正确无误。 2. **防火墙或端口问题**: - 确保防火墙没有阻止YARN和HDFS使用的端口。默认情况下,`ResourceManager`使用8088端口,`NodeManager`使用8042端口,`DataNode`使用50010端口。可以使用`netstat -tuln`命令检查这些端口是否被占用。 3. **日志文件**: - 查看YARN和HDFS的日志文件(通常在`$HADOOP_HOME/logs`目录下)以获取详细的错误信息。日志文件中可能包含启动失败的详细原因。 4. **进程启动**: - 使用`jps`命令检查`ResourceManager`、`NodeManager`和`DataNode`的进程是否已经启动。如果没有启动,可以尝试手动启动这些进程: ```bash $HADOOP_HOME/sbin/yarn-daemon.sh start resourcemanager $HADOOP_HOME/sbin/yarn-daemon.sh start nodemanager $HADOOP_HOME/sbin/hadoop-daemon.sh start datanode ``` 5. **环境变量**: - 确保Hadoop和YARN的环境变量正确设置,特别是`HADOOP_HOME`、`HADOOP_CONF_DIR`和`YARN_CONF_DIR`。 6. **版本兼容性问题**: - 确保Hadoop和YARN的版本兼容,并且所有节点上的版本一致。 通过以上步骤,可以逐步排查启动YARN没有显示ResourceManager、NodeManagers和DataNode的问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值