我正在本地系统中运行hadoop,但是 ./start-all.sh 命令其运行除名称节点以外的所有功能,同时运行它的连接被拒绝,并在日志文件中打印以下异常
./start-all.sh
java.io.ioexception : there appears to be a gap in the edit log, we expected txid 1, but got txid 291.
你能帮帮我吗。
flvtvl501#
在启用恢复标志的情况下启动namenode。使用以下命令
./bin/hadoop namenode -recover
zf2sa74q2#
hadoop nn中的元数据包括: fsimage :包含文件系统在某个时间点的完整状态 edit logs :包含在最近的fsimage之后所做的每个文件系统更改(文件创建/删除/修改)。如果列出nn工作区目录中的所有文件,您将看到文件包括:
fsimage
edit logs
fsimage_0000000000000000000 (fsimage) fsimage_0000000000000000000.md5 edits_0000000000000003414-0000000000000003451 (edit logs, there're many ones with different name) seen_txid (a separated file contains last seen transaction id)
当nn启动时,hadoop将加载fsimage并应用所有编辑日志,同时进行大量的一致性检查,如果检查失败,它将中止。让我们实现吧,我会的 rm edits_0000000000000000001-0000000000000000002 我的很多朋友 edit logs 在我的nn工作区,然后尝试 sbin/start-dfs.sh ,我将在日志中获得错误消息,如:
rm edits_0000000000000000001-0000000000000000002
sbin/start-dfs.sh
java.io.IOException: There appears to be a gap in the edit log. We expected txid 1, but got txid 3.
所以你的错误信息表明 edit logs 不协调(可能已损坏或其中一些丢失)。如果你只想在本地玩hadoop而不关心它的数据,你可以 hadoop namenode -format 要重新格式化它并从头开始,否则您需要从snn或以前备份的地方恢复编辑日志。
hadoop namenode -format
2条答案
按热度按时间flvtvl501#
在启用恢复标志的情况下启动namenode。使用以下命令
zf2sa74q2#
hadoop nn中的元数据包括:
fsimage
:包含文件系统在某个时间点的完整状态edit logs
:包含在最近的fsimage之后所做的每个文件系统更改(文件创建/删除/修改)。如果列出nn工作区目录中的所有文件,您将看到文件包括:
当nn启动时,hadoop将加载fsimage并应用所有编辑日志,同时进行大量的一致性检查,如果检查失败,它将中止。让我们实现吧,我会的
rm edits_0000000000000000001-0000000000000000002
我的很多朋友edit logs
在我的nn工作区,然后尝试sbin/start-dfs.sh
,我将在日志中获得错误消息,如:所以你的错误信息表明
edit logs
不协调(可能已损坏或其中一些丢失)。如果你只想在本地玩hadoop而不关心它的数据,你可以hadoop namenode -format
要重新格式化它并从头开始,否则您需要从snn或以前备份的地方恢复编辑日志。