“Linux 下 Hadoop 连不上”是个比较笼统的问题,通常可以从 网络、配置、服务状态、防火墙、日志 几个方向排查。下面给你一个系统性的排查清单(最常见原因都在里面)。
在 Hadoop 机器上执行:
jps
正常情况下至少应有:
如果缺少关键进程:
start-dfs.sh
start-yarn.sh
或:
start-all.sh
<property>
<name>fs.defaultFS</name>
<name>hdfs://localhost:9000</name>
</property>
如果你在另一台机器连,localhost 必须改成 IP 或 hostname。
确认:
dfs.namenode.rpc-address
yarn.resourcemanager.hostname
cat /etc/hosts
应有类似:
192.168.1.10 master
192.168.1.11 slave1
hostname
必须和配置文件中写的 hostname 一致。
netstat -tunlp | grep 9000
systemctl stop firewalld
# 或
iptables -F
生产环境请只开放需要的端口(9000、50070、8088 等)
ssh localhost
如果不行:
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
hdfs dfs -ls /
报错示例:
Connection refused → 端口/服务问题UnknownHost → hosts/配置问题Permission denied → 用户/权限问题http://ip:50070http://ip:8088cd $HADOOP_HOME/logs
tail -100 hadoop-*-namenode-*.log
常见错误:
java.net.BindExceptionCannot assign requested addressNameNode is not formatted如果你愿意,可以把下面信息发我,我可以直接帮你定位:
hdfs 连不上,还是 Web 连不上,还是 Java 程序连不上我可以直接帮你改配置。