解读hadoop启动集群之后没有namenode的一种情况
作者:薯条不蘸番茄酱
在配置Hadoop集群时,IP地址错误可能导致Namenode无法启动,解决方法包括检查并修改配置文件中的IP地址,确保虚拟机间通信无障碍,并适当格式化Namenode和DataNode,详细步骤包括修改hosts文件、配置ssh免密码登录、调整zookeeper配置
先说结论
一般在网上搜索这个问题都是让重新格式化namenode(当然,格式化之前要记得清空namenode和DataNode文件夹)。
但是对于我之前遇到的问题却没法解决。
我的做法是
检查你的hadoop的配置文件是否填写正确
我的hadoop的hdfs-site.xml中的主机IP地址未填写正确
导致启动集群服务后namenode启动不上
hdfs当然也没法用
我的虚拟机会产生这个问题主要是虚拟机的IP地址发生了改变,在这里我简单记录一下发生这种问题怎么处理,也方便我以后参阅。
- 1.首先查明每台虚拟机的IP地址,修改 etc/hosts文件。
- 2.保证每台虚拟机能互ping,ssh免密码登录可以使用。
- 3.修改hadoop文件夹中 etc/hadoop中的core-site.xml、hdfs-site.xml、和zookeeper文件夹(如果安装了zookeeper的话)中的zoo.cfg 文件
- 4.格式化节点(hadoop-2.9.2/bin/hdfs namenode -format),如果所有虚拟机的IP地址都发生了改变,那么就都要格式化,格式化之前要记得清空namenode和DataNode文件夹,并修改namenode和DataNode文件夹的权限(chmod 777 namenode)
- 5.最后再启动集群 hadoop-2.9.2/sbin/start-all.sh,以后关闭集群最好使用stop-all.sh
- 6.先试试用命令上传文件到hdfs是否成功(hadoop-2.9.2/bin/hdfs dfs -put student.txt /tmp/),然后再试着用浏览器访问虚拟机50070端口,如果都能调试成功再试着用java或者python等脚本操作hdfs。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。