namenode工作机制
1、namenode职责
(1)负责客户端请求的响应
(2)元数据的管理(查询,修改)
2、元数据管理
namenode对数据的管理采用了三种存储形式:
- 内存元数据(NameSystem)
- 磁盘元数据镜像文件
- 数据操作日志文件(可通过日志运算出元数据)
2.1元数据存储机制
- 内存中有一份完整的元数据(内存meta data)
- 磁盘有一个“准完整”的元数据镜像(fsimage)文件(在namenode的工作目录中)
- 用于衔接内存metadata和持久化元数据镜像fsimage之间的操作日志(edits文件)
注意:
当客户端对hdfs中的文件进行新增或者修改操作,操作记录首先被记入edits日志文件中,当客户端操作成功后,相应的元数据会更新到内存meta.data中
2.2元数据手动查看
可以通过hdfs的一个工具来查看edits中的信息
bin/hdfs oev -i edits -o edits.xml
bin/hdfs oiv -i fsimage_0000000000000000087 -p XML -o fsimage.xml
2.3元数据的 checkpoint
(1)概念:
每隔一段时间,会由secondary namenode将namenode上积累的所有edits和一个最新的fsimage下载到本地,并加载到内存进行merge(这个过程称为checkpoint)
(2)checkpoint的详细过程:
(3)checkpoint 操作的触发条件配置参数:
#检查触发条件是否满足的频率,60秒
dfs.namenode.checkpoint.check.period=60
dfs.namenode.checkpoint.dir=file://${hadoop.tmp.dir}/dfs/namesecondary
#以上两个参数做checkpoint操作时,secondary namenode的本地工作目录