HDFS JournalNode和NameNode是HDFS文件系统的关键组件。JournalNode负责记录NameNode的所有操作,NameNode负责管理HDFS文件系统中的所有数据。如果JournalNode或NameNode的硬盘损坏,可能会导致HDFS文件系统不可用。
如果部署了Cloudera的HDFS HA,那么在更换了新硬盘后,重启JournalNode会出现”JournalNotFormattedException: Journal Storage Directory /opt/dfs/jn/nameservice1 not formatted”这样的错误。原因是在新的硬盘上的jn目录下没有VERSION文件用来恢复。
解决方法是重新创建对应的目录结构,并拷贝其他JournalNode上的VERSION文件。之后重启JournalNode,会自动进行目录的初始化,并自动同步日志。
以下是修复HDFS JournalNode硬盘损坏的步骤:
mkdir -p /opt/dfs/jn/nameservice1/current/
- 拷贝其他JournalNode上的VERSION文件。
scp 目标服务器:/opt/dfs/jn/nameservice1/current/VERSION /opt/dfs/jn/nameservice1/current/VERSION
(3)更改JournalNode的权限。
chown -R hdfs:hdfs /opt/dfs/jn
重启JournalNode。
- service hadoop-journalnode restart
以下是修复HDFS NameNode硬盘损坏的步骤:
如果启动NameNode出现
We expected txid 266899638, but got txid 267088002.
方法一:可以运行以下命令进行修复:
hadoop namenode -recover
方法二:如果上面的命令出错,如果NameNode是HA的,首先从健康节点的NameNode拷贝到出故障的NameNode,然后重启看是否正常。
如果仍然无法修复,可以联系Cloudera支持获取帮助。
以下是一些额外的提示:
定期备份HDFS JournalNode和NameNode的硬盘。
使用高可用性(HA)配置HDFS JournalNode和NameNode。
监控HDFS JournalNode和NameNode的健康状况。
关注公众号“大模型全栈程序员”回复“大数据面试”获取800页左右大数据面试宝典 ,回复“大数据”获取多本大数据电子书