启动Hadoop集群,Namenode和ResourceManager未起来的问题

前因:

实验中搭建Hadoop分布式集群,配置完所有文件后启动集群,用jps查看只有SecondaryNameNode和Jps

解决namenode:

查看日志:

日志后50条
tail -n 50 hadoop-root-namenode-master.log
由于第一次我删除了日志没有记录过程,所以直接给出结果: 大致原因也是如同下面的端口绑定错误,查询到使用阿里云的ECS得绑定私网IP地址(也就是你输ifconfig看到的),所以修改每台 /etc/hosts下与master对应的ip即可。

解决resourcemanager:

解决了如上问题后,启动start-yarn.sh发现resourcemanager又没了

同样方法查看后50条
tail -n 50 yarn-root-resourcemanager-master.log
2022-03-03 09:55:33,709 INFO org.apache.hadoop.yarn.util.AbstractLivelinessMonitor: AMLivelinessMonitor thread interrupted
2022-03-03 09:55:33,713 INFO org.apache.hadoop.yarn.util.AbstractLivelinessMonitor: org.apache.hadoop.yarn.server.resourcemanager.rmcontainer.ContainerAllocationExpirer thread interrupted
2022-03-03 09:55:33,713 ERROR org.apache.hadoop.security.token.delegation.AbstractDelegationTokenSecretManager: ExpiredTokenRemover received java.lang.InterruptedException: sleep interrupted
2022-03-03 09:55:33,714 INFO org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Transitioned to standby state
2022-03-03 09:55:33,714 FATAL org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Error starting ResourceManager
org.apache.hadoop.yarn.webapp.WebAppException: Error starting http server
        at org.apache.hadoop.yarn.webapp.WebApps$Builder.start(WebApps.java:279)
        at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.startWepApp(ResourceManager.java:974)
        at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.serviceStart(ResourceManager.java:1074)
        at org.apache.hadoop.service.AbstractService.start(AbstractService.java:193)
        at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.main(ResourceManager.java:1208)
Caused by: java.net.BindException: Port in use: 0.0.0.0:8088
        at org.apache.hadoop.http.HttpServer2.openListeners(HttpServer2.java:919)
        at org.apache.hadoop.http.HttpServer2.start(HttpServer2.java:856)
        at org.apache.hadoop.yarn.webapp.WebApps$Builder.start(WebApps.java:274)
        ... 4 more
Caused by: java.net.BindException: Address already in use
        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.mortbay.jetty.nio.SelectChannelConnector.open(SelectChannelConnector.java:216)
        at org.apache.hadoop.http.HttpServer2.openListeners(HttpServer2.java:914)
        ... 6 more

再一次看到了BindException还看到了隐式地址0.0.0.0:8088 回去查看之前配置的文件yarn-site.xml,修改对应的value

<property>
	<name>yarn.resourcemanager.webapp.address</name>
	<value>私网ip:8088</value>
</property>

重新格式化namenode,重启hadoop即可。

在master上查看进程 在slave上查看进程 感谢:

经验分享 程序员 微信小程序 职场和发展