HDFS的体系结构(namenode作用、datanode作用、block)、fsimage文件、edits文件和checkpoing检查点机制和Namenode开启过程
HDFS的体系结构
-------------------------
1.namenode[守护进程]作用:
管理文件系统名称空间;【fsimage元数据镜像文件】
管理客户端对文件的访问。【edits操作文件】
NameNode执行文件系统命名空间操作,如打开,关闭和重命名文件和目录【edits操作文件】
确定block到DataNode的映射(注意:心跳机制:status和blockreport;默认3秒一次)
2.datanode[守护进程]:
用于管理连接到它们所运行的节点的存储。【block信息:block和block.mate】
负责提供来自文件系统客户端的读取和写入请求
还执行块创建,删除;
3.block:文件被分成一个或多个块,这些块存储在一组DataNode中(默认3份)
元数据
-------------------------
1.查看fsimage文件
$>hdfs oiv -i fsimage_0000000000000000022 -o ~/fs22.xml -p XML
【
1000
1002
0
1073741826
22
16390
16385
DIRECTORY
1528043810446
hyxy:supergroup:rwxr-xr-x
9223372036854775807
-1
16386
DIRECTORY
user
1528043865470
hyxy:supergroup:rwxr-xr-x
-1
-1
16387
DIRECTORY
hyxy
1528044944833
hyxy:supergroup:rwxr-xr-x
-1
-1
16388
DIRECTORY
20180603
1528044017284
hyxy:supergroup:rwxr-xr-x
-1
-1
16390
FILE
text.txt
3
1528044017272
1528044016919
134217728
hyxy:supergroup:rw-r--r--
1073741826
1002
12
0
16385
16386
16386
16387
16387
16388
16388
16390
16385
0
0
1
】
hdfs:分布式文件系统【分布式{切块和复本}---文件系统{逻辑上的}】
镜像文件当中包含哪些信息,参照上述XML
2.查看edits文件
$>hdfs oev -i edits_inprogress_0000000000000000040 -o ~/ed.xml
【
-63
OP_START_LOG_SEGMENT
40
OP_MKDIR
41
0
16392
/hyxy
1528055285399
hyxy
supergroup
493
】
分析namenode开启过程
----------------------------
1.默认目录下{hadoop.tmp.dir/dfs/name/current},fsimage文件存储为两个,加载fsimage_txid最后一个。(txid=39)
2.加载edits_txid操作文件至内存中。元数据已全部加载至内存上。(txid=40-41)
3.保存checkpoint(检查点):合并fsimage和edits文件,重新生成新的镜像文件
4.等待接受来自datanode的block report
分析namenode运行过程(内存)
-----------------------------
1.记录对hdfs的编辑操作,追加edits_inprogress_txid
2.更新内存中的元数据;达到一定阈值后,运行checkpoint(检查点)
3.接受来自datanode的心跳信息
checkpoint(检查点机制)相关属性
----------------------------------------
1.checkpoint周期,默认为1小时。
dfs.namenode.checkpoint.period
3600
两个定期检查点之间的秒数。
2.txid的次数达到1百万次,也执行checkpoint;与周期无关
dfs.namenode.checkpoint.txns
1000000
无论'dfs.namenode.checkpoint.period'是否已经过期,Secondary NameNode或CheckpointNode都会为每个'dfs.namenode.checkpoint.txns'事务创建名称空间的检查点。
3.每隔60秒检查txid操作次数
dfs.namenode.checkpoint.check.period
60
SecondaryNameNode和CheckpointNode会每隔60秒查询NameNode以查询未检查点的事务数量。
注意:达到1小时或操作txid大于1百万次或edits文件大于64m???,均可触发checkpoint操作