# 20200928 大数据学习计划-HDFS基础知识
一、角色以及作用说明
1.Client:实现文件切分;与NameNode交互,获取文件的位置信息;与DataNode交互,读取对应的数据块;管理和访问HDFS。
2.NameNode:管理HDFS的命名空间;管理数据块的映射关系;配置副本策略;客户端的读写请求。
3.DataNode:上报当前存储的数据块给NameNode;接收NameNode的指令来创建、删除、移动本地数据块。
4.Block:一个文件是被切分成多个 Block,并且每个 block 有多个副本,这些副本被分布在多个 datanode 上,它数据 HDFS 的最小存储单元。
5.元数据:文件系统中文件和目录的信息以及文件和 block 的对应关系。
6.命名空间镜像(FSImage):Fslmage 就是保存某一个时刻元数据的信息的磁盘文件。
7.镜像编辑日志 (EditLog):namenode 引入了镜像编辑日志,将每次的改动都保存在日志中,如果 namenode 机器宕机或者 amenode 进程挂掉后可以使用 FSlmage 和 EditLog 联合恢复内存元数据。
二、读写流程
读流程(图1):向NameNode获取指定文件DataNode信息,向就近DN读取该文件所有block,如果文件未结束,则继续向NN获取该文件得其它DN信息
写流程(图2):先向NN的namespace写入一个entry,然后将文件切分成多个packet,通过socket连接发送到第一个DN,该DN会将packet发送给所属的DN-pipeline
三、高级应用(图3)
1.HA机制(NameNode主备(热备)机制)
2.ZKFC(ZooKeeperFailoverController,主备切换的总体控制)
3.QJM(备节点实时性的保障)