GFS(Google File System)的设计目的是使得大规模的普通廉价机能够完成对大量数据的处理操作。
设计预期:
1.由于使用的是普通廉价设备,组件失效成为常态事件。
2.由于处理的文件规模巨大,系统将适当存储大文件。
3.读:1)大规模流式读取。
2)小规模随机读取。
4.写:采用大规模的、顺序的、数据追加方式(append)。
5.定义能够实现并行追加操作的明确语义。
6.高带宽比低延迟重要。实现大批量数据的快速处理。
架构:
master节点:两台master服务器(储存元数据),管理所有文件系统元数据及系统级别上的活动。
chunkserver:管理和储存的linux文件形式的chunk(源文件被分割成多个固定大小的chunk),为保证可靠性,使用三个副本。
应用链接client,代码实现:GFS的API接口,应用程序与master、chunkserver通信,数据的读写操作。
单一master节点:
master节点起到简化全局定位的作用,对文件数据的具体操作交互发生在client和chunkserver之间:
1.client根据文件名和字节偏移根据chunk大小计算chunk索引,把文件名和chunk索引发给master。
2.master根据收到的文件名和chunk索引,在元数据中查找对应chunk handle和chunk副本位置,并答复给client。
3.client就近选择一个chunk副本,发送含有chunk handle和字节范围的请求信息。
4.chunkserver向client返回chunk数据。
Chunk的大小的确定:64MB
64MB远大于一般文件系统的Block size
优点:
1.减少client和master节点的通信,一次获取,多次读写。
2.与chunkserver保持长时链接减少网络负载。
3.减少master节点元数据量。
缺点:
小文件chunk数量很少,chunkserver或成为访问热点导致系统局部过载。
(解决方案?允许客户端从其他客户端获取数据)
元数据:
master服务器在内存中储存三种类型的元数据:
1.文件和chunk的命名空间
2.文件盒chunk的对应关系
3.每个chunk副本的存放地址
前两种元数据会以操作日志的形式在操作系统的日志文件(本地磁盘)和远程master服务器中备份。
操作日志:
元数据唯一的持久化储存记录,是master服务器在灾难恢复时的依据。
在日志文件积累到一定量时,做一次checkpoint,生成的checkpoint文件及后续日志将作为下次master恢复时的直接依据。
chunk位置信息则不会被长时保存。
master服务器获取最新chunk信息的方式:
1.master服务器启动时,master服务器会向chunk服务器轮询chunk信息。
2.master服务器通过周期性心跳信息监控chunk服务器状态,定期轮询。
一致模型:
一致性即master,chunkserver,chunk副本,客户端各处数据一致。主要解决修改文件可能引起的不一致问题。
(背景:
GFS设计中强调减少master的工作量
修改命名空间为原子操作
文件修改操作:
1.改写Overwrite(指定位置)
2.追加Append(文件尾部),这也是受推崇的修改方式,过期数据优于错误数据)
租约(lease)机制:
为减少master的负担,(在前面曾经提到master在联系了client和chunkserver之后就歇了,由client和chunkserver直接通信,也是出于此考虑)同时又要对写入操作进行管理,这里master选取了主chunk作为代理来管理对chunk的修改(建立操作序列),用lease来设定主chunk的工作时间。
理一遍:
1.client询问master主chunk及其副本信息。
2.master返回主chunk及其副本信息。
3.client向所有副本推送文件数据。
4.client确认副本收到,向主chunk发送写请求。主chunk建立操作序列。
5.主chunk将操作序列发送给二级副本,二级副本按序列执行操作。
6.二级副本回复主chunk报告操作完毕。
7.主chunk回复client副本操作情况。
写操作数量过大时,会被分解,可能会跟其他client的操作打乱,但所有副本的执行序列都是一样的,所以可以保证副本的一致性。
谨慎的,放图:
总结了顺序或并发,写入或追加的各种操作所能组合的情况,用以严格区分文件的一致性水平。
然而。。。这一条路毕竟漫长,我们边走边谈
相关推荐
本资源摘要信息主要介绍谷歌三驾马车的三个核心组件:GFS(Google File System)、MapReduce和BigTable。下面分别对三个组件进行详细介绍: GFS(Google File System) GFS是一种分布式文件系统,适用于大型分布式...
#### 摘要与研究背景 本文探讨了美国国家环境预报中心(NCEP)的全球预报系统(GFS)在大气温度、湿度及云量预报方面的性能。通过对比分析2001年至2008年间在大气辐射测量项目(ARM)Southern Great Plains (SGP) ...
#### 摘要与背景 - **设计与实现**:GFS是一个面向大规模数据密集型应用的、可伸缩的分布式文件系统,旨在通过廉价的通用硬件提供高可靠性和高性能的服务。 - **应用场景**:广泛应用于Google内部服务的数据存储和...
这些论文分别涉及Google文件系统(Google File System,简称GFS)、Bigtable分布式数据库以及MapReduce编程模型。 Google文件系统(GFS)是Google开发的一种分布式文件系统,它为大规模的数据处理提供了高容错性、...
6. **文档服务器**:一旦索引服务器找到相关条目,文档服务器会从数据库中提取相应的网页内容,包括链接和摘要。 7. **拼写校正**:Google的拼写服务器会检查用户输入的关键词,如果发现可能的拼写错误,会给出纠正...
摘要 Hadoop 是一个处理、存储和分析海量的分布式、非结构化数据的开源框架。最初由 Yahoo 的工程师 Doug Cutting 和 Mike Cafarella Hadoop 是一个处理、存储和分析海量的分布式、非结构化数据的开源框架。最初由 ...
【文章摘要】 本文主要探讨了海南岛近岸养殖区台风浪预报技术的研究,强调了台风对海南水产养殖业的严重影响,并介绍了当前国内外海浪预报系统的发展情况。文章指出,风场预报的准确性是影响海浪预报的关键因素,...
根据提供的内容摘要,以下为详细解析: 一、关于云计算(About Cloud Computing) 云计算是一种通过互联网提供计算资源和服务的模式,用户可以按需获取计算能力、存储空间、网络带宽和应用程序等资源。云计算的...
ID 较大时,ID 与 UGS 的关系近似线性,曲线的斜率定义为跨导 Gfs。 五、电力 MOSFET 的基本特性 电力 MOSFET 的基本特性包括截止区、饱和区和非饱和区。工作在开关状态,即在截止区和非饱和区之间来回转换。漏源...
【如何写好一篇论文】 写好一篇论文是学术交流的关键,无论是为了分享研究成果还是促进思想碰撞,都需要将我们的思想清晰...谷歌的三篇标志性论文(GFS、MapReduce、BigTable)是很好的实践示例,值得深入研究和学习。
#### 摘要 Hadoop分布式文件系统(Hadoop Distributed File System, HDFS)是一种高可靠性和高可扩展性的分布式文件系统,它能够提供大规模的数据存储能力。HDFS的设计遵循Google文件系统(Google File System, GFS...
5. Bigtable:本资源中提到了Bigtable的概念,包括分布式数据存储与管理系统、GFS的应用等,体现了Bigtable的特点和应用场景。 6. Google App Engine:本资源中讲到了Google App Engine的概念,包括使用的数据库、...
这篇关于操作系统的重要论文1的摘要列出了几篇具有深远影响力的论文,这些论文对操作系统的设计和发展产生了重大影响。以下是这些论文及其核心贡献的详细说明: 1. **Sanjay Ghemawat, Howard Gobioff, and Shun-...
此扩展为您提供最新的天气新闻摘要,并直接访问网站上的许多最受欢迎的页面,包括: 11英国邮政编码和地区天气预报7日,10和16天 14天,每月和季节性讨论预测 英国稀释降雨雷达 GFS,GEF,ECM,WW3和传真图表 两个...
此扩展程序为您提供最新的天气新闻摘要,以及直接访问网站上许多最受欢迎的页面,包括:7、10和16天的英国邮政编码和位置天气预报14天,每月和季节性的讨论预报英国可缩放的降雨量雷达GFS,GEFS,ECM,WW3和传真图两...
#### 摘要 Bigtable 是谷歌开发的一款分布式结构化数据存储系统,其主要目标在于处理大规模数据集,即PB级别的数据,这些数据通常分布在数千台普通服务器上。Bigtable 已经成为众多谷歌产品的数据基础设施,如 Web ...
#### 摘要与背景 Bigtable 是谷歌开发的一款分布式存储系统,专为大规模结构化数据设计。其设计目标是实现数据存储规模的线性扩展,支持从数十PB(petabytes)级别的数据量到数千台服务器节点的分布部署。该系统被...