NameNode概念
1、是整个文件系统的管理节点。维护整个文件系统的文件目录书u,文件/目录的元数据和每个文件的对应的数据块列表。接收用户的操作请求。
2、文件包括
2.1 fsimage : 元数据镜像文件。存储某一时间段NameNode内存元数据信息
2.2 edits : 操作日志文件
2.3 fstime: 保持最近一次checkpoint的时间
<
property
>
<
name
>
hadoop.tmp.dir
</
name
>
<
value
>
/ hadoop/hadoop -2.4.1/tmp
</
value
>
</
property
>
/
hadoop
/
hadoop
-2.4.1/
tmp
ls
dfs nm-local-dir
ls
data name namesecondary
cd name/current
ls
fsimage edits
其中: fsimage存储NameNode中内存中的元数据信息,实际是内存数据序列化到磁盘上。
NameNode工作特点
1、NameNode 始终在内存保存metadata,用于处理“读请求”
2、写请求,NameNode会首先些editlog到磁盘,即向edits文件写日志,成功返回后,才会修改内存,并且客户端返回。
3、hadoop会维护一个fsimage,就是NameNode中的metadata的镜像,但是fsimage不会随时与namenode 内存中的metadta保持一致,而是每隔一段时间通过合并edits文件来更新内容。Secondary namenode就是用来合并fsimage和edits文件来更新NameNode的metadata。
Secondary NameNode
1、HA的一个解决方案。但不支持热备。配置即可
2、执行过程,从NameNode上下载元数据(fsimage,edits),然后把二者合并,生成新的fsimage,在本地保存,并将其推送到NameNode,替换旧的fsimage。
3、默认在安装在NameNode节点上,但这样不安全
什么时候checkpoint?
1、fs.checkpoint.period 两次checkpoint的时间
2、fs.checkpoint.size 规定edits文件最大数值,默认情况64M
NameNode和SecondaryNameNode间的交互过程