场景描述
- 基于eclipse + hadoop开发过程中,eclipse不能访问远程hadoop服务器文件系统,本地 CMD 窗口 Telnet 失败。
 - 失败提示 1 :
 
- 本地Windows CMD窗口提示
 
telnet remote_hadoop_ip 9000 # 测试端口连通性
# 正在连接x.x.x.x...无法打开到主机的连接。 在端口 9000: 连接失败
- 失败提示信息 2:
 
- eclipse 环境中
 
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>
- mapred-site.xml 文件
 
<property>
<name>mapreduce.jobtracker.address</name>
<value>master:9001</value>
</property>
- 远程服务器IP:hadoop服务端口
 
- 或 远程服务器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
- Linux netstat命令
 - FirewallD详解
 
                










