namenode文件 https://blog.csdn.net/qq_26442553/article/details/78529256
读写精讲:https://cloud.tencent.com/developer/article/1023850
NN:
写入文件时:
首先改动的是edit文件,fsimage暂时并不会改变。
DN:
目录详解:https://blog.csdn.net/baiye_xing/article/details/76268495
这两个目录都是用于实际存储HDFS BLOCK的数据,里面包含许多block_xx文件以及相应的.meta文件,.meta文件包含了checksum信息。
块的元数据信息(使用.meta后缀标识)。一个文件块由存储的原始文件字节组成,元数据文件由一个包含版本和类型信息的头文件和一系列块的区域校验和组成。
【实验】
当实际存储一个文件时:
slave2和slave3机器上均有相同的块。
如下:
再传一个文件时:
可以看到多了一个数据块:
现在手动破坏一个块,看能不能恢复:
【1】只删除数据块,保留该块元数据。
(1)本节点看报错,但也能正常打印结果;
(2)其他正常节点上看正常;
(3)从其他不适datanode节点看也正常,说明会取正常块。
2机器报错,但最后也能正常打印结果:
3机器正常:
1机器不是datanode,也正常
那么,datenode丢失的数据块何时恢复呢???等等看。。。