【HDFS基础】NameNode内存详解

本文深入探讨了HDFS NameNode的内存管理,包括Namespace、BlockManager、NetworkTopology和LeaseManager的内存解析。随着数据规模的增长,NameNode面临启动时间变长、性能下降、频繁Full GC等问题。解决方法包括NameNode水平扩展、引入外部系统存储元数据、合并小文件、调整BlockSize等。文中列举了百度和淘宝的解决方案来缓解NameNode内存压力。
摘要由CSDN通过智能技术生成

定义

  • NameNode管理着整个HDFS文件系统的元数据。

  • 从架构设计上看,元数据大致分成两个层次:

    • Namespace管理层:负责管理文件系统中的树状目录结构以及文件与数据块的映射关系;
    • 块管理层:负责管理文件系统中文件的物理块与实际存储位置的映射关系BlocksMap。
  • Namespace管理的元数据除内存常驻外,也会周期Flush到持久化设备上FsImage文件;BlocksMap元数据只在内存中存在;当NameNode发生重启,首先从持久化设备中读取FsImage构建Namespace,之后根据DataNode的汇报信息重新构造BlocksMap。这两部分数据结构是占据了NameNode大部分JVM Heap空间。

这里写图片描述

NameNode内存的组成

NameNode内存主要由Namespace、BlocksMap、NetworkTopology及其它部分组成

  • Namespace:维护整个文件系统的目录树结构及目录树上的状态变化;
  • BlockManager:维护整个文件系统中与数据块相关的信息及数据块的状态变化;
  • NetworkTopology:维护机架拓扑及DataNode信息,机架感知的基础;
  • 其它:
    • LeaseManager:读写的互斥同步就是靠Lease实现,支持HDFS的Write-Once-Read-Many的核心数据结构;
    • CacheManager:Hadoop 2.3.0引入的集中式缓存新特性,支持集中式缓存的管理,实现memory-locality提升读性能;
    • SnapshotManager:Hadoop 2.1.0引入的Snapshot新特性,用于数据备份、回滚,以防止因用户误操作导致集群出现数据问题;
    • DelegationTokenSecretManager:管理HDFS的安全访问;
      另外还有临时数据信
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值