我正在尝试在多节点群集上运行wordcount作业。每次我启动进程时,nodemanager都会成功启动,但随后会消失。日志文件显示以下错误:
Caused by: java.net.BindException: Problem binding to [0.0.0.0:8040] java.net.BindException: Address already in use; For more details see: http://wiki.apache.org/hadoop/BindException
at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:719)
at org.apache.hadoop.ipc.Server.bind(Server.java:422)
at org.apache.hadoop.ipc.Server$Listener.<init>(Server.java:534)
at org.apache.hadoop.ipc.Server.<init>(Server.java:2203)
at org.apache.hadoop.ipc.RPC$Server.<init>(RPC.java:897)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Server.<init>(ProtobufRpcEngine.java:505)
at org.apache.hadoop.ipc.ProtobufRpcEngine.getServer(ProtobufRpcEngine.java:480)
at org.apache.hadoop.ipc.RPC$Builder.build(RPC.java:742)
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)
... 13 more
我试图在0.0.0.0:8040终止进程,但这会导致与虚拟机的连接丢失。我的/etc/hosts文件如下所示:
127.0.0.1 localhost
192.168.50.2 master
192.168.50.8 slave-e1a2365d-ef73-4c94-8212-7d607e4ae0f3
192.168.50.9 slave-bbd66c22-678c-474e-94cf-095dfcc11d5c
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
我不知道如何纠正这个错误。任何帮助都将不胜感激。
1条答案
按热度按时间ujv3wf0j1#
看来你的港口已经在这里使用了
如何追踪问题
1) 确定程序正试图绑定到哪个端口
2) 作为root用户,可以使用netstat-a-t--numeric ports-p按编号和进程列出正在使用的端口(在os/x上,您需要使用lsof)
3) 识别正在使用的端口和正在使用的程序
4) 确保主机名是valid:try to ping它;使用ifconfig列出网络接口及其ip地址。
5) 试着找出它被使用的原因。telnet和web浏览器都是不错的技巧。
6) 更改其中一个程序的配置以侦听其他端口。
希望有帮助