namenode的工作机制(edits为编辑日志,fsimage为镜像文件)
1、secondaryNamenode请求是否需要checkpoint
2、请求执行checkpoint
checkpoint触发条件:
1)定时
2)edits数据满了
1、加载日志与镜像文件
2、元数据的增删改查
3、滚动日志
4、将滚动的日志拷贝到sn中
5、加载到内存并合并
6、生成新的镜像文件
7、将镜像文件拷贝到namenode中
8、fsimage.checkpoint重命名
9、发送到sn中
10、加载到内存
checkpoint设置
hdfs-default.xml文件
<property>
<name>dfs.namenode.checkpoint.period</name>
<value>3600</value>
<description>The number of seconds between two periodic checkpoints.
</description>
</property>
<property>
<name>dfs.namenode.checkpoint.check.period</name>
<value>60</value>
<description>The SecondaryNameNode and CheckpointNode will poll the nameNode every 'dfs.namenode.check.period'
seconds to query the number of uncheckpointed transactions.
</description>
</property>
<property>
<name>dfs.namenode.checkpoint.txns</name>
<value>1000000</value>
<description>The SecondaryNameNode or CheckpointNode will create a checkpoint of the namespace every 'dfs.namenode.checkpoint.txns' transactions, regardless of whether 'dfs.namenode.checkpoint' has expired.
</description>
</property>
datanode工作机制
1、datanode启动后首先到namenode注册
2、注册成功
3、每隔一段时间datanode上报所有块信息(心跳信息)
4、如果超过10分钟没有收到datanode的心跳,则认为节点不可用
datanode中的blk_1中有数据,数据的长度,校验和,时间戳