Namenode元数据细节

 1. Namenode会序列化文件的属性、文件块id、大小的元信息到磁盘,
 并不会序列化文件块的具体位置信息到磁盘,文件块具体存放位置在集群
 启动时Datanode进程汇报给Namenode,这个过程中进群处于安全模式
 状态,对外不提供写操作,如下为fsImage文件片段信息:
 <?xml version="1.0"?>
<fsimage>
  <inode>
   <id>16387</id>
   <!--以下是文件的属性相关信息-->
   <type>FILE</type>
   <name>source.zip</name>
   <replication>1</replication>
   <mtime>1585630920747</mtime>
   <atime>1585630919218</atime>
   <preferredBlockSize>134217728</preferredBlockSize>
   <permission>root:supergroup:0644</permission>
   <!--以下是文件的block个数相关信息-->
   <blocks>
    <block>
     <id>1073741825</id>
     <genstamp>1001</genstamp>
     <numBytes>134217728</numBytes>
    </block>
    <block>
     <id>1073741826</id>
     <genstamp>1002</genstamp>
     <numBytes>58982940</numBytes>
    </block>
   </blocks>
   <storagePolicyId>0</storagePolicyId>
  </inode>
</fsimage>
[root@bigdata131:~/tools]# hdfs fsck /input/source.zip -files -blocks -locations -racks
Connecting to namenode via http://bigdata131:50070/fsck?ugi=root&files=1&blocks=1&locations=1&racks=1&path=%2Finput%2Fsource.zip
FSCK started by root (auth:SIMPLE) from /192.168.137.131 for path /input/source.zip at Tue Mar 31 13:20:54 CST 2020
/input/source.zip 193200668 bytes, 2 block(s):  OK
0. BP-525204384-192.168.137.131-1585630158186:blk_1073741825_1001 len=134217728 Live_repl=1 [/default-rack/192.168.137.131:50010]
1. BP-525204384-192.168.137.131-1585630158186:blk_1073741826_1002 len=58982940 Live_repl=1 [/default-rack/192.168.137.131:50010]
通过命令我们可以获取到block具体存放的节点信息:
blk_1073741825_1001 /default-rack/192.168.137.131
blk_1073741826_1002 /default-rack/192.168.137.131
这说明这部分的元信息是由Datanode汇报给Namenode并且常驻内存中的,
这么做是因为分布式环境下,Namenode无法确认任何一台Datanode在某
一时刻是否是活着的,为了保证数据的一致性以及对外服务的正确性,
所以Hadoop并没有将这部分元信息序列化到磁盘中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值