1.hdfs是如何存储数据的呢?
众所周知,hdfs分为namenode & datanode,NN 复制集群的元数据管理,DN的管理等
hdfs存储的基本单元是block
2.hdfs写文件流程
1.由client 发起写请求给NN, 返回DN(经过排序)及副本数;
2.写入数据块到最近的DN;
3. 第一个DN会同步数据到其它的DN 进行数据的冗余备份;
4. 循环3 直到写完所有的数据块;
5. DN 复制完成后,会告知NN,此时更新NN的数据块表,及DN表,持久化元信息;
整个过程如下图的小图1所示:
笔者画的process on 地址:
https://www.processon.com/view/link/5f3de2e0f346fb06decec33f
3.hdfs 读文件流程
HDfs一次写入多次读取,能支持高访问量。
读文件的过程
1.通过文件名请求NN获取文件的数据块信息;
2.NN返回数据块的信息,a列是数据块,b列是DN的位置信息;
3.遍历NN返回的数据块列表,从距离最近的DN开始读取数据;
如上图中的小图2所示</