hadoop fsck健康检查

简介: 昨天下午的时候检查生产环境的hadoop集群时,发现异常情况如下图: 简要的说明上图的意思,说明有这些文件没有满足副本份数,我副本份数设置的为2份,刚刚起初以为是这个文件只有一个副本了,结果去每台datanode上面去find第一个上图报的block文件时,每台datanode上都有这个block文件,当时真的是奇了怪了,副本是2(我指的是hdfs-site.
昨天下午的时候检查生产环境的hadoop集群时,发现异常情况如下图: img_f4ba26c3f6d65a0ea551b511784c5f17.jpg
简要的说明上图的意思,说明有这些文件没有满足副本份数,我副本份数设置的为2份,刚刚起初以为是这个文件只有一个副本了,结果去每台datanode上面去find第一个上图报的block文件时,每台datanode上都有这个block文件,当时真的是奇了怪了,副本是2(我指的是hdfs-site.xml文件里面设置的),每个datanode上都有这个block文件,我的是三个datanode加起来应该是3份,这个数肯定大于默认的副本数,所以应该也不是报副本份数啊!纠结中!
经过一番的查询资料,看到这篇博客对我的启发很大,地址我引用一下,博主别见怪啊!
里面说到一句话让我尝试了一下
img_3ec834ca5bea8c4b80d229a29a064a96.jpg
结果我查看了一下我的第一个报的block文件,看看文件的副本数是多少?
hadoop/bin/hadoop fs -ls /tmp/hadoop-hadoop/mapred/staging/hadoop/.staging/job_201207161728_0015/job.jar
Warning: $HADOOP_HOME is deprecated.
Found 1 items
-rw-r--r--    10 hadoop supergroup    3110243 2012-08-17 09:23 /tmp/hadoop-hadoop/mapred/staging/hadoop/.staging/job_201207161728_0015/job.jar
上述的红色字段我已标记出,看来问题出在这里了,我按照如下方法把它设置副本数为3
[hadoop@master ~]$ hadoop/bin/hadoop fs -setrep -R 3 /tmp/hadoop-hadoop/mapred/staging/hadoop/.staging/job_201207161728_0015/job.jar
说明一下上述的命令的意思,3就是副本份数,后面就是hdfs目录的路径,这样就说明把这个目录下的所有文件的副本份数都设置为了3。
再用hadoop/bin/hadoop fsck /查看一下,上述截图的第一个块文件未满足副本份数提示就消失了,依次操作,将所有的文件的份数都设置为3后,最后我们在fsck一下,得到的是下图:
img_88b854abc4d776bf5a053882d626265e.jpg
这样就是一个说明集群检查一切正常了!通过上述解决手段,我也大致推理出了fsck的检查工作原理:
它会去检查hdfs文件系统上所有文件的副本份数,然后去和所有datanode节点上的副本块的总数进行比较。不知道推理的对不对,希望知道原理的朋友别吐槽!另外如果你用命令行设置了副本数,再重启hadoop集群的话,那么副本数还是以你设置的hdfs-site.xml文件里面值为准!
在这里我做个小实验,看看效果如何?
过程我就不截图了,说说结果吧!
1、首先我在本地新建一个文件,然后把文件上传到hdfs上。
2、在所有的datanode上找了只有两份副本,因为我hdfs-site.xml文件里面设置的为2。
3、查看hdfs上的文件,副本数的数也为2。
4、将datanode上有副本的文件复制到本节点其余的subdir*目录下,block块文件是4份。
5、我再用fsck查看,仍然没有报有超出的副本文件。
这里我说一下大致原因,当上传一个文件到hdfs文件系统时,它应该有一些相关的信息对应了datanode上的block块文件,因此不会去寻找别的subdir*目录,所以fsck时不会报超出副本的文件。
最后说一下这个hadoop/bin/hadoop fsck /输出的一些信息的大致意思,仅供参考:
Over-replicated blocks:        0 (0.0 %)   副本数高出设定默认复制级别参数的数据块文件所占比率
Under-replicated blocks:       0 (0.0 %)   副本数低于设定默认复制级别参数的数据块文件所占比率
Mis-replicated blocks:         0 (0.0 %)   丢失的副本块文件所占比率
Default replication factor:    2           副本份数
Average block replication:     2.658721    实际平均副本数
Corrupt blocks:                0           损坏的block数
Missing replicas:              0 (0.0 %)   丢失的副本数
Number of data-nodes:          3           数据节点数
Number of racks:               1           机架数,如果没配置机架,默认都是1
FSCK ended at Fri Dec 07 10:18:18 CST 2012 in 113 milliseconds

The filesystem under path '/' is HEALTHY    检测文件系统正常


目录
相关文章
|
机器学习/深度学习 分布式计算 Hadoop
hadoop自检查
hadoop自检查
31 0
CDH5.6下线Hdfs的DataNode
CDH5.6下线Hdfs的DataNode
188 0
|
3月前
|
存储 分布式计算 资源调度
|
4月前
|
分布式计算 Hadoop
Hadoop中NameNode故障
【7月更文挑战第11天】
63 3
|
4月前
|
存储 分布式计算 Hadoop
Hadoop中DataNode故障
【7月更文挑战第11天】
179 1
|
6月前
|
分布式计算 资源调度 Hadoop
重启Hadoop服务
【4月更文挑战第18天】重启Hadoop服务涉及五个步骤:1) 停止所有服务,如使用`stop-all.sh`;2) 检查服务是否停止,通过jps命令;3) 清理临时数据和日志;4) 使用`start-all.sh`重启服务;5) 再次用jps确认服务启动。注意,步骤依Hadoop版本和配置而异,操作前需谨慎并参考官方文档,以防影响运行中的应用程序。
84 2
|
分布式计算 Hadoop Linux
hadoop启动hdfs异常
hadoop启动hdfs异常
224 0
|
分布式计算 网络协议 Hadoop
Hadoop HDFS NFS GateWay部署深入详解
目的:通过挂载的方式,可以类似访问本地磁盘的方式一样的访问Hadoop文件,简单、方便、快捷。
635 0
Hadoop HDFS NFS GateWay部署深入详解
|
分布式计算 Hadoop
Hadoop挂载
hadoop挂载,前提是配置了CDH的源 yum install hadoop-hdfs-fuse –y mkdir -p /services/data/hdfs hadoop-fuse-dfs dfs://10.
1129 0
|
分布式计算 Hadoop
对HDFS的HA进行测试
查看目录 bin/hadfs dfs -ls / 报错: 报错 错误原因:是因为client在访问代理的时候出错了。找不到ns1。
1166 0