致那时那刻,所犯下的错——Hadoop错误集合

写在前面

出现问题第一时间应该是去看相应的日志
日志在hadoop根目录下logs目录下,根据出错时间找到时间相符的文件cat/tail -n 100 path

DataNode未启动

未启动DataNode的节点,尝试命令hdfs --daemon start datanode
删除core-site.xml中hadoop.tmp.dir指定的目录,集群机器全都删除,使用hdfs namenode -format重新格式化,再启动集群。

Namenode未启动

未启动NameNode的节点,尝试命令hdfs --daemon start namenode

非高可用

删除core-site.xml中hadoop.tmp.dir指定的目录,集群机器全都删除,使用hdfs namenode -format重新格式化,再启动集群。

高可用

删除core-site.xml中hadoop.tmp.dir指定的目录,集群机器全都删除;所有机器
启动zookeeper 命令:/bin/zkServer.sh start(在zookeeper根目录下执行命令)和journalnode 命令:hdfs --daemon start journalnode。在其中一个namenode节点使用hdfs namenode -format重新格式化,格式化后会生成一个新文件夹,用scp或者rsync命令传给另一个namenode节点;启动集群。
注意:曾开启过高可用集群的,需要保证dfs.journalnode.edits.dir设置目录下为空(未设置默认/tmp/hadoop/dfs/journalnode/),有文件的话rm命令删除后再hdfs namenode -format

DFSZKFailoverController未启动

查看logs目录下的zkfs日志信息;
日志显示:Unable to start failover controller. Parent znode does not exist.
parent节点的问题,直接格式化zkfc
命令:hdfs zkfc -fromatZK
格式化中没有问题,启动 DFSZKFailoverController
命令:hdfs --daemon start zkfc 两个namenode节点都要启动 (或者重启整个集群,不推荐)

Availability少于Replication数量

首先jps查看Datanode是否启动了,没有启动需要删除Hadoop目录下data目录,重启hdfs。还是不能启动需要重新格式化。


NameNode挂掉

当namenode突然挂掉且数据丢失时
删除core-site.xml中hadoop.tmp.dir指定的目录下的 dfs/name 文件夹
非高可用环境可将2nn节点的2nn文件复制到当前节点,命令:

scp -r username@ip: path path -r递归复制
拉取完成后,使用命令:
hdfs --daemon start namenode 启动namenode

高可用环境直接将一个namenode节点中的name文件夹拉取到当前节点
scp -r username@ip: path path
hdfs --daemon start namenode

例:

scp -r loftiest@Hadoop005:/opt/module/hadoop-3.1.3/data/dfs/name /opt/module/hadoop-3.1.3/data/dfs/
hdfs --daemon start namenode
jps


猜你喜欢

转载自blog.csdn.net/rfdjds/article/details/121399130