NameNode概述

参考: HDFS NameNode内存全景

1.概述

从NameNode涉及到的主要操作来讲,主要概念如下:

  • 目录树:命名空间namespace
  • 数据块管理
  • 租约管理
  • FSNamesystem:NameNode逻辑门面类
  • NameNode HA下的启动与停止

从内存的角度来讲,分类如下:

  • 元数据:
  • namespace
  • blockManager
  • NetWorkTopology
  • Other: 租约等

1. namespace

Namespace保存了目录树及每个目录/文件节点的属性。除在内存常驻外,这部分数据会定期flush到持久化设备上,生成一个新的FsImage文件。

在整个Namespace目录树中存在两种不同类型的INode数据结构:INodeDirectory和INodeFile.

2.blockManager

BlocksMap在NameNode内存空间占据很大比例,由BlockManager统一管理,相比Namespace,BlockManager管理的这部分数据要复杂的多。Namespace与BlockManager之间通过前面提到的INodeFile有序Blocks数组关联到一起。图5所示BlockManager管理的内存结构。

2. 类

1. INode

目录文件数据结构。

2. Feature

INode的其他属性:如配额等。

3. FSEditlog

editlog:实时更新。
1. transactionid
每一次客户端RPC对命名空间的修改,NN就会在editlog中发起一个新的transaction用于记录这次操作,会用唯一的transactionid来标识。

[hadoop@hadoop1 nn]$ tree
.
├── current
│   ├── edits_0000000000000000001-0000000000000000381
│   ├── edits_0000000000000000382-0000000000000010495
│   ├── edits_0000000000000010496-0000000000000010496
│   ├── edits_0000000000000010497-0000000000000010501
│   ├── edits_0000000000000010502-0000000000000028266
│   ├── edits_0000000000000028267-0000000000000028267
│   ├── edits_inprogress_0000000000000028268
│   ├── fsimage_0000000000000010495
│   ├── fsimage_0000000000000010495.md5
│   ├── fsimage_0000000000000028266
│   ├── fsimage_0000000000000028266.md5
│   ├── seen_txid
│   └── VERSION
└── in_use.lock
  • edits_startid~endid: 两个id之间的所有事务。
  • edits_inprogress: 正在处理的editlog。

2. FSEditlog状态机

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值