重启后 HDFS 块损坏

Posted

技术标签:

【中文标题】重启后 HDFS 块损坏【英文标题】:HDFS blocks corrupted after reboot 【发布时间】:2017-03-09 10:16:22 【问题描述】:

我在 ubuntu 16.10 上有 Hadoop

一切正常:我能够在 HDFS 中上传输入文件并执行 map-reduce 操作。但是当我重新启动我的电脑时,所有 HDFS 块都损坏了,NameNode 以安全模式启动

所以我不得不

1) 离开安全模式

2) 删除所有损坏的块

hdfs fsck -delete

3)重新上传输入文件

然后它可以正常工作,直到下次重新启动。

有人可以帮我解决这个问题吗? 谢谢

【问题讨论】:

【参考方案1】:

我解决了我的问题。我使用此链接检查我的配置文件 http://www.bogotobogo.com/Hadoop/BigData_hadoop_Install_on_ubuntu_single_node_cluster.php

我忘记在我的 hdfs 目录上使用 sudo chown -R hduser:hadoop /usr/local/hadoop_tmp

【讨论】:

【参考方案2】:
Create folder like /dfs/ in your machine 
open hdfs-site.xml or hdfs-default.xml  
set this property "dfs.namenode.name.dir".

    Example:
    <property>
      <name>dfs.namenode.name.dir</name>
      <value>/dfs/</value>
      <description>Determines where on the local filesystem the DFS name node
          should store the name table(fsimage).  If this is a comma-delimited list
          of directories then the name table is replicated in all of the
          directories, for redundancy. </description>
    </property>

【讨论】:

github.com/facebookarchive/hadoop-20/blob/master/src/hdfs/… 你设置了datanode目录吗? 你是用cloudera manager还是手动安装?你能把所有的配置和xml文件发给我吗?

以上是关于重启后 HDFS 块损坏的主要内容,如果未能解决你的问题,请参考以下文章

重启集群造成块丢失问题org.apache.hadoop.hdfs.CannotObtainBlockLengthException: Cannot obtain block length for L

重启集群造成块丢失问题org.apache.hadoop.hdfs.CannotObtainBlockLengthException: Cannot obtain block length for L

Centos6.2 强制重启系统后导致系统文件损坏系统无法启动

linux操作系统故障处理-ext4文件系统超级块“can't read superblock”损坏修复

hbase设置ttl后出现坏块,重启后master abort 问题梳理

linux操作系统故障处理-ext4文件系统超级块损坏修复