简介:这里对之前的hdfs、yarn、MR相关概念做一个总结,方便快速阅读理解。
一、HDFS
HDFS是分布式文件系统,有高容错性的特点,可以部署在价格低廉的服务器上,主要包含namenode和datanode。
Namenode是hdfs中文件目录和文件分配管理者,它保存着文件名和数据块的映射管理,数据块和datanode列表的映射关系。其中文件名和数据块的关系保存在磁盘上,但是namenode上不保存数据块和datanode列表的关系,该列表是通过datanode上报建立起来的。
Namenode上的有三种交互,1、client访问namenode获取的相关datanode的信息。2、datanode心跳汇报当前block的情况。3、secondarynamenode做checkpoint交互。
DataNode它负责实际的数据存储,并将数据息定期汇报给NameNode。DataNode以固定大小的block为基本单位组织文件内容,默认情况下block大小为128MB。当用户上传一个大的文件到HDFS上时,该文件会被切分成若干个block,分别存储到不同的DataNode;同时,为了保证数据可靠,会将同一个block以流水线方式写到若干个(默认是3,该参数可配置)不同的DataNode上。这种文件切割后存储的过程是对用户透明的。
CheckPoint的时间点
fs.checkpoint.size 规定edits文件的最大值,一旦超过这个值则强制checkpoint,不管是否到达最大时间间隔。默认大小是64M。
- 流程解析
1、每隔两个小时,或者edits文件超过最大值时,SecondaryNameNode通知NameNode切换edits,
此时在NameNode中生成一个名为edits.new的新edits,在fsimage被替换之前,所有的操作都会写到edits.new中。
</