欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > Hadoop--NameSpace(名称空间)

Hadoop--NameSpace(名称空间)

2025/2/25 15:18:54 来源:https://blog.csdn.net/2301_77948840/article/details/145802066  浏览:    关键词:Hadoop--NameSpace(名称空间)

1. 名称空间的定义

  HDFS 的名称空间是一个逻辑上的文件系统目录树,类似于传统文件系统的目录结构。

组成

  • 目录:用于组织文件的逻辑容器。
  • 文件:存储在 HDFS 中的实际数据单元。
  • 元数据:包括文件名、权限、所有者、文件大小、创建时间、修改时间等信息。

2. 名称空间的作用

名称空间的主要作用是:

  • 组织文件
    通过目录树的形式组织文件,方便用户管理和访问。
  • 维护元数据
    记录文件和目录的元数据信息(如权限、所有者、大小等)。
  • 映射文件与数据块
    记录每个文件对应的数据块(Block)列表,以及数据块在 DataNode 上的存储位置。

3. 名称空间的存储

(1)NameNode 内存

  名称空间的元数据(包括目录树、文件元数据、文件与数据块的映射关系)存储在 NameNode 的内存中。

  这是为了快速响应客户端的元数据操作请求(如创建文件、删除文件、列出目录等)。

(2)持久化存储:

  为了确保元数据的高可用性,NameNode 会将名称空间的元数据持久化到磁盘中,存储在两个文件中:

  • fsimage:名称空间的完整镜像文件,记录了某一时刻的完整元数据。
  • edits 日志:记录对名称空间的所有修改操作(如创建文件、删除文件等),是一个追加写的日志文件。

4. 名称空间的操作

名称空间支持以下常见操作:

  • 创建文件或目录
    在名称空间中添加新的文件或目录。

  • 删除文件或目录
    从名称空间中移除文件或目录。

  • 重命名文件或目录
    修改文件或目录的名称。

  • 列出目录内容
    获取指定目录下的文件和子目录列表。

  • 获取文件元数据
    查询文件的元数据信息(如权限、大小、创建时间等)。

5. 名称空间与数据块的关系

  每个文件在 HDFS 中被切分为一个或多个数据块(Block,默认大小为 128MB)。名称空间记录了每个文件对应的数据块列表。数据块实际存储在 DataNode 上,NameNode 通过名称空间中的映射关系定位数据块。

6. 名称空间的限制

(1)内存限制

  名称空间的元数据存储在 NameNode 的内存中,因此 NameNode 的内存大小限制了名称空间的规模。每个文件或目录的元数据对象大约占用 150 字节的内存空间。如果有大量小文件,会导致 NameNode 内存压力过大。

(2)单点故障:

  在非高可用(HA)模式下,NameNode 是单点故障,如果 NameNode 崩溃,名称空间将无法访问。

7. 名称空间的高可用性

  在 Hadoop 2.x 及更高版本中,引入了 NameNode 高可用(HA) 方案,通过以下方式解决名称空间的单点故障问题:

  • Active NameNode 和 Standby NameNode
      两个 NameNode 同时运行,一个处于 Active 状态,负责处理客户端请求;另一个处于 Standby 状态,实时同步 Active NameNode 的名称空间。
  • 共享存储(如 QJM 或 NFS)
      Active NameNode 将 edits 日志写入共享存储,Standby NameNode 从共享存储读取 edits 日志并应用到自己的内存中,保持名称空间的实时同步。
  • 故障切换
      如果 Active NameNode 崩溃,Standby NameNode 会立即接管工作,确保名称空间的高可用性。

总结

  HDFS 的名称空间是一个逻辑上的文件系统目录树,用于组织文件和目录,并维护元数据信息。名称空间的元数据存储在 NameNode 的内存中,并持久化到磁盘的 fsimage 和 edits 日志 文件中。

作用

  • 组织文件和目录。
  • 维护文件和目录的元数据。
  • 映射文件与数据块的关系。

限制

  • 受 NameNode 内存大小的限制。
  • 在非 HA 模式下存在单点故障问题。

高可用性

通过 NameNode HA 方案解决单点故障问题。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词