分布式存储 HDFS 与 GFS 的设计差异

分布式存储 HDFS 与 GFS 的设计差异

作者:-mindwind- 2015-10-19 11:41:30

云计算

分布式 我们知道 HDFS 最早是根据 GFS(Google File System)的论文概念模型来设计实现的。HDFS 参照了它所以大部分架构设计概念是类似的,比如 HDFS NameNode 相当于 GFS Master,HDFS DataNode 相当于 GFS chunkserver。

「后端分布式系列」前面关于 HDFS 的一些文章介绍了它的整体架构和一些关键部件的设计实现要点。

我们知道 HDFS 最早是根据 GFS(Google File System)的论文概念模型来设计实现的。

然后呢,我就去把 GFS 的原始论文找出来仔细看了遍,GFS 的整体架构图如下:

 

HDFS 参照了它所以大部分架构设计概念是类似的,比如 HDFS NameNode 相当于 GFS Master,HDFS DataNode 相当于 GFS chunkserver。

但还有些细节不同的地方,所以本文主要分析下不同的地方。

写入模型

HDFS 在考虑写入模型时做了一个简化,就是同一时刻只允许一个写入者或追加者。

在这个模型下同一个文件同一个时刻只允许一个客户端写入或追加。

而 GFS 则允许同一时刻多个客户端并发写入或追加同一文件。

允许并发写入带来了更复杂的一致性问题。

多个客户端并发写入时,它们之间的顺序是无法保证的,同一个客户端连续追加成功的多个记录也可能被打断。

这意味着一个客户端在连续写入文件数据时,它的数据最终在文件中的分布可能是不连续的。

所谓一致性就是,对同一个文件,所有的客户端看到的数据是一致的,不管它们是从哪个副本读取的。

如果允许多个客户端同时写一个文件,怎么保证写入数据在多个副本间一致?

我们前面讲 HDFS 时它只允许一个写入者按流水线方式写入多个副本,写入顺序一致,写入完成后数据将保持最终一致。

而对多个客户端而言,就必须让所有同时写入的客户端按同一种流水线方式去写入,才可能保证写入顺序一致。

这个写入流程我们下一节详细分析。

写入流程

GFS 使用租约机制来保障在跨多个副本的数据写入中保持顺序一致性。

GFS Master 将 chunk 租约发放给其中一个副本,这个副本我们就称为主副本,其他副本称为次副本。

由主副本来确定一个针对该 chunk 的写入顺序,次副本则遵守这个顺序,这样就保障了全局顺序一致性。

chunk 租约机制的设计主要是为了减轻 Master 的负担,由主副本所在的 chunkserver 来承担流水线顺序的安排。

如下图,我们详细描述下这个过程。

 

  1. 客户端请求 Master 询问哪个 chunkserver 持有租约以及其他副本的位置。如果没有 chunkserver 持有租约,说明该 chunk 最近没有写操作。Master 则选择将租约授权给其中一台 chunkserver。
  2. Master 返回客户端主副本和次副本的位置信息。客户端缓存这些信息以备将来使用。客户端以后不再需要联系 Master,除非主副本所在 chunkserver 不可用或返回租约过期了。
  3. 客户端选择***的网络顺序推送数据,chunkserver 将数据先缓存在内部的 LRU 缓存中。GFS 中采用数据流和控制流分离的方法,从而能够基于网络拓扑结构更好地调度数据流的传输。
  4. 一旦所有的副本确认收到了数据,客户端将发送一个写请求控制命令到主副本。由主副本分配连续的序列号来确定最终的写入顺序。
  5. 主副本转发写请求到所有次副本,次副本按主副本安排的顺序执行写入操作。
  6. 次副本写完后向主副本应答确认操作完成。
  7. ***主副本应答客户端,若任意副本写入过程中出现错误,将报告给客户端,由客户端发起重试。

GFS 和 HDFS 的写入流程都采用了流水线方式,但 HDFS 没有分离数据流和控制流。

HDFS 的数据流水线写入在网络上的传输顺序与最终写入文件的顺序一致。

而 GFS 数据在网络上的传输顺序与最终写入文件的顺序可能不一致。

GFS 在支持并发写入和优化网络数据传输方面做出了***的折衷。

总结

GFS 的论文发表于 2003 年,后来大部分的分布式文件系统设计实现或多或少都参考了 GFS 的设计思路。

而 HDFS 算是开源分布式文件系统中最完整实现了 GFS 论文中的概念模型。

但 HDFS 依然简化了 GFS 中关于并发写的思路,本文就两者的写入模型和过程做了一些对比说明,并希望引发一些思考。

博文出处:http://blog.csdn.net/mindfloating/article/details/49103611

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/282454.html<

(0)
管理的头像管理
上一篇2025-05-13 11:34
下一篇 2025-05-13 11:35

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注