Linux 上 Hadoop 启动失败 的原因非常多,需要结合具体报错来判断。下面我先给你一个常见原因速查清单,你可以对照;如果你愿意,把报错日志贴出来,我可以精确定位。
Hadoop 必须通过 SSH 启动各节点。
现象
start-dfs.sh / start-yarn.sh 卡住或报错localhost: Permission denied解决
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
ssh localhost
✅ 能无密码登录才算成功。
Hadoop 对 Java 非常敏感。
检查
java -version
echo $JAVA_HOME
要求
JAVA_HOME 必须写在:$HADOOP_HOME/etc/hadoop/hadoop-env.sh
示例:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk
重点检查这几个文件:
core-site.xml
hdfs-site.xml
yarn-site.xml
mapred-site.xml
常见错误
/etc/hosts 不一致示例(core-site.xml)
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
第一次启动 Hadoop 必须格式化 NameNode
hdfs namenode -format
⚠️ 只能执行一次,多次执行会丢数据!
现象
java.net.BindExceptionAddress already in use解决
netstat -tunlp | grep 9000
或换端口、杀掉冲突进程。
Hadoop 需要写数据目录。
sudo chown -R 你的用户名:你的用户名 /usr/local/hadoop
localhost 或自定义主机名解析失败。
检查
hostname
hostname -f
cat /etc/hosts
建议
127.0.0.1 localhost
$HADOOP_HOME/logs/
重点看:
hadoop-*-namenode-*.loghadoop-*-datanode-*.logyarn-*-resourcemanager-*.log把最后 30 行错误贴出来即可。
jps
正常应看到(单机伪分布式):
NameNode
DataNode
SecondaryNameNode
ResourceManager
NodeManager
请直接贴出:
jps 输出我可以一步一步帮你修 ✅