HDFS Federation

http://hadoop.apache.org/docs/r2.9.0/hadoop-project-dist/hadoop-hdfs/Federation.html

Background

HDFS有两个主要的层:

  • Namespace
    • 由目录、文件和块组成
    • 它支持所有的文件系统命名空间操作,比如,创建、删除、修改、查看文件或目录
  • Block Storage Service
    • Block Management(在NameNode中执行)
      • 管理DataNode集群中的成员
      • 处理Block报告,并且维护Block的位置
      • 支持block相关操作,比如,创建、删除、修改、查看block位置
      • 管理副本的位置,block的复制
    • Storage
      • 由DataNode来提供,存储block到本地文件系统,并提供读写访问

PS:就像图中画的那样,HDFS主要包括两方面:NameSpace和Block Storage。HDFS中有两种类型的节点,NameNode负责NameSpace和Block Management,而DataNode负责Storage

 

在先前的HDFS架构中,整个集群只允许有一个namespace,一个NameNode来管理这个namespace。HDFS Federation通过支持多个NameNodes/namespaces来突破这种限制。

Multiple Namenodes/Namespaces

为了水平的扩展name服务,federation采用多个独立的NameNodes/namespaces。NameNodes是独立的,彼此之间不需要联系和协调。DataNodes被用来作为所有NameNodes的公共存储。每一个DataNode会注册到集群中的所有NameNode。DataNode发送周期性的心跳和block报告。它们也处理来自NameNode的命令。

用户可能用ViewFs创建个性化的namespace views。ViewFs和Linux系统中挂载表很类似。

Block Pool

一个Block Pool是属于某个namespace下的一系列block。DataNode存储集群中所有block pool的块。每一个block pool被独立管理。一个namespace为一个新block生产Block ID的时候不需要管其它的namespace。一个NameNode失败不会影响这个DataNode为集群中的其它NameNode提供服务。

一个Namespace和它的block pool一起被叫做“Namespace Volume”。它是一个独立的管理单元。当一个NameNode/namespace被删除的时候,在DataNode中与之相应的block pool也会被删除。在集群升级的时候,每个namespace volume作为一个单元被升级。(PS:block pool是一系列的block,所以当namespace被删除的时候,属于这个namespace的所有block也会被删除)

 



欢迎各位转载,但必须在文章页面中给出作者和原文链接!
posted @   废物大师兄  阅读(1006)  评论(0编辑  收藏  举报
编辑推荐:
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
阅读排行:
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· Vite CVE-2025-30208 安全漏洞
· 《HelloGitHub》第 108 期
· MQ 如何保证数据一致性?
· 一个基于 .NET 开源免费的异地组网和内网穿透工具

喜欢请打赏

扫描二维码打赏

支付宝打赏

点击右上角即可分享
微信分享提示