当前位置:主页 > 数据驱动 >

深入浅出:大妈也能看懂的大数据分布式计算

 发布时间:2018-07-17 来源:
大数据技术虽然包含存储、计算和分析等一系列庞杂的技术,但分布式计算一直是其核心,想要了解大数据技术,不妨从 MapReduce 分布式计算模型开始。

该理论模型并不是什么新理念,早在 2004 年就被 Google 发布,经过十多年的发展,俨然已经成为了当前大数据生态的基石,可谓大数据技术之道,在于 MapReduce。

传统计算技术

在进入到分布式计算技术这个概念之前,我们先回顾一下传统计算技术。

为了使计算机领域的相关概念能够生动形象深入浅出,我将计算机类比为人:

 

深入浅出:大妈也能看懂的大数据分布式计算

 

在这张图中我们建立了计算机基本元件的类比关系,并不严谨但足以说明问题。

有了这个类比关系,我们可以把计算机领域的问题转换为我们熟悉的人类领域的问题。

从现在开始,每个人,比如你自己就是一台计算机,我们代称为“人型计算机”,你拥有基本的计算机元件,上帝是个程序员,可以编写程序——一系列设定好的指令,让你完成一些计算任务。

下面我们要用一个简单的案例,分析“人型计算机”是如何利用传统计算技术解决实际问题的。

在开始之前,要增加一些限定,如同正常计算机的内存是有上限的,我们的“人型计算机”也存在记忆力的上限。

这里我们假设一个“人型计算机”最多可以同时在“内存”中记住 4 种信息,例如:苹果、梨等四种水果的个数:

 

深入浅出:大妈也能看懂的大数据分布式计算

 

看起来这台“人型计算机”的性能比较差,不过好在我们需要处理的问题也不复杂。

有几十张不包含大王和小王的扑克牌,这些牌的花色和大小均不确定(并不一定能凑成一副牌),如何给一台“人型计算机”设计一个程序,统计各个花色的扑克牌数量?

 

深入浅出:大妈也能看懂的大数据分布式计算

 

你的答案可能脱口而出:对于“人型计算机”而言,直接在大脑中记住每个花色的个数,一张一张地取扑克牌计数,处理完所有的扑克牌之后报 4 个花色的个数就行。

答案完全正确,正常计算机最简单的计算模式就是这样的,内存中记录统计结果,随着输入设备不断读取数据,更新内存中的统计结果,最后从输出设备展示结果:

 

深入浅出:大妈也能看懂的大数据分布式计算

 

接下来问题的难度要升级了,统计这些扑克牌中 A~K 共 13 种牌面每种牌面的个数。我们的“程序”该如何升级?

 

深入浅出:大妈也能看懂的大数据分布式计算

 

我们察觉到,如果仍然沿用之前的解决思路,“人型计算机”的“内存”已经不够用了,因为其存储上限为 4 种信息,无法存储 A~K 这 13 种牌面信息。

联系一下现实生活中的场景,当我们发现自己无法记住很多信息时,会用账本来辅助记忆。

对于计算机来说是一样的,内存不足就使用磁盘来存放信息,这时候,账本就可以类比于一个存放于“磁盘”的 Excel 文档:

 

深入浅出:大妈也能看懂的大数据分布式计算

 

那么统计牌面这个问题的解决思路就有了:每取一张扑克牌,在账本中更新相应牌型的统计个数,数完所有的扑克牌之后直接报出结果。

 

深入浅出:大妈也能看懂的大数据分布式计算

 

单个计算机的传统计算模式就是这样,可以简单概括为按照一定统一规则对输入数据进行加减乘除等数学运算,然后输出结果的过程,这中间产生的数据会存储在内存或硬盘中。

在上面的案例中,扑克牌是“人型计算机”的“输入数据“,相当于计算机二进制世界中可以被识别的数字和文本。统计的扑克牌个数是“输出结果“,相当于你可以在电脑屏幕上看到的信息。

实际上,,凭借内存、硬盘和 CPU 等基本组件,单个计算机(不只包括个人电脑,智能手机也算)已经可以完成我们上网听歌看电影等日常基本需求中所涉及到的计算。

只要计算不超出 CPU 的极限(譬如围棋人机对战之类的)是妥妥没问题的,而且我们还有优化内存、优化硬盘等多种手段来增强单个计算机的计算能力,从而满足人民群众日益增长的物质与文化生活的需要。

好了,背景知识已经足够了,让我们进入正题。

大数据分布式计算

首先,什么是分布式计算?简单点理解就是将大量的数据分割成多个小块,由多台计算机分工计算,然后将结果汇总。

这些执行分布式计算的计算机叫做集群,我们仍然延续前文中人和计算机的类比,那么集群就是一个团队,单兵作战的时代已经过去,团队合作才是王道:

 

深入浅出:大妈也能看懂的大数据分布式计算

 

为什么需要分布式计算?因为“大数据”来了,单个计算机不够用了,即数据量远远超出单个计算机的处理能力范围。

有时候是单位时间内的数据量大,比如在 12306 网上买票,每秒可能有数以万计的访问;也有可能是数据总量大,比如百度搜索引擎,要在服务器上检索数亿的中文网页信息。

实现分布式计算的方案有很多,在大数据技术出现之前就已经有科研人员在研究,但一直没有被广泛应用。

直到 2004 年 Google 公布了 MapReduce 之后才大热了起来。大数据技术、分布式计算和 MapReduce 的关系可以用下图来描述,MapReduce 是分布式计算在大数据领域的应用:

 

深入浅出:大妈也能看懂的大数据分布式计算

 

文章评论

互联网 自媒体专栏 智能硬件 资本动态 移动互联网 游戏 数据驱动 滚动新闻 O2O 访问移动版
Copyright © 2002-2013 搞数码网 版权所有  电话:0510-898978789 邮箱:89898989@qq.com 地址:北京市新会金水岸国商大厦B-6-B