- 块的含义
块是HDFS存储数据的最小单元,块的类型包括:新添加的块、待移除的块、无效的块、损坏的块、正在构建中的块
- 块的汇报
DataNode的块汇报是在心跳的过程中进行的。
3.块的处理
多余副本块以及发生的场景:
① Recommission节点重新上线。运维操作引起。
② 人为重新设置副本块数。
③ 新添加的块记录在系统中被丢失。
多余副本块的处理分为两个子过程:
① 多余副本的选出
② 多余副本的处理
4.块的命令
hdfs fsck <path> [-list-corruptfileblocks|[-move | -delete | -openforwrite] [-files [-blocks [-locations | -racks ]]]]
<path> 目标扫描的路径名称
-move 移动损坏的文件到/lost+found目录下
-delete 删除损坏的文件
-files 输出被检测到的文件
-openforwrite 输出正在被写的文件
-includeSnapshots 如果检测的路径下包含了快照目录,输出快照信息
-list-corruptfileblocks 输出损坏块的信息
-blocks 输出块的报告信息
-locations 输出每个块的位置信息
-racks 输出块所属节点的机架信息
-storagepolicies 输出块上设置的存储策略信息
-blockId 输出指定块Id对应的块信息、所在机架信息等等
fsck使用场景:
① 损坏块、丢失块的检查与处理。如果检测出有丢失或损坏的块,通过-delete参数可以直接进行删除,防止丢失的文件块造成程序执行的异常。
② 块信息的查询。