云计算
云计算系统:是以付费试用的形式向用户提供各种服务的分布式计算系统,系统对用户是透明的,其本质是对虚拟化的计算和存储资源池进行动态部署、动态分配、重分配、实时监控的系统。从而向用户提供满足QoS要求的计算服务,数据存储服务以及平台服务。
云服务一般以Web的形式来实现。
云计算系统三层模型:
1.基础设施层(IaaS):
云计算的基础,为上层云计算服务提供海量硬件资源。同时,在虚拟化的支持下,IaaS可以实现硬件资源的按需配置,并提供个性化的基础设施服务。
主要研究问题:1.如何建设低成本、高效能的数据中心。2.如何拓展虚拟化技术,实现弹性、可靠的基础设施服务。
虚拟化技术的特点:1.资源分享。2.资源定制。3.细粒度资源管理。虚拟化技术成为实现云计算资源池化和按需服务的基础。
2.平台层(PaaS):
PaaS层需要具备存储与处理海量数据的能力。
主要解决问题:1.海量数据的处理需要抽象处理过程,并要求其编程模型支持规模扩展,屏蔽底层细节并且简单有效。2.资源管理与调度技术,副本机制是Paas层保证数据可靠的基础,有效的副本策略不但可以降低数据丢失的风险,而且能够优化作业完成时间。
3.服务层(SaaS):
面向的是云计算终端用户,提供基于互联网的软件应用服务。
目前主要问题:
云计算资源的分配、管理和容错,各个云服务器之间的通信。云服务的动态迁移。
安全问题:如何保证用户数据不被非法访问和泄漏。
标准的规范化
代表的云计算系统:
MapReduce是一个简化的并行编程计算模型,模型采用函数式编程中的函数来实现并行编程,模型的核心操作时Map和Reduce.Map操作对每个元素进行操作并生成一组新的数据,原数据保持不变,数据之间不存在关联。因此Map之间可以高度并行实现。reduc操作对map操作的中间结果进行合并,并得到最后输出。只需对map和reduce函数进行并行化处理便得到了MapReduce的基本框架。
Amazon EC2向用户提供一个运行在Xen虚拟化平台上的基于Linux的虚拟机,从而用户可以在此之上运行基于Linux的应用程序。使用Amazon EC2之前,用户首先创建一个包含用户应用程序、运行库、数据以及相关配置信息的虚拟运行环境影像,称为AMI。Amazon同时还提供Web服务,简单存储服务S3,用来向用户提供快速、可靠的存储服务。用户需要将创建好的AMI映像上传到Amazon提供的各种简单存储服务S3,然后可以通过Amzon提供的各种Web服务接口开启动、停止和监控AMI实例的运行。用户只需要为自己实际使用的计算能力、存储空间和网络带宽付费。
Google App Engine是一个基于Python应用服务器群、BigTable结构化数据分布式存储系统及GFS数据存储组成的平台,它能为开发者提供一体化、主机服务器及可自动升级的在线应用服务。Google App Engine专门为开发者设计,开打着将自己编写的在线应用运行与Google的资源上。开发者不用担心应用运行时所需的资源,Google提供应用运行及维护所需要的一切平台资源。
Apache Hadoop主要实现了GFS的思想和MapReduce模型,主要包括三个部分Hadoop分布式文件系统(HDFS)、MapReduce实现及HBase(Google Bigtable的实现)。HDFS 在存储数据时,将文件按照一定的数据块大小进行切分,各个块在集群中的节点中分布,为了保证可靠性,HDFS 会根据配置为数据块创建多个副本,并放置在集群的计算节点中。 MapReduce 将应用分成许多小任务块去执行,每个小任务就对计算节点本地存储的数据块进行处理。