新增DataNode无法从现有Hadoop集群传输数据问题求助
问题排查与解决步骤
1. 修复主机名解析问题
- 在新DataNode的
/etc/hosts文件中添加master节点的IP与主机名映射,格式如下:
示例:[master节点IP] master192.168.1.100 master - 保存后执行
ping master测试连通性,若仍失败,检查hosts文件格式(避免多余空格、错误注释),或通过nslookup master确认系统是否优先使用DNS解析而非本地hosts。
2. 核对Hadoop配置一致性
- 检查新DataNode的
core-site.xml,确保fs.defaultFS指向master的正确地址:<property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> - 检查
hdfs-site.xml中的dfs.namenode.rpc-address配置:<property> <name>dfs.namenode.rpc-address</name> <value>master:9000</value> </property> - 主节点的
slaves(或workers)文件必须添加新DataNode的主机名/IP,之后重启NameNode服务:stop-dfs.sh start-dfs.sh
3. 验证DataNode注册状态
- 在主节点执行
hdfs dfsadmin -report,确认新节点是否在Live DataNodes列表中。若未出现,查看新DataNode的日志文件(默认路径hadoop-logs/hadoop-*-datanode-*.log),搜索connection refused或unknown host定位具体错误。 - 用
telnet master 9000测试RPC端口连通性,确保新节点与master之间的9000、50010端口未被防火墙拦截。
4. 重新同步SSH授权密钥
- 重新执行主节点到新DataNode的密钥分发:
ssh-copy-id [新DataNode用户名]@[新DataNode主机名/IP] - 在新DataNode上测试无密码登录master:
ssh master,确保无需输入密码即可登录。
5. 触发集群数据均衡
- 确认新节点成功加入后,执行数据均衡命令强制迁移数据:
start-balancer.sh -threshold 10threshold为节点间存储使用率差值阈值(默认10%),可按需调整。
内容的提问来源于stack exchange,提问作者Vidhi Patel
相关产品推荐
相关产品推荐

