Call to xx/xx:9000 failed on connection exception( hadoop )
原创
©著作权归作者所有:来自51CTO博客作者nkgines的原创作品,请联系作者获取转载授权,否则将追究法律责任
场景描述
- 基于eclipse + hadoop开发过程中,eclipse不能访问远程hadoop服务器文件系统,本地 CMD 窗口 Telnet 失败。
- 失败提示 1 :
telnet remote_hadoop_ip 9000 # 测试端口连通性
# 正在连接x.x.x.x...无法打开到主机的连接。 在端口 9000: 连接失败
1. Call to local_IP/remote_IP:9000 failed on connection exception.
2. Failed on local exception:java.ioIOException;Host Details:local host is "pc_name/local_ip";destination host is "remote_ip":9000
原因分析
- telnet 不通 9000端口与eclispse 报连接异常属于同一个原因。
- 问题 1:hosts文件与hadoop xml配置需要保持一致
- hosts文件
# cat /etc/hosts # 192.168.1.110 远程服务器IP地址
192.168.1.110
- hadoop xml配置文件
- core-site.xml 文件
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>mapreduce.jobtracker.address</name>
<value>master:9001</value>
</property>
- 或 远程服务器IP地址,或0.0.0.0
- 不是 localhost !
- 问题 2 : Failed on local exception:java.ioIOException
- 变更计算机名导致,查看本地计算机名与下列路径配置中是否一致
- hadoop.http.authentication.kerberos.keytab
- hadoop.http.authentication.signature.secret.file
常用Linux 命令
netstat -tunlp |grep 9000 # 显示所有端口和所有对应程序,grep管道过滤关键字段
firewall-cmd --state # 查看防火墙状态
systemctl start firewalld.service # 启动防火墙
systemctl stop firewalld.service # 关闭防火墙
firewall-cmd --reload # 重载防火墙
systemctl restart firewalld # 重启防火墙
firewall-cmd --zone=dmz --list-ports # 查看所有开放端口
firewall-cmd --help # 查看帮助
References