谷歌公司十年前的三项工作,奠定了当今大数据生态的技术基础
副问题[/!--empirenews.page--]
很多对大数据技能感乐趣的人都传闻过 Google 在十年前颁发的三项重要成就:Google File System(GFS),MapReduce 和 Bigtable[见表1]。Google 在这些成就中,先容了其操作通用计较装备乐成搭建漫衍式集群的要领。个中的诸多计划头脑在其后被普及小心。 表1:相干论文汇总与较量 为什么要计划这些体系? 这些体系都有什么用处? 这些体系在实现上有哪些特点?对其后的体系计划有哪些开导意义? 本文通过提出一系列题目并实行答复,先容了现行大数据技能的焦点计划理念和技能实现。 01漫衍式体系 为什么必要漫衍式体系呢? 在硬盘存储空间多年来不绝晋升的同时,硬盘的读取速率没有与时俱进。假如将大量数据存储于单个磁盘中,在说明时将必要淹灭大量时刻。 从 1990 年到 2010 年,主流硬盘空间从1GB 增添到 1TB,一千倍的晋升,硬盘的读取速率从 4.4 MB/s 到 100 MB/s,仅有约20倍的晋升[4]。以这种速率(100 MB/s)读完备个硬盘(1TB)的数据至少必要 2.5 个小时。 怎样镌汰数据读写以及数据说明的时刻呢?较量直接的方案是同时对多个硬盘中的数据并行读/写,即操作漫衍式体系存储和处理赏罚数据,进步I/O 带宽,但这一方案也谋面对一些突出题目,譬喻: 更高的硬件妨碍频率。若是单个硬盘持续正常行使一个月的靠得住性是 99.99%,一个月中 10000 个磁盘都不堕落的概率只有 36.8%;“ 0.9999 的 10000 次方约便是 0.368”差异节点之间的数据组织和共享。一份数据要怎样存放在差异磁盘上?差异节点上的数据怎样更高效地通讯、共享,从而停止收集I/O成为体系瓶颈?Google 的工程师意识到,假如想要操作漫衍式体系进步数据处理赏罚速率,同时又必要体系能不变运转,必需想步伐办理上述两个题目。Google Files System 就在这样的汗青配景降落生了。 02Google File System (GFS) Google File System 办理了漫衍式体系上的文件存储题目。它提供了运行在便宜的商用硬件上的容错手段,并具备为大量客户端提供整体高机能处事的手段,方针是在漫衍式场景下办理文件体系存眷的题目。现在被普及行使的 Hadoop File System 险些完全照搬了 GFS 的计划理念。 传统漫衍式文件体系要办理的首要题目:1. 机能 2. 可扩展性 3. 靠得住性 4. 可用性 GFS 的计划者通过对营业事变的调查发明白一些通用装备集群的应用场景特点,针对这些特点从头计划实现了一个新的漫衍式文件体系。详细有哪些特点呢?本文会在下一节睁开先容。 GFS 的计划 团结 Google 所行使的漫衍式集群和措施应用场景,工程师在对 GFS 举办计划时重点思量了以下题目: 1. 单点装备的题目会常常呈现。大局限集群中统一时刻单台计较机呈现妨碍的概率不容小觑; 2. 体系首要用于存储大文件。文件体系存储数百万个巨细在 100 MB 阁下或以上的文件; 3. 对文件的常见操纵为大局限的流式读取和小局限的随机遇见; 4. 常见的文件修改为序列追加写入。一旦写入后,文件很少会再修改。恣意位置的修改不必要被高效支持; 5. 高效支持对单个文件的并发追加操纵。原子操纵和小的同步开销是须要的; 6. 带宽吞吐比低耽误更重要。 体系架构 GFS 体系由一个 master 节点和多个 chunkserver 节点组成,体系同时被多个 client 会见,如下图所示: GFS 架构表示图[1] 图中每一个事变节点,一样平常为一台 Linux 体系的商用计较装备上运行的用户态处事历程。文件会被拆分成牢靠巨细的块(chunk),每一个块用牢靠的 64 位区块句柄独一标识,块标识的事变由 master 节点完成。体系的运转进程中包括多种脚色,各有分工,相互相助: * master 节点存储文件体系的全部元数据信息; * chunkserver 认真存储数据。master 和 chunksever 之间通过按时发送的心跳信息交换; * 客户端与主处事器举办元数据交互,获取要会见数据的块信息,数据块内容的传输则由 chunkserver 完成。 办理了漫衍式文件存储题目之后,天然就要存眷漫衍式场景下的计较题目了,Map Reduce 编程范式和计较体系应运而生。 03MapReduce MapReduce 有什么用? MapReduce 编程范式的提出是为了简化大型集群上的数据处理赏罚。以这种情势编写的措施可以在大型集群上并行地调治、运行,无需措施编写者思量漫衍式体系的资源、通讯等细节题目。MapReduce 的首要孝顺是提供一个一个简朴而强盛的编程接口,它支持大局限计较的自动并行化和漫衍。团结了该接口的实现,可以在商用 PC 集群上实现高机能数据处理赏罚。MapReduce 的相干头脑,应用在了Hive、Spark等计较引擎的体系计划。 MapReduce 计划 MapReduce 的计划头脑可以团结下图表明: MapReduce 模子表示图[2] Map Reduce 面对的挑衅是计较进程中的容错,包罗: 1. 应对 worker 妨碍:按期搜查发明 worker 错误;从头执行妨碍 worker 对应的使命 2. 应对 master 妨碍:按期备份,存储 checkpoint 数据 3. 用户代码逻辑非常应对要领:依靠于 map/reduce 使命状态提交的原子性,确保最终输出功效是确定的。 如安在漫衍式场景下,构建大局限布局化数据打点手段?这是工程师面对的另一个题目。Google 工程师为了办理这个题目,计划实现了 Big Table 体系。 04Bigtable Bigtable 体系的计划方针是什么呢? 首要是为了在数千台装备的商用装备集群上实现对超大局限布局化数据的存储打点。Bigtable 支撑了 Google 的网页内容索引,Google Earth 以及 Google Finance 等多个重要应用,对 Hive 的发生具有重要的开导意义。 数据模子 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |