引言
最近在尝试在搭建Hadoop集群并测试集群是否搭建成功,但是第一次格式化NameNode并启动HDFS和YARN时发现一会儿有DataNode或者NameNode但是后面就没有了,二者没有同时存在,也尝试过停止进程再重新启动都没有解决掉该问题。
相关命令
集群第一次启动,格式化NameNode
bin/hdfs namenode -format
启动HDFS
sbin/start-dfs.sh
停止HDFS
sbin/stop-dfs.sh
启动YARN
sbin/start-yarn.sh
停止YARN
sbin/stop-yarn.sh
启动历史服务器
sbin/mr-jobhistory-daemon.sh start historyserver
停止所有进程
sbin/stop-all.sh
删除文件
rm 文件名
删除文件夹及文件
rm -rf 文件夹名
问题原因
可能是配置文件出错,需要检查core-site.xml 和 hdfs-site.xml这俩文件;
可能是多次格式化NameNode,但是格式之前并没有停止之前的进程并删除相关数据。
解决方式
(1)需要检查core-site.xml 和 hdfs-site.xml;
(2)重新格式化:先停止上次启动的所有namenode和datanode进程,然后再删除data和log数据。(具体删除方式见下面截图,亲测有效!)
- 删除dfs文件夹里的文件
路径:/opt/module/hadoop-2.7.2/data/tmp/dfs
- 删除nm-local-dir文件夹
路径:/opt/module/hadoop-2.7.2/data/tmp
- 删除logs文件夹里的所有文件和文件夹
路径:/opt/module/hadoop-2.7.2/logs
需要在每一个集群结点上执行上述删除操作,
删除操作后,就可以重新执行格式化NameNode操作。
测试结果
节点1(NameNode):
节点2:
节点3:
注意
如果集群是第一次启动,需要格式化NameNode,执行一次format就行了(注意格式化之前或者重新格式化,一定要先停止上次启动的所有namenode和datanode进程,然后再删除data和log数据),start-dfs.sh开启namenode和datanode守护进程,停止进程并退出使用stop-dfs.sh。