本节将对大数据技术的基本概念进行简单介绍,包括分布式计算、服务器集群和 Google 的 3 个大数据技术。
对于如何处理大数据,计算机科学界有两大方向。
第一个方向是集中式计算,就是通过不断增加处理器的数量来增强单个计算机的计算能力,从而提高处理数据的速度。
第二个方向是分布式计算,就是把一组计算机通过网络相互连接组成分散系统,然后将需要处理的大量数据分散成多个部分,交由分散系统内的计算机组同时计算,最后将这些计算结果合并,得到最终的结果。
尽管分散系统内的单个计算机的计算能力不强,但是由于每个计算机只计算一部分数据,而且是多台计算机同时计算,所以就分散系统而言,处理数据的速度会远高于单个计算机。
过去,分布式计算理论比较复杂,技术实现比较困难,因此在处理大数据方面,集中式计算一直是主流解决方案。
IBM 的大型机就是集中式计算的典型硬件,很多银行和政府机构都用它处理大数据。不过,对于当时的互联网公司来说,IBM 的大型机的价格过于昂贵。因此,互联网公司把研究方向放在了可以使用在廉价计算机上的分布式计算上。
服务器集群是一种提升服务器整体计算能力的解决方案。它是由互相连接在一起的服务器群组成的一个并行式或分布式系统。
由于服务器集群中的服务器运行同一个计算任务,因此,从外部看,这群服务器表现为一台虚拟的服务器,对外提供统一的服务。
尽管单台服务器的运算能力有限,但是将成百上千的服务器组成服务器集群后,整个系统就具备了强大的运算能力,可以支持大数据分析的运算负荷。
Google、Amazon 阿里巴巴的计算中心里的服务器集群都达到了 5000 台服务器的规模。
2003—2004 年间,Google 发表了 MapReduce、GFS(Google File System)和 BigTable 3 篇技术论文,提出了一套全新的分布式计算理论。
MapReduce 是分布式计算框架,GFS 是分布式文件系统,BigTable 是基于 GFS 的数据存储系统,这 3 大组件组成了 Google 的分布式计算模型。
Google 的分布式计算模型相比于传统的分布式计算模型有 3 大优势:
后来,各家互联网公司开始利用 Google 的分布式计算模型搭建自己的分布式计算系统,Google 的这 3 篇论文也就成为大数据时代的技术核心。
当时 Google 采用分布式计算理论也是为了利用廉价的资源,使其发挥出更大的效用。Google 的成功使人们开始效仿,从而产生了开源系统 Hadoop。
从 Hadoop 体系和 Google 体系各方面的对应关系来讲,Hadoop、MapReduce 相当于 MapReduce,HDFS 相当于 GFS,HBase 相当于 BigTable,如表 1 所示。
大数据系统体系 | 计算框架 | 文件系统 | 数据存储系统 |
---|---|---|---|
Hadoop 体系 | Hadoop MapReduce | HDFS | HBase |
Google 体系 | MapReduce | GFS | BigTable |