拒绝连接
当指定的地址有一台机器,但是没有程序监听客户端正在使用的特定TCP端口时,您会收到ConnectionRefused Exception,并且没有防火墙以静默方式丢弃TCP连接请求。如果您不知道TCP连接请求是什么,请参考规范。
除非两端都有配置错误,否则一个常见的原因是Hadoop服务没有运行。
这个堆栈跟踪在集群关闭时非常常见,因为在那个时候,Hadoop服务正在整个集群中被拆除,而这些服务和应用程序本身并没有被关闭。在群集关闭期间看到这个错误消息是没有什么可担心的。
如果应用程序或集群不能正常工作,并且这条消息出现在日志中,那么情况会更严重。
异常文本声明连接失败的主机名和端口。该端口可以用来识别服务。例如,端口9000是HDFS端口。请参阅Ambari端口参考,和/或您的Hadoop管理工具供应商的参考。
- 检查客户端使用的主机名是否正确。如果它在Hadoop配置选项中:仔细检查它,尝试手动执行ping操作。
- 检查客户端正在尝试与之通信的主机名是否正确。
- 确保异常中的目标地址不是0.0.0.0,这意味着你没有真正地为客户端配置该服务的实际地址,而是提取服务器端的属性,告诉它监听每个连接端口。
- 如果错误消息显示远程服务处于“127.0.0.1”或“localhost”状态,则表示配置文件正在告诉客户端该服务在本地服务器上。如果您的客户正在尝试与远程系统通话,则说明您的配置已损坏。
-
检查你的主机名是否在/ etc / hosts中映射到127.0.0.1或127.0.1.1 (Ubuntu是臭名昭着的)。
-
使用服务器提供的服务匹配来检查客户端正在尝试与之通话的端口。该netstat的命令非常有用那里。
-
在服务器上,尝试使用telnet localhost <port>来查看端口是否在那里打开。
-
在客户端上,尝试使用telnet <server> <port>来查看端口是否可以远程访问。
- 尝试从不同的机器连接到服务器/端口,看看它是否只是单一的客户端行为不端。
- 如果您的客户端和服务器位于不同的子域中,则可能是该服务的配置仅发布基本主机名,而不是完全合格的域名。不同子域中的客户端可能会无意中尝试绑定到本地子域中的主机,并且失败。
- 如果您使用的是第三方提供的基于Hadoop的产品,请使用供应商提供的支持渠道。
-
请不要提交与您的问题有关的错误报告,因为它们将被关闭为无效
另请参阅服务器溢出
这些都不是Hadoop问题,它们是hadoop,主机,网络和防火墙配置问题。因为它是你的集群,只有你可以找出并追查问题。