AWS免费层4节点Ubuntu环境执行start-dfs.sh后Hadoop Datanode无法启动
Hadoop 3.2.2 4节点集群Datanode未启动排查方案
1. 排查前置操作
你当前提供的是SecondaryNameNode的运行日志,未包含Datanode启动失败的相关报错信息。请先登录所有未正常启动的Datanode节点,进入${HADOOP_HOME}/logs目录,查看文件名前缀为hadoop-<运行用户名>-datanode-<主机名>.log的日志内容,可直接定位具体报错原因。
2. 高频故障及修复方案
- 集群ID不匹配
仅清理NameNode节点tmp目录并格式化、未同步清理所有Datanode节点tmp目录会导致该问题:Datanode本地存储的旧集群ID与新格式化的NameNode集群ID不一致,无法完成注册。
修复步骤:- 停止所有集群服务:
stop-dfs.sh && stop-yarn.sh - 登录集群所有节点(NameNode、SecondaryNameNode、全部Datanode),删除
core-site.xml中hadoop.tmp.dir配置对应目录下的所有内容 - 重新格式化NameNode:
hdfs namenode -format - 重新启动集群:
start-dfs.sh && start-yarn.sh
- 停止所有集群服务:
- 网络与访问规则配置错误
AWS EC2默认安全组未开放HDFS通信端口、节点本地防火墙未放行相关端口、节点间hosts映射配置错误都会导致Datanode无法与NameNode通信。
修复步骤:- 确认所有节点的
/etc/hosts文件均配置了集群所有节点的内网IP与主机名映射,无错漏、无重复 - 确认所有节点本地UFW防火墙已关闭,或已放行9000、9820、9866、9867等HDFS通信端口
- 确认AWS EC2实例安全组的入站规则已开放上述端口,允许集群内网网段的访问请求
- 确认所有节点的
- 集群配置文件错误
核心配置项不匹配会导致Datanode无法正常启动:- 确认Hadoop 3.x使用的
workers配置文件(已废弃原slaves文件)已填写所有Datanode的主机名,且与/etc/hosts中的配置完全一致 - 确认
hdfs-site.xml中dfs.namenode.name.dir、dfs.datanode.data.dir配置的目录对Hadoop运行用户有读写权限 - 确认
core-site.xml中fs.defaultFS配置的NameNode地址可被所有Datanode正常访问
- 确认Hadoop 3.x使用的
- 权限配置错误
节点间SSH免密登录配置失效、存储目录权限不足会导致NameNode无法远程拉起Datanode进程:- 确认NameNode节点可通过SSH免密登录所有Datanode节点,无需手动输入密码
- 递归修改Hadoop安装目录与数据存储目录的所有者为Hadoop运行用户:
sudo chown -R <hadoop用户名>:<hadoop用户组> <目录路径>
内容的提问来源于stack exchange,提问作者kuollam
相关产品推荐
相关产品推荐

