报错:hadoop There appears to be a gap in the edit log. We expected txid 927, but got txid 1265.
Hadoop2.6.4 datanode 无法启动,错误:All specified directories are failed to load. NameNode 启动失败 - There appears to be a gap in the edit log. We expected txid xxx, but got tx 报错原因上面日志提示 We expected txid 927, but got txid 1265 也就是Namenode想要获取927这个edit,但是获取到的是1265,查看 jn 目录下,发现的确只有1265 即:edits_0000000000000001265-0000000000000001265
报错解决(1)方法一:命令修复元数据
# hadoop namenode -recover
遇到 (Y/N) 选Y
遇到 (c/s/q/a) 选c
重启hadoop即可。
(2)方法二:复制缺失文件(未尝试)
hadoop集群下会有两个JournalNode,可以将另一个节点存在,而此节点不存在的文件使用scp命令复制过来,
文件所在目录是自定义的,例如:/data/hadoop/hdfs/journal/cluster/current
# scp edits_0000000000000000041-0000000000000000043 root@bigdata01:/data/hadoop/hdfs/journal/cluster/current # hdfs zkfc -formatZK
重启hadoop即可。但是datanode起不来了。如下:
Hadoop2.6.4 datanode 无法启动,错误:All specified directories are failed to load.解决办法:
方法1.进入tmp/dfs,修改VERSION文件即可,将nameNode里version文件夹里面的内容修改成和master一致的。(我是单机模式,所以把nameNode里VERSION和datanode里VERSION的clusterID保持一致,tmp目录是配置文件时设置的,每个人不同)
/home/software/hadoop-2.7.1/tmp/dfs/name/current
/home/software/hadoop-2.7.1/tmp/dfs/data/current
方法2.直接删除tmp/dfs,然后格式化hdfs即可(./hdfs namenode -format)重新在tmp目录下生成一个dfs文件,格式化慎用。
经过上面两个exception后,hdfs空了,我练习的无所谓
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)