浅谈分布式存储与计算

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

浅谈分布式计算

一、引言

在如今这个信息爆炸的时代,人们对大数据技术的需求越来越大,然而大数据是如何运作的呢,大数据的运作分为如下几步,首先是数据的采集,然后存储,之后计算,然后得到结论,但是这样就会出现一个问题,大数据需要的数据实在是太多了,并不是常规的Mb和Gb,而是更大的Pb、Eb和Zb,然后导致的就是数据的存储对于硬件的要求相当之大,数据移动一次的代价也相当大,这是无法接受的,所以为了解决这一难题,人们就研究出了分布式技术。

二、分布式技术

首先我们需要解决数据的存储,于是分布式存储技术诞生了,分布式存储系统,是将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。这样大大减少了对硬件的需求,同时也解决了数据的移动代价问

题,可以说如果没有分布式技术,那么大数据技术的发展绝对不会像现在这样迅猛发展。而分布式计算技术是什么呢,所谓分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。分布式网络存储技术是将数据分散的存储于多台独立的机器设备上。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,不但解决了传统集中式存储系统中单存储服务器的瓶颈问题,还提高了系统的可靠性、可用性和扩展性。

三、分布式计算的普及

随着计算机的普及,个人电脑开始进入千家万户。与之伴随产生的是电脑的利用问题。越来越多的电脑处于闲置状态,即使在开机状态下CPU的潜力也远远不能被完全利用。我们可以想象,一台家用的计算机将大多数的时间花费在“等待”上面。即便是使用者实际使用他们的计算机时,处理器依然是寂静的消费,依然是不计其数的等待,比如说等待输入,但实际上并没有做什么。互联网的出现, 使得连接调用所有这些拥有限制计算资源的计算机系统成为了现实。

四、分布式计算项目

那么,一些本身非常复杂的但是却很适合于划分为大量的更小的计算片断的问题被提出来,然后由某个研究机构通过大量艰辛的工作开发出计算用服务端和客户端。服务端负责将计算问题分成许多小的计算部分,然后把这些部分分配给许多联网参与计算的计算机进行并行处理,最后将这些计算结果综合起来得到最终的结果。

当然,这看起来也似乎很原始、很困难,但是随着参与者和参与计算的计算机的数量的不断增加, 计算计划变得非常迅速,而且被实践证明是的确可行的。目前一些较大的分布式计算项目的处理能力已经可以达到甚而超过目前世界上速度最快的巨型计算机。

用户也可以选择参加某些项目以捐赠的 CPU 内核处理时间,您将发现您所提供的 CPU 内核处理时间将出现在项目的贡献统计中。您可以和其他的参与者竞争贡献时间的排名,您也可以加入一个已经存在的计算团体或者自己组建一个计算小组。这种方法很利于调动参与者的热情。

五、MapReduce

谈到分布式计算就一定要说一下MapReduce了,这是分布式计算比较常用的一个编程模型,MapReduce

最早是由Google公司研究提出的一种面向大规模数据处理的并行计算模型和方法。Google公司设计MapReduce的初衷主要是为了解决其搜索引擎中大规模网页数据的并行化处理。Google公司发明了MapReduce之后首先用其重新改写了其搜索引擎中的Web文档索引处理系统。但由于MapReduce可以普遍应用于很多大规模数据的计算问题,因此自发明MapReduce以后,Google公司内部进一步将其广泛应用于很多大规模数据处理问题。到目前为止,Google 公司内有上万个各种不同的算法问题和程序都使用MapReduce进行处理。MapReduce提供了以下的主要功能:

1、数据划分和计算任务调度:

系统自动将一个作业(Job)待处理的大数据划分为很多个数据块,每个数据块对应于一个计算任务(Task),并自动调度计算节点来处理相应的数据块。作业和任务调度功能主要负责分配和调度计算节点(Map节点或Reduce节点),同时负责监控这些节点的执行状态,并负责Map节点执行的同步控制。

2、数据/代码互定位:

为了减少数据通信,一个基本原则是本地化数据处理,即一个计算节点尽可能处理其本地磁盘上所分

布存储的数据,这实现了代码向数据的迁移;当无法进行这种本地化数据处理时,再寻找其他可用节点并将数据从网络上传送给该节点(数据向代码迁移),但将尽可能从数据所在的本地机架上寻找可用节点以减少通信延迟。

3、系统优化:

为了减少数据通信开销,中间结果数据进入Reduce节点前会进行一定的合并处理;一个Reduce 节点所处理的数据可能会来自多个 Map节点,为了避免Reduce计算阶段发生数据相关性,Map节点输出的中间结果需使用一定的策略进行适当的划分处理,保证相关性数据发送到同一个 Reduce节点;此外,系统还进行一些计算性能优化处理,如对最慢的计算任务采用多备份执行、选最快完成者作为结果。

4、出错检测和恢复:

以低端商用服务器构成的大规模MapReduce计算集群中,节点硬件比如是主机、磁盘、内存等出错和软件出错是常态,因此 MapReduce需要能检测并隔离出错节点,并调度分配新的节点接管出错节点的计算任务。同时,系统还将维护数据存储的可靠性,用多备份冗余存储机制提高数据存储的可靠性,并能及时检测和恢复出错的数据。

有了这些功能,使得MapReduce在分布式计算方面的使用十分频繁,也是为了大数据技术的发展做出了贡献。

六、结论

就现在而言大数据技术已经深入到了我们生活中的方方面面,各行各业都可以利用它从而得到更好的决策方式。而我认为分布式计算这一技术是大数据最重要的一个环节。因为它解决了大数据技术对硬件的高度需求,即使在硬件达不到要求的情况下也可以进行更好的研究,使得大数据技术飞速发展,现在这个时代是一个信息爆炸的时代,在现在人们的娱乐和工作中,人们对信息的需求十分的大,所以为了处理和满足人们的需求,大数据的技术形势需要不断发展,不断优化。现如今人们对大数据技术的研究每年都有新技术浮现。即使是这样,大数据的发展仍然有许多的难题和挑战等待我们去攻克,希望越来越多的人才可以加入其中使得其发展的越来越好。

相关文档
最新文档