大数据那些事(2):三驾马车之永垂不朽的GFS



但凡是要开始讲大数据的,都绕不开最初的Google三驾马车:Google File System(GFS), MapReduce,BigTable。如果我们拉长时间轴到20年为一个周期来看呢,这三驾马车到今天的影响力其实已然不同。

MapReduce作为一个有很多优点又有很多缺点的东西来说,很大程度上影响力已经释微了。BigTable以及以此为代表的各种KeyValue Store还有着它的市场,但是在Google内部Spanner作为下一代的产品,也在很大程度上开始取代各种各样的的BigTable的应用。而作为这一切的基础的Google File System,不但没有任何倒台的迹象,还在不断的演化,事实上支撑着Google这个庞大的互联网公司的一切计算。

作为开源最为成功的Hadoop Ecosystem来说,这么多年来风起云涌,很多东西都在变。但是HDFS的地位却始终很牢固。尽管各大云计算厂商都基于了自己的存储系统实现了HDFS的接口,但是这个文件系统的基本理念至今并无太多改变。

那么GFS到底是什么呢?简单一点来说它是一个文件系统,类似我们的NTFS或者EXT3,只是这个文件系统是建立在一堆的计算机的集群之上,用来存储海量数据的。一般来说,对文件系统的操作无非是读或者写,而写通常又被细分成update和append。Update是对已有数据的更新,而append则是在文件的末尾增加新的数据。

Google File System的论文发表于2003年,那个时候Google已经可以让这个文件系统稳定的运行在几千台机器上,那么今天在我看来稳定的运行在几万台机器上并非是什么问题。这是非常了不起的成就,也是Hadoop的文件系统至今无非达到的高度。

GFS的设计理念上做了两个非常重要的假设,其一是这个文件系统只处理大文件,一般来说要以TB或者PB作为级别去处理。其二是这个文件系统不支持update只支持append。在这两个假设的基础上,文件系统进一步假设可以把大文件切成若干个chunk,本文上面的图大致上给了GFS的一个基本体系框架的解释。

Chunk server是GFS的主体,它们存在的目的是为了保存各种各样的chunk。这些chunk代表了不同文件的不同部分。为了保证文件的完整性不受到机器下岗的影响,通常来说这些chunk都有冗余,这个冗余标准的来说是3份。有过各种分析证明这个三份是多么的安全。

在我曾经工作的微软的文件系统实现里面也用过三份这样的冗余。结果有一次data center的电源出问题,导致一个集装箱的机器整个的失联(微软的数据中心采用了非常独特的集装箱设计)。有一些文件的两个或者三个拷贝都在那个集装箱对应的机器上,可以想象,这也同样导致了整个系统的不可用。所以对于这三个拷贝要放哪里怎么去放其实是GFS里比较有意思的一个问题。我相信Google一定是经过了很多的研究。

除了保存实际数据的chunk server以外,我们还需要metadata manager,在GFS里面这个东西就是master了。按照最初的论文来说,master是一个GFS里面唯一的。当然后续有些资料里有提到GFS V2的相关信息表明这个single point bottleneck 在Google的系统演进中得到了解决。Master说白了就是记录了各个文件的不同chunk以及它们的各自拷贝在不同chunk server上的区别。

Master的重要性不言而喻。没有了metadata的文件系统就是一团乱麻。Google的实现实际上用了一个Paxos协议,倘若我的理解是正确的话。Paxos是Lamport提出来的用来解决在不稳定网络里面的consensus的一个协议。协议本身并不难懂,但是论文的证明需要有些耐心。

当然最重要的,我自己从来没有实现过这个协议。但是就我能看到的周围实现过的人来说,这个东西很坑爹。Paxos干的事情是在2N+1台机器里保持N的冗余。简单一点说,挂掉N台机器这个metadata service依然可以使用。

协议会选出一个master服务,而其他的则作为shadow server存在。一旦master挂了大家会重新投票。这个协议很好的解决了High Availability的问题。很不幸的是,抄袭的Hadoop 文件系统使用的是一个完全不同的方案。这个我们在讲到Hadoop的时候再说。

对GFS的访问通过client,读的操作里,client会从master那边拿回相应的chunk server,数据的传输则通过chunk server和client之间进行。不会因此影响了master的性能。而写的操作则需要确保所有的primary以及secondary都写完以后才返回client。如果写失败,则会有一系列的retry,实在不行则这些chunk会被标注成garbage,然后被garbage collection。

Master和chunk server之间会保持通信,master保持着每个chunk的三个copy的实际位置。当有的机器掉线之后,master如果有必要也会在其他的机器上触发额外的copy活动以确保冗余,保证文件系统的安全。

GFS的设计非常的值得学习。系统支持的目标文件以及文件的操作非常的明确而简单。对待大规模不稳定的PC机构成的data center上怎么样建立一个稳定的系统,对data使用了复制,而对metadata则用了Paxos这样的算法的实现。这个文件系统体现了相当高水准的系统设计里对方方面面trade off的选择。有些东西只有自己做过或者就近看人做过才能真正感受到这系统设计的博大精深。故而对我个人而言,我对GFS的论文一直是非常的推崇,我觉得这篇论文值得每个做系统的人反复的读。

本文作者:飞总

来源:51CTO

时间: 2024-08-30 11:06:25

大数据那些事(2):三驾马车之永垂不朽的GFS的相关文章

大数据的那些事(3):三驾马车之坑人的MapReduce

在Google的三驾马车里面,Google File System是永垂不朽的,也是基本上没有人去做什么进一步的研究的. BigTable是看不懂的,读起来需要很多时间精力. 唯独MapReduce,是霓虹灯前面闪烁的星星,撕逼战斗的主角,众人追捧和喊打的对象.自从MapReduce这个词出来以后,不知道有多少篇论文发表出来,又不知道有多少口诛笔伐的文章. 我曾经在HANA篇里写过围绕MapReduce,Google和Michael StoneBraker等等database的元老之间的论战.欢

云计算、大数据与智能 三驾马车驾驭数字化转型

以数字化转型为代表的第四次工业革命已经到来,世界各地不同行业.不同规模.不同业务模式的企业,都将共同面对技术更迭带来的冲击与影响. 推动这次数字化转型的原动力,来自于三个相互依存.相互促进的技术趋势:颠覆传统IT模式,为企业带来更经济.更灵活并可无限扩展的数字化平台的云计算:在物联网.社交媒体.移动计算的快速增长中爆发的大数据:以及借由机器学习.高级分析.神经网络,帮助我们发掘业务洞察.实现自然人机交互的智能. 数据,是连接三大技术趋势的纽带,也是驱动数字化转型的"新电力".对任何一家

“三驾马车”拉动大数据征信 行业格局突变

2016年,科技领域里的谷歌机器人4:1战胜李世石,商业领域里阿里巴巴超越沃尔玛,可以算是人类历史上划时代的两件大事.大数据.云计算正推动互联网与传统行业的结合向纵深发展. 所有互联网影响比较大的行业必然容易数据化,正发展如火如荼的行业包括金融.医疗.零售等行业.对于所有的互联网金融相关方来说,征信就像水电煤一样,是互联网金融基础配置,而征信体系是风险管控的核心内容. 2016年大数据征信对金融行业的创新颠覆,最重要的一点将是:令金融行业的客户监测实现了动态风控.传统的评估.交易形态正在被数据化

“三驾马车”拉动大数据征信, “数据—信用—财富”闭环初现

2016年,科技领域里的谷歌机器人4:1战胜李世石,商业领域里阿里巴巴超越沃尔玛,可以算是人类历史上划时代的两件大事.大数据.云计算正推动互联网与传统行业的结合向纵深发展. 所有互联网影响比较大的行业必然容易数据化,正发展如火如荼的行业包括金融.医疗.零售等行业.对于所有的互联网金融相关方来说,征信就像水电煤一样,是互联网金融基础配置,而征信体系是风险管控的核心内容. 2016年大数据征信对金融行业的创新颠覆,最重要的一点将是:令金融行业的客户监测实现了动态风控.传统的评估.交易形态正在被数据化

押注Fintech,打造消费金融三驾马车,招行想这样走完转型下半场

在说到金融业一个重要"风口"消费金融时,其中的佼佼者招行银行总是屡屡被提及. 雷锋网(公众号:雷锋网)获悉,8月31日,在银监会召开的第127场银行业例行新闻发布会上,招商银行副行长刘建军以"招行做大做强消费金融驶向蓝海"为主题进行了演讲,介绍了招商银行在金融科技及消费金融方面的发展及布局情况.  目前,招行消费金融形成了攻防有道的立体格局."攻"的具体布局体现在,招行整合行内零售信贷部与信用卡中心资源,此外与中国联通合资成立了招联消费金融公司,

阿里集团明确五新战略三驾马车:基础设施落地 战略思维输出 投资拉动

北京时间11月15日,阿里巴巴集团首席执行官张勇宣布,阿里集团为更聚焦五新战略,将升级组织保障.阿里集团将在强化现有的新零售战略部署的前提下,明确五新战略的三驾马车:基础设施落地.战略思维输出.生态圈投资拉动.以全球化为核心,在关键领域和关键岗位上部署得力人才及组织队形,确保五新战略的高效运转和加速实施. 阿里巴巴集团CEO张勇 对于阿里巴巴集团而言,刚刚收官的2017年双11全球狂欢节的意义不仅在于收获了1682亿的交易数字,而是它充分证明了阿里集团选择新零售作为系统战略落地实施突破口的正确性

【Intel】英特尔:三驾马车驱动开放云计算

近一年多来,IT业界在开放的架构和开放的生态系统将是推动云计算发展的关键动力上达成共识后,不少IT厂商和企业用户就把目光投向了英特尔公司,这一方面是因为英特尔已借助开放架构和开放生态系统的优势成就了在服务器.存储和以太网等与云计算载体--数据中心密切相关的领域的优势地位:另一方面,也是受到了它于2010年10月正式发布的2015云愿景的感召. 英特尔的2015云愿景完全可被视为一个构建理想云计算平台的具体行动纲领,或是方向明晰的技术创新路线.根据英特尔的说明,其三大要素--"互通".&

网络信息安全的“三驾马车”:技术、管理、人才

当前网络社会与现实社会相互交织和影响,我国的社会治理改革进入深水区,面临转型发展的机遇和挑战,网络社会的治理迫切需要勇于创新发展. 如今,互联网已经融入人们社会生活的方方面面,深刻改变了人们的生产.生活方式,党的十八届五中全会以及"十三五"规划纲要都对实施网络强国战略."互联网+"行动计划.大数据战略等做了部署.面对网络时代这个难得的历史机遇,我们必须保持战略清晰,还应清楚地看到,网络空间蕴含着新的生产力.文化力和国防力,必须紧紧抓住并用好这个历史机遇. 在拓展网络

用友3.0 三驾马车五大领域服务企业互联网化

科技和金融如同两个轮子,正驱动着中国企业迈向互联网化.金融化.企业信息化也由企业级上升到社会级,信息化的重点也从提高效率.流程优化转变到商业创新.在这一过程中,企业的发展面临巨大挑战与机遇,如何落地企业互联网化.实现商业创新成为企业的困扰. 在9月10日举办的中国企业互联网商业创新大会暨用友优普年会上,用友董事长兼CEO王文京分享了用友在过去几年间,通过创新与实践摸索出的企业互联网化路径,并详尽阐述了用友在新时期如何帮助企业落地互联网化,推动企业步入社会化商业. 用友网络公司董事长兼CEO王文京