重启后 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”损坏修复