分布式系统的海量数据存储技术研究(3)
时间:2017-04-11 13:15 来源:毕业论文 作者:毕业论文 点击:次
3.1.4云计算 云计算是网格计算和分布式计算的延伸,“云”其实是对计算机网络的一个隐喻,在计算机领域中,常将复杂的基础设施和技术过程用“云”这种方式隐藏起来,这样会提高程序的透明度,使用户操作简洁方便。云计算系统的核心技术是并行计算(Parallel Computing),它用多个处理器协同解决同一问题,即将求解问题分成若干份,每一份由一个独立的处理机进行计算。 总体来说,云计算是分布式计算的发展,它融合了分布式计算、并行计算、网络存储等计算机技术,通过使计算分布在大量的云端分布式计算机上,而非本地计算机中,使得企业能够将资源充分利用在需要的应用上,无需考虑存储容量、存储设备类型、数据存储位置等繁琐的底层技术细节,只要根据需求就可付费访问计算机和近乎无限大的存储空间。 3.2分布式系统 分布式系统将具有大规模复杂计算量的任务分割成若干相对较小的任务,来提高处理任务的速度,因此分布式系统主要用来进行大规模的数据存储和管理。 以下将对几个典型的分布式系统做一些简单的介绍。 3.2.1Google的GFS Google文件系统(Google File System,GFS)是一个大型的分布式文件系统。它为Google云计算提供海量存储,并且紧密结合Chubby、MapReduce以及BigTable等技术,属于所有核心技术的底层。 GFS的设计方法是将控制流和数据流分离,降低负载量,使客户端与服务器间只有数据流,没有控制流,由于用分布式存储方式,客户端与服务器之间是1:N的关系,使该系统能够并行输入、输出,从而能够提高性能,降低成本,优化系统。 3.2.2HDFS Hadoop分布式文件系统(Hadoop Distributed File System)是一个分布式文件系统,它有高容错性的特点,并且设计用来部署在低廉的硬件上。并且它提供高吞吐量来访问应用程序的数据,适合具有超大规模数据的应用程序。 一般来说,运行在HDFS之上的程序大都是海量的数据集,它提供很高的聚合数据带宽,一个集群中可以支持数百个节点甚至上千万级别的文件。HDFS程序对文件需要的是一次写、多次读的操作模式,这样简化了数据一致的问题并使高吞吐率的数据访问和存储成为可能,更加方便了海量数据的存储。 3.2.3Amazon的AWS 亚马逊的用户可按需选取一个或多个服务,这使Amazon的服务有更高的灵活性和可扩展性。而且用户在使用数据存储服务时,完全不必考虑服务的部署和软件环境的配置,只需简单的付费即可获得使用权,这样一来能够为用户省去许多不必要的开支,使得越来越多的用户选择Amazon的分布式海量数据存储服务。 4.分布式环境下的海量数据存储相关算法 4.1BigTable BigTable是Google设计的高性能的、可扩展的分布式数据存储系统,是用来存储大规模结构化数据的一种非关系型的数据库,它被设计用来处理海量数据。 BigTable的数据模型是一个稀疏的、分布式的、持久化存储的多文度Map(映射,Map由key和value组成),Map的索引是行关键字、列关键字以及时间戳;Map中的每个value都是一个未经解析的byte数组[7]。 Google目前仍在不断地对BigTable进行改进,通过技术创新和服务创新来提高运行效率和稳定性,图1为BigTable的基本框架。 图1 BigTable的基本框架 客户若要访问BigTable,需先通过Open()操作打开一个锁获取文件目录,使得客户端与子表服务器进行通信。这种操作方式与大多数单一主节点的分布式系统相同,客户端与子表服务器通信而不是与主服务器通信。而Master(主服务器)主要管理新字表的分配、子表服务器的状态监控和字服务器之间的负载均衡[8]。 (责任编辑:qin) |