Call From localhost/127.0.0.1 to ubuntu-linux:9000 failed on connection exception:

java操作Hadoop的时候:Call From localhost/127.0.0.1 to ubuntu-linux:9000 failed on connection exception

连接拒绝 

当指定地址有一台机器,但客户端使用的特定TCP端口上没有程序监听时,您将获得ConnectionRefused异常-并且没有防火墙阻止静默删除TCP连接请求。如果您不知道什么是TCP连接请求,请查阅规范

除非两端存在配置错误,否则常见的原因是Hadoop服务没有运行。

当集群关闭时,这种堆栈跟踪非常常见——因为此时Hadoop服务正在集群被拆掉,对于那些自己没有关闭的服务和应用程序来说,这是可见的。在集群关闭期间看到此错误消息并不担心。

如果应用程序或集群不起作用,并且此消息出现在日志中,则情况更严重。

异常文本同时声明主机名和连接失败的端口。端口可用于识别服务。例如,端口9000是HDFS端口。咨询安巴里端口参考和/或Hadoop管理工具供应商的参考。

  1. 检查客户端使用的主机名是否正确。如果在Hadoop配置选项中:仔细检查它,尝试手动ping。
  2. 检查客户端试图交谈的IP地址是否正确。
  3. 确保异常中的目标地址不是0.0.0.0 - 这意味着您实际上没有为该服务配置客户端的真实地址,而是它正在接收服务器端属性,告诉它在每个端口上监听连接。
  4. 如果错误消息显示远程服务在“127.0.0.1”或“本地主机”上,则表示配置文件告诉客户端该服务在本地服务器上。如果您的客户端试图与远程系统对话,则您的配置将中断。
  5. Check that there isn't an entry for your hostname mapped to 127.0.0.1 or 127.0.1.1 in /etc/hosts (Ubuntu is notorious for this).
  6. 检查客户端试图使用服务器提供服务的匹配项与之对话的端口。netstat命令在那里非常有用。
  7. 在服务器上,尝试一个telnet localhost <port>,看看端口是否在那里打开。
  8. 在客户端上,尝试telnet <server> <port>,查看该端口是否可以远程访问。
  9. 尝试从其他机器连接到服务器/端口,看看它是否只是单个客户端行为不端。
  10. 如果您的客户端和服务器位于不同的子域,那么服务的配置可能只是发布基本主机名,而不是完全合格的域名。不同子域中的客户端可能会无意中尝试绑定到本地子域中的主机,但失败了。
  11. 如果您使用的是基于Hadoop的第三方产品,-请使用供应商提供的支持渠道。
  12. 请不要提交与您的问题相关的错误报告,因为它们将作为无效关闭 

以上是官网提供的处理方案

我遇到的坑:

假如在core-site.xml配置文件里配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
 <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>ssss</description>
 </property>
 <property>
        <name>fs.defaultFS</name>
        <value>hdfs://laoniu-ubuntu:9000</value>
 </property>
</configuration>

其中主机名:laoniu-ubuntu  虚拟机ip是:10.211.55.13

必须要在/etc/hosts 里加入一行解析: 10.211.55.13    laoniu-ubuntu

扫描二维码关注公众号,回复: 15666807 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_41389354/article/details/114327354