Hadoop集群无节点问题:VirtualBox中2节点集群搭建求助
嘿,我来帮你搞定这个Hadoop集群看不到节点的问题!先从你给出的配置里揪几个明显的问题,再一步步排查解决:
一、从节点Hosts配置是核心问题
你贴的从节点/etc/hosts里,把Slave映射到了127.0.0.1,这可不行——127.0.0.1是本地回环地址,主节点根本没法通过这个地址连接到从节点,自然识别不到它。
你当前的错误配置:
127.0.0.1 Slave
修正步骤:
- 先确认从节点的真实IP(在VirtualBox里用
ifconfig或ip addr查看,假设是192.168.56.103) - 修改从节点的
/etc/hosts,把Slave的映射改成真实IP:
127.0.0.1 localhost 192.168.56.102 Master 192.168.56.103 Slave
- 同时主节点的
/etc/hosts也要同步加上Slave的IP映射,确保主节点能正确解析从节点的主机名。
二、从节点core-site.xml配置不完整
你贴的core-site.xml内容被截断了,这个文件是Hadoop的核心配置,必须正确指定HDFS namenode的地址,否则从节点根本不知道要注册到哪里。
给你一个标准的core-site.xml示例(根据你的主节点配置调整):
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!-- 指定HDFS的namenode地址,对应主节点的主机名和端口 --> <property> <name>fs.defaultFS</name> <value>hdfs://Master:9000</value> </property> <!-- 指定Hadoop临时目录,需要确保从节点上这个目录存在且有读写权限 --> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop/tmp</value> </property> </configuration>
配置完后,记得给临时目录设置权限:sudo mkdir -p /usr/local/hadoop/tmp && sudo chown hadoop:hadoop /usr/local/hadoop/tmp
三、必须确保主节点能免密SSH登录从节点
Hadoop启动从节点进程时,需要主节点无密码SSH登录到从节点,否则根本没法远程启动服务。
验证方法:在主节点执行ssh Slave,如果需要输入密码,说明免密没配置好,按下面步骤来:
- 在主节点生成SSH密钥(一路回车即可):
ssh-keygen -t rsa -P ""
- 把主节点的公钥复制到从节点:
ssh-copy-id Slave
- 再次执行
ssh Slave,确认不需要输入密码就能登录。
四、同步主节点的Hadoop配置到从节点
主节点的slaves文件已经配置了Master和Slave,但要确保从节点的Hadoop配置和主节点完全一致,避免出现配置差异导致的问题:
scp -r /usr/local/hadoop/etc/hadoop/ hadoop@Slave:/usr/local/hadoop/etc/
五、重启集群并验证状态
完成上面的修正后,先停掉所有Hadoop进程(如果之前启动过):
stop-all.sh # 新版Hadoop可以分开执行:stop-dfs.sh && stop-yarn.sh
然后只在主节点执行一次HDFS格式化(注意:不要重复格式化,会丢失数据):
hdfs namenode -format
启动集群:
start-all.sh # 新版用:start-dfs.sh && start-yarn.sh
最后验证节点状态:
- 在主节点和从节点分别执行
jps,主节点应该有NameNode、ResourceManager,从节点应该有DataNode、NodeManager - 执行
hdfs dfsadmin -report,查看DataNode的状态,确认从节点已经成功注册。
内容的提问来源于stack exchange,提问作者Jiew Meng
相关产品推荐
相关产品推荐

