GFS分布式

news/2024/11/13 3:56:19/

GFS是什么?
1.1 简单介绍
这个问题说大也大,说小也小。GFS是Google File System的缩写,字面意义上就是Google的文件系统,技术层面上来讲,GFS是Google在2003年前后创建的可扩展分布式文件系统 ,用来满足 Google 不断扩展的数据处理需求。GFS 为大型网络和连接的节点提供容错、可靠性、可扩展性、可用性和性能。GFS 由多个由低成本商品硬件组件构建的存储系统组成。它经过优化以适应 Google 的不同数据使用和存储需求,例如其搜索引擎会生成大量必须存储的数据。在我看来这个系统最大的亮点有两个,一个是使用集群的概念,将硬件设施连接起来共同进行文件存储任务;另外一个是充分利用了现成服务器的优势,同时最大限度地减少了硬件弱点。

为什么要用GFS?
大量数据的存储会面临很多的难点:

大数据下需要良好的表现就需要分片和容错。在具体操作过程中,涉及到容错一般使用副本来解决,然而副本的使用会面临不一致问题。如果有一致性的要求,就会导致表现降低。

所谓的一致性,就是在集群中表现的像与一台机器或一个副本进行交互那样

因为GFS不但是一个理论成熟的框架结构,更是一种通过长期实际使用证明了其优秀性能的分布式架构。GFS是一种松散一致性模型,这是其具有优越的性能主要原因之一。

松散一致性模型关键:

依靠添加而不是重写
检查点
自我验证(校验和)
自我认证记录

GFS基本结构——GFS master、GFS chunkServer、client
GFS master(主服务器)、GFS chunkServer(数据块服务器)、client(客户端)三者可简单理解为图书馆关系。client相当于图书馆,GFS master相当于图书馆管理员,GFS chunkServer相当于图书馆中的书柜。我们通过图书馆client为了借到书chunk(书即是我们存储的一个个数据块chunk),首先要通过图书管理员GFS master获得目标书籍chunk的书柜chunkServer的地址,然后找到书柜chunkServer取得其中的一本书chunk。因此GFS master图书管理员不清楚书里的内容,只负责记录书的位置,借出和归还,因此只记录少量的位置数据。我们通过GFS master获得书chunk的位置,然后拿着这个位置就能找到目标chunk,chunk即是海量数据分割后的一个个小块,其中记录大量数据。
在这里插入图片描述

要点:

Master通过lease(租约)和Primary Replica(主副本)本来构建交互的流程。

Master是做出决策、创建新的块和赋值,并协调各种系统范围的活动,以保证块完全复制,平衡所有chunkserver的负载,同时还负责垃圾回收。

Master的操作通过锁来保证命名空间范围内的序列化

主副本是从众多chunkserver中选出的唯一特殊副本,该副本的特殊性在于其维护了一个定时的租约列表。

租约指的是一组由用户发来的有顺序的指令集合

主副本之外的副本都需要通过主副本中的这个列表来执行指令,以保证每个副本执行的最终结果相同。

Master失效怎么办
有副本master,拥有master状态的完整副本;GFS论文中设计需要人工干预才能切换到其中一种主故障后的副本。

如何保障副本记录的正确性
使用原子记录至少追加一次的方法。

为什么不使用完全追加?

如果在其中一个写入失败时客户端重新尝试写入,这将导致数据在未失败的副本上多次附加。不同的设计可能会检测到重复的客户端请求,例如,原始故障之间的主要故障请求和客户端的重试。

应用程序如何知道哪些部分组成填充,哪些是重复记录?
为了检测填充,应用程序可以放置一个可预测的幻数在有效记录的开头,或包含一个校验和,该校验和可能仅当记录有效时才有效。该应用程序可以检测通过在记录中包含唯一 ID 来复制。然后,如果它读取与先前记录具有相同 ID 的记录,它知道它们是彼此的重复。GFS 为应用程序提供了一个库处理这些情况。

什么是校验和?
校验和算法将一个字节块作为输入并返回一个单个数字,它是所有输入字节的函数。例如,一个简单校验和可能是输入中所有字节的总和(mod一些大数字)。GFS 存储每个块的校验和以及块。当一个chunkserver在它的磁盘上写一chunk时,它首先计算新块的校验和,并将校验和保存在磁盘上以及块。当一个chunkserver从磁盘读取一个chunk时,它还读取先前保存的校验和,从磁盘读取的块,并检查两个校验和是否匹配。如果数据已被磁盘损坏,校验和不匹配,并且chunkserver 会知道返回错误。另外,一些 GFS应用程序存储自己的校验和,而不是应用程序定义的记录,在 GFS 文件中,以区分正确的记录和填充。

GFS 以正确性换取性能在多大程度上可以接受
这是分布式系统中反复出现的主题。强一致性通常出现在需要复杂且需要交互的协议机器之间。经过利用特定应用程序类可以容忍的放松方式一致性,可以设计出具有良好性能和足够的一致性。例如,GFS 针对 MapReduce 进行了优化对大文件需要高读取性能的应用程序可以在文件中有漏洞,记录显示多次,并且不一致的读取。

Google 是否仍使用 GFS?
有传言说 GFS 已经被一个叫做Colossus,总体目标相同,但在 master 方面有所改进性能和容错性。
 


http://www.ppmy.cn/news/341191.html

相关文章

高分1(GF1)、高分2(GF2)卫星数据大气校正

KEYWORDS:GF1,GF2,RSD,大气校正,遥感软件 0. RSD大气校正 RSD是李国春教授团队开发的一款遥感数处理软件。其大气校正模块是参照USGS LaSRC大气校正流程,使用VC重新改写并在Windows平台实现的内置大气校正…

屏:全贴合工艺之GF、GF2、G1F1、GG、TOL

在全贴合技术中,根据触控线路位于整体堆叠结构中所处位置的不同可以分为GFF、OGS、Oncell、Incell。 关于这几种工艺,可以查看:《屏:全贴合工艺之GFF、OGS、Oncell、Incell》。 基于这4种工艺,我们来了解其他的这几种工…

高分2(GF2)卫星数据系列处理

目录 GF2卫星数据系列处理 一、打开、正射校正GF2 0.89m PAN数据 二、GF2 0.89m PAN数据几何精校正 1 . 导入基准数据 2 . 启用“小黑手”采集GCP 3. 或者使用自动校正 4. 开始校正 三、GF2 3.2m MSS数据正射校正、大气校正 1. 自动完成的…

批量正射校正和融合高分2号(GF2)卫星数据

批量正射校正和融合高分2号卫星数据 RSD提供菜单命令方式的批量处理。 MSS数据的批量正射校正MSS数据批量正射校正和大气校正PAN 数据的批量正射校正MSS与PAN批量正射校正和融合MSS与PAN批量正射校正、MSS的大气校正和融合 检查正射校正使用的DEM是否准备好 见博文《使用RSD批…

ENVI5.3下高分二号(GF2)数据预处理

以一景2015年1月23日获取的GF2-PMS1数据为例介绍在ENVI5.3下GF2数据预处理的详细操作步骤。GF2数据预处理基本流程如下: 图:GF2数据预处理流程 说明:1. 针对不同的应用,有不同的处理流程,上图中列出了两种常用的预处理…

批量大气校正高分2号(GF2)卫星数据

高分数据批量处理可以有下述5种选项。 MSS数据的批量正射校正MSS数据批量正射校正和大气校正PAN 数据的批量正射校正MSS与PAN批量正射校正和融合MSS与PAN批量正射校正、MSS的大气校正和融合 GF2数据可以进行上述5种批量处理。 检查正射校正使用的DEM是否准备好 见博文《使用…

java控制电脑给对方微信发消息

1.打开微信窗口 public void openWeChat() {//判断当前系统释放支持Desktop提供的接口if (Desktop.isDesktopSupported()) {try { //打开微信窗口desktop.open(new File("C:\\Program Files (x86)\\Tencent\\WeChat\\WeChat.exe"));} catch (IOException e) {e.prin…

learn C++ NO.9——STL简介、string(1)

文章目录 STL简介什么是STL?发展历史以及版本STL六大组件 初识string类在线文档的简介string类的简介默认成员函数string类的构造函数string的析构函数和赋值等号重载 流插入操作符重载和流提取操作符重载push_back接口和append接口加操作符重载和加等操作符重载 ST…