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
含义:将fsimage0000000000000000022的这个文件导出到~/fs22.xml 以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
含义:将edits_inprogress_0000000000000000040文件导出到~/ed.xml 默认为XML格式
-63 OP_START_LOG_SEGMENT 40 OP_MKDIR 41 0 16392 /hyxy 1528055285399 hyxy supergroup 493
edits文件记录的是我们的操作,里面有个record标签,下面就是记录的我们的操作。
namenode的开启和运行过程 |
一:开启
1:默认目录下{hadoop.tmp.dir/dfs/name/current},fsimage文件存储为2个,加载fsimage_txid最后一个。
2:加载edits_txid操作文件至内存中,元数据已经全部加在在内存上。
3:保存checkpoint(检查点):合并fsimage和edits文件,重新生成新的镜像文件。
4:等待接受来自datanode的block report。
二:运行(内存)
1:记录对hdfs的编辑操作,追加到edits_inprogress_txid
2:更新内存中的元数据,达到一定的阈值后,运行checkpoint(检查点)
3:接受来自datanode的心跳信息
checkpoint检查点机制(相关属性) |
1:checkpoint周期,默认为3600秒
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以查询未检查点的事务数量。
上述两个条件均可以触发checkpoint。