1、name node管理元数据html
元数据:hdfs的目录结构以及文件文件的块信息(块副本数量,存放位置等)。node
Namenode把元数据存在内存中,以方便改动,同时也会在某个时间点上面将其写到磁盘上(fsimage镜像文件)。同时还会把引发元数据变化的操做记录在edits日志文件中。从新启动或者是服务挂了的时候,也能够从磁盘文件和日志文件中还原数据。redis
长此以往edits文件会愈来愈大,若是重启可能会花费很长时间。这个时候就有了Sencondary NameNode,Secondary NameNode按期合并fsimage和edits日志,把edits日志文件大小控制在一个限度下。由于内存需求和NameNode差很少,因此通常都是另外配置一台机器。oop
Sencondary NameNode整合完毕会将新的fsimages传回给namenode。这个过程叫作checkpoint。那么什么执行这个操做呢。默认的时一个小时,也能够经过参数配置spa
fs.checkpoint.period 设置checkpoint间隔时间日志
fs.checkpoint.size 规定edits文件的最大值,一旦超过这个值则强制checkpoint,无论是否到达最大时间间隔。htm
dfs.namenode.checkpoint.dir Sencondary NameNode保存数据的位置blog
这个过程和redis的混合持久化有点点相似,RDB快照和AOF重放内存
2、读写文件过程hadoop