我收到java.io.IOException:启动Namenode时无法加载FSImage文件
ERROR org.apache.hadoop.hdfs.server.namenode.FSImage: Failed to load image from FSImageFile(file=/opt1/dfs/nn/current/fsimage_0000000000023479779, cpktTxId=0000000000023479779)
java.io.IOException: Unexpected block size: -1945969516689645797
java.io.IOException: Failed to load an FSImage file!
由于这个原因,namenode还没有开始。 我的群集中有1个namenode,1个seconday namenode和3个datanode。
有人可以帮助我恢复我的群集。
答案 0 :(得分:0)
尝试格式化namenode: hadoop namenode -format
请注意,要获得格式化的访问权限,必须以hdfs用户身份执行命令。 例如,从cloudera用户到hdfs的交换机执行以下操作:
sudo bash
su - hdfs
如果您仍然遇到有关datanode的错误,我可能需要清除datanode文件夹:
首先尝试删除datanode文件夹(您可以在 dos.data.dir,dfs.datanode.data.dir 下的配置文件中找到它。)
如果您有cloudera-quickstart-vm,则位置为 / var / lib / hadoop-hdfs / cache / hdfs / dfs / data
答案 1 :(得分:0)
使用以下命令停止所有数据节点和辅助名称节点以及格式名称节点:
sudo -u hdfs hdfs namenode -format
重新启动名称节点和数据节点