云计算平台比较.docx
- 文档编号:11516274
- 上传时间:2023-03-02
- 格式:DOCX
- 页数:23
- 大小:728.23KB
云计算平台比较.docx
《云计算平台比较.docx》由会员分享,可在线阅读,更多相关《云计算平台比较.docx(23页珍藏版)》请在冰豆网上搜索。
云计算平台比较
云计算平台研究
三种平台子项目对照表
子项目
Hadoop
OpenStack
Amazon
网络管理
Nova-network
数据管理
HBase
Nova-database
SimpleDB
计算
Map/Reduce
Nova-compute
EC2
存储
HDFS
Object-store
S3
消息管理
Queue
SQ3
镜像管理
Glance
AMI
同步管理
Zookeeper
Ntp
监控管理
Chukwa
1.Hadoop平台研究
1.1Hadoop架构
在Google发表MapReduce后,2004年开源社群用Java搭建出一套Hadoop框架,用于实现MapReduce算法,能够把应用程序分割成许多很小的工作单元,每个单元可以在任何集群节点上执行或重复执行。
此外,Hadoop还提供一个分布式文件系统GFS(Googlefilesystem),是一个可扩展、结构化、具备日志的分布式文件系统,支持大型、分布式大数据量的读写操作,其容错性较强。
而分布式数据库(BigTable)是一个有序、稀疏、多维度的映射表,有良好的伸缩性和高可用性,用来将数据存储或部署到各个计算节点上。
Hadoop框架具有高容错性及对数据读写的高吞吐率,能自动处理失败节点,如图3-5所示为GoogleHadoop架构。
在架构中MapReduceAPI提供Map和Reduce处理、GFS分布式文件系统和BigTable分布式数据库提供数据存取。
基于Hadoop可以非常轻松和方便完成处理海量数据的分布式并行程序,并运行于大规模集群上。
图3-3 Google Hadoop架构
Hadoop有许多元素构成。
最底部是HadoopDistributedFileSystem(HDFS),它存储Hadoop集群中所有存储节点上的文件。
HDFS的上一层是MapReduce引擎,该引擎由JobTracker和TaskTracker组成。
HDFS和MapReduce的关系如图3-4所示:
图3-4HDFS和MapReduce的关系图
MapReduce是依赖于HDFS实现的。
通常MapReduce会将被计算的数据分为很多小块,HDFS会将每个块复制若干份以确保系统的可靠性,同时它按照一定的规则将数据块放置在集群中的不同机器上,以便MapReduce在数据宿主机器上进行最便捷的计算。
1.2Hadoop分布式文件系统
对客户机而言,HDFS(HadoopDistributedFileSystem)就像一个透明的传统分级文件系统,可以创建、删除、移动或重命名文件等等传统意义上的文件系统操作。
HDFS的基本体系结构如图3-5所示:
图3-5HDFS的基本体系结构图
如图3-5存储在HDFS中的文件被分成块,并被复制到多个节点中(DataNode)。
这与传统的RAID架构大不相同。
块的大小(默认为64MB)和作为冗余(Replication)的块数量在创建文件时由用户定制。
NameNode作为中心控制节点对所有文件操作进行控制。
NameNode运行在一个单独的节点上,其负责管理文件系统名称空间和控制用户的访问。
NameNode并不处理系统运行中实际的数据流,而只处理表示DataNode数据块的元数据。
当任务节点需要处理某个数据块时,则先访问NameNode获得该数据块的存储位置后,就可以到存储该数据块的DataNode对该数据块进行读取,修改,删除等操作,并将这些操作信息返回NameNode,更新该数据块的信息。
在HDFS中,默认设置一个SecondaryNameNode作为NameNode的备份节点,系统运行将HDFS的存储元数据备份到SecondaryNameNode。
当NameNode出现异常和错误的时候,启动SecondaryNameNode成为新的NameNode。
Hadoop集群包含一个中心控制节点NameNode,以及大量负责存储数据的工作节点DataNode。
DataNode响应来自用户系统的读写请求,还响应创建、删除和复制来自NameNode的块命令。
NameNode中维护着每个DataNode的在线状态,而DataNode向NameNode发生定期心跳消息(Heartbeat)维护自己在NameNode中的在线。
而心跳消息中还包含一个块报告,NameNode可以根据这个报告验证块映射和其他文件系统元数据。
如果NameNode没有收到DataNode发送的心跳消息,NameNode将采取修复措施,重新复制在该节点上丢失的块。
1.3基于Hadoop的MapReduce实现
Hadoop的MapReduce框架是基于GoogleMapReduce程序设计框架的原理实现的。
Hadoop的MapReduce框架的基本体系结构如图3-6[50]所示,Hadoop的MapReduce框架由JobTracker和TaskTracker两类基本部件组成。
JobTracker为中心控制节点,主要处理任务分配和调度,记录任务运行状态和已分配任务的完成情况,处理TaskTracker出现的异常现象等。
如果某一个TaskTracker出故障了,JobTracker会将其负责的任务转交给另一个空闲的TaskTracker重新运行。
JobTracker可以运行于集群中任一台计算机上。
TaskTracker响应JobTracker的控制命令,按照指令的要求处理需要处理的数据。
TaskTracker分为两类,分别是Mapper和Reducer。
Mapper,Reducer可以执行在任意一个TaskTracker上,而JobTracker根据TaskTracker的负载情况分配Mapper或者Reducer任务。
图3-6MapReduce框架的基本体系结构图
Hadoop的任务粒度是由文件系统中文件块的大小决定的,原始大数据集通常被切割成小于或等于HDFS中一个Block的大小(缺省是64M)的小数据集。
若一个节点上有m个小数据等待处理,这个节点上就启动n1个Mapper任务,Reduce任务的数量r则可由用户指定。
Mapper执行由用户实现的Map函数,即将输入数据处理为一组
Reducer执行由Mapper处理之后的结果,按照用户实现的Reduce函数输出到分布式文件系统。
Reducer的处理过程分为三个子过程,Shuffle(取数据)、Sort(排序)和Reduce(归约)。
在取数据阶段,Reducer将从Mapper处理节点获取中间数据。
随后排序过程将Shufile阶段获取的中间结果进行一次排序.最后安装用户定制的Reducer函数对排好序的数据进行归约,得到输出数据。
Hadoop在Map输出的中间结果阶段进行了优化,引入了Combine阶段,由于一个Mapper上的中间数据将会被多个Reducer取走,因此Combine先将Mapper本地的中间结果进行类Reducer的方式处理,可以使得Reducer直接取走需要的数据。
Combilie能够减少中间结果中
默认的Combme函数直接使用用户实现的Reducer函数,当然用户也可以自己重新编写Combine函数。
而Reducer获取Mapper数据的分块函数为Partitioner,Partitioner决定了那些中间处理结果应该由哪些Reducer处理,默认的Partitioner函数为HashPartitioner,是一个根据Reducer需要的
Hadoop系统坚持本地计算的基本思想:
数据存储在哪一台计算机上,就由这台计算机进行这部分数据的计算,这样可以减少数据在网络上的传输,降低对网络带宽的需求。
在Hadoop这样的基于集群的分布式并行系统中,计算结点可以很方便地扩充,而因它所能够提供的计算能力近乎是无限的,但是由数据需要在不同的计算机之间流动,故网络带宽变成了瓶颈,是非常宝贵的,“本地计算”是最有效的一种节约网络带宽的手段,业界把这形容为“移动计算比移动数据更经济"。
1.4Hadoop的容错控制
由于Hadoop所在集群节点具有廉价、低可靠性的特点,Hadoop系统层面的容错控制就变得非常重要。
1)TaskTracker的容错控制:
TaskTracker定期(默认为3秒)向JobTracker发送心跳信息,如果JobTracker在一段时间(默认为10秒)之内没有再收到来自TaskTracker的心跳信息,则将这个TaskTracker列入黑名单。
TaskTracker发送的心跳信息包含着当前TaskTracker中运行任务的状态信息,如任务的运行数量和任务的运行状态。
当TaskTracker出现异常的时候,运行在上面的任务在JobTracker便会被登记为Failed,JobTracker随后会选择另外一个节点重新执行这个任务。
运行在异常节点上的已完成的Map任务也会被重启因为这些任务完成的输出数据已经无法再访问到,而Reduce任务无需被重启是因为Reduce任务的输出数据已经被存入全局文件系统。
当原执行在节点A上的Map任务因为A节点异常转移到节点B时,JobTracker会通知所有依赖于该Map任务的Reduce任务这个执行转移关系。
2)JobTracker的容错控制:
Hadoop的单点控制模型使得整个系统的任务控制变得简单易行,但是单点控制也称为系统稳定性的瓶颈。
当JobTracker失效时,Hadoop多种恢复方法,如从备份节点获得状态信息,或者从TaskTracker处获得同步信息,或者将整个系统的作业状态抛弃等。
其中第一种方法简单易行,但是可能在少数情况出现回滚异常。
1.5Hadoop子项目简介
除了HDFS和MapReduce,Hadoop还有多个子项目,以满足各个应用层次的不同需求。
由于各个子项目针对的是不同应用层次的需求,所以其目标和落脚点
各有不同。
这里对Hadoop其他子项目进行简要的介绍[51]:
1)Avro:
Avro是一个使用RPC实现Hadoop系统中数据序列化的子项目,Avro提供了富数据结构和压缩的、快速的二进制数据格式,而且Avro为用户提供了动态语言集成接口,用户可以使用各种不同的编程语言(C/C++,JAVA,Python等)进行数据序列化编程。
2)Chukwa:
Chukwa是一个致力于通过数据收集监控大型分布式系统的子项目。
Chukwa建立在HDFS和MapReduce框架之上,并且继承了Hadoop高可扩展性和健壮性的优点。
Chukwa同样还提供了一整套提供显示、监视和结果分析的工具集,以提高监控效果和监控的可用性。
3)HBase:
HBase为Hadoop提供了类似GoogleBigtable[52]进行大规模数据处理的数据库系统。
HBase为MapReduce作业提供了方便的数据库表项接121,使得用户可以在使用MapReduce框架时可以直接从HBase数据库中读取并存储数据。
HBase优化了大规模的数据访问,并针对数据库应用特点对Hadoop的数据存储进行了优化。
4)Hive:
Hive为Hadoop用户提供了一整套机制使得可以直接使用基于SQL的数据块操作语句对HDFS和MapReduce框架进行访问。
Hive同时简化了用户编写Map和Reduce函数的过程,使用户可以在Hive的框架编写更加简单的Map和Reduce函数,为用户编写更加复杂和高效的数据分析和挖掘工具提供了简便的途径。
5)Pig:
Pig是用于分析大规模数据集的平台,它集成了用于数据分析的高层程序设计语言。
Pig为MapReduce框架提供了必要的并行化机制,使得在处理更大规模数据集时可以更好的拆分效果。
Pig同时为用户提供了友好的编程借口和优化组件。
6)Zookeeper:
Zookeeper是Hadoop系统中集中提供配置信息、名字空间、同步串行操作以及用户分组服务的模块。
Zookeeper建立在Hadoop体系结构之上,为用户提供了可选择的分布式系统配置服务。
2.OpenStack平台研究
2.1openstack原理
OpenStack由三部分组成,分别是云计算,云存储,镜像服务。
OpenStack可以单独提供其中的一部分,也可以将这三部分组合起来,搭建一个通用的云平台。
OpenStack首先将数据中心虚拟化,利用管理程序提供应用程序和硬件之间抽象的对应关系。
如图:
OpenStack通过两个实现数据中心虚拟化。
1.为每个服务器提供了抽象的硬件(例如第一台主机HOST1,其实提供了抽象的4台主机,而上面的四台主机或许是一台抽象的服务器)。
2.实现对每个服务器资源的更好的利用,利用了虚拟机,下图是更多的实现
上面每个虚拟的服务器,或者网络,或者存储设备之后都是一个Pool,这样无论对资源的分配还是对请求响应都是更加灵活而有效。
OpenStack完成数据中心虚拟化后,openstack提供对云进行管理的一层,负责在云上部署各种应用和文件,同时还要提供对应用和文件的检索,创建和分配虚拟机,当虚拟机用完之后还要撤销,要提供用户和管理员接口,用户要能知道自己的应用的情况,管理员也要能知道整个云的运行情况,负责云存储的分配,检索,收回。
2.2OpenStack的关键特性
OpenStack有很多关键特性,这些特性主要有:
1.管理虚拟化的产品服务器和相关资源(cpu,memory,disk,network),
提高其提高其利用率和资源的自动化分配(具有更高的性价比)。
2.管理局域网(Flat,FlatDHCP,VLANDHCP,IPv6),程序配置的IP和VLAN,能为应用程序和用户组提供灵活的网络模式。
3.带有比例限定和身份认证:
这是为自动化和安全设置的,容易管理接入用户,阻止非法访问。
4.分布式和异步体系结构:
提供高弹性和高可用性系统
5.虚拟机镜像管理:
能提供易存储,引入,共享和查询的虚拟机镜像
6.虚拟机实例管理:
提高生命周期内可操作的应用数量,从单一用户接口到各种API,例如一台主机虚拟的4台服务器,可以有4中API接口,管理4个应用。
7.创建和管理实例类型(Flavors):
为用户建立菜单使其容易确定虚拟机大小,并作出选择。
8.iSCSI存储容器管理(创建,删除,附加,和转让容器):
数据与虚拟机分离,容错能力变强,更加灵活。
9.在线迁移实例。
10.动态IP地址:
注意管理虚拟机是要保持IP和DNS的正确
11.安全分组:
灵活分配,控制接入虚拟机实例。
12.按角色接入控制(RBAC)。
13.通过浏览器的VNC代理:
快速方便的CLIadministration。
在新版本的openstackdiablo版本中,新添加的一些功能,这些功能用图表示如下:
2.3OpenStack的特征
1.镜像即是服务:
范围内存储和检索虚拟机镜像。
2.多格式、多容器支持:
与所有通用镜像格式兼容。
3.镜像状态:
提供可见和可用的结构。
4.弹性API:
OpenStack的镜像服务范围,不同的镜像。
5.元数据:
存储和检索关于镜像的信息。
6.镜像核对:
确保数据整合。
7.大量的日志。
8.整合测试:
核实虚拟机功能。
9.后端存储选项:
更大灵活性支持swift,local,S3或者HTTP。
2.4OpenStack的体系结构
2.4.1OpenStack的云计算结构
1.以数据库和队列为基础
Nova-compute负责决定创造虚拟机和撤销虚拟机,通过运行一系列系统命令(例如发起一个KVM实例,)并把这些状态更新到nova-database中区,nova-schedule负责从queue里取得虚拟机请求并决定把虚拟机分配到哪个服务器上去。
这里需要一些算法,可以自己定义,目前有Simple(最少加载主机),chancd(随机主机分配),zone(可用区域内的随机节点)等算法。
Nova-volume负责记录每一个计算实例,相当于一个计算请求吧,并负责创建,分配或撤销持久层容器(Amazon的,iSCSI,AoE等等)给这些computeinstances。
Nova-network负责处理队列里的网络任务,例如设置bridginginterfaces或者changingiptablesrules。
Nova-database存储一个云基础设施的大部分的编译时和运行时状态
要区别glancedatabase.镜像数据库(可以用OpenStackObjectStorage(swift)实现,也可用S3,或者本地存储)。
Nova-api:
几乎提供所有对外的接口API,也提供“cloudcontroller”,也做一些检查
Nova-schedule:
得到一个虚拟机实例的请求从队列中,并且决定它应该在哪里运行。
目前支持的策略:
Simple(最少加载主机),chancd(随机主机分配),zone(可用区域内的随机节点)等算法
2.Dashboard是一个客户入口。
Dashboard是基于web的客户管理系统。
2.4.2OpenStackObjectStorage部署
1.ObjectStorage安装
一个代理节点和若干存储节点。
2.代理节点安装
运行swift-proxy-serverprocesses和swauthservices,提供从代理到存储节点的请求。
3.存储节点:
运行swift-account-server,swift-container-server,
swift-object-serverprocesses。
提供对账户数据库、容器数据库、和实际存储对象的存储控制。
初始化时最好不要少于5个存储点。
4.安装运行管理服务器的节点。
部署图如下:
3.VMware云技术方法
3.1虚拟化
虚拟化是推动向云计算转变的重要催化剂。
虚拟化和云计算基础架构领域的全球领导者VMware依靠虚拟化,提供了可显著减少IT复杂性的云计算基础架构和管理解决方案、云计算应用程序平台解决方案和最终用户计算解决方案。
VMware已凭借其领导地位延揽了超过25,000家技术和服务合作伙伴。
VMware还是为最大的云计算服务提供商群体(包括2,600多家vCloud服务提供商)提供核心云计算基础架构的业界领先供应商。
此外,VMware正在与Bluelock、Colt、SingTel、Terremark和Verizon等领先云计算提供商密切合作,以提供新的 VMwarevCloud数据中心服务。
VMwarevCloud数据中心服务是新型企业级混合云计算服务,可提供企业所要求的灵活性以及安全性、互操作性和控制力。
VMwarevCloud数据中心服务构建在由VMware开发并经我们认证为兼容的体系结构之上,而不是商用公共云计算服务。
VMware使企业能够为其业务提供动力,同时节省资源(财务、人力和环境资源)。
其经过客户验证的解决方案可为企业提供实现云计算技术的优势所需的所有功能。
通过虚拟化提高IT资源和应用程序的效率和可用性。
首先消除旧的“一台服务器、一个应用程序”模式,在每台物理机上运行多个VM虚拟机。
。
让您的IT管理员腾出手来进行创新工作,而不是花大量的时间管理服务器。
在非虚拟化的数据中心,仅仅是维持现有基础架构通常就要耗费大约70%的预算,用于创新的预算更是微乎其微。
借助在经生产验证的VMware虚拟化平台基础上构建的自动化数据中心,您将能够以前所未有的速度和效率响应市场动态。
VMwarevSphere 可以按需要随时将资源、应用程序甚至服务器分配到相应的位置。
VMware客户通过使用VMwarevSphere虚拟化技术整合其资源池和实现计算机的高可用性,通常可以 节省50%到70%的IT总成本。
1可以在单个计算机上 运行多个操作系统,包括Windows、Linux等等。
2可通过创建一个适用于所有Windows应用程序的 虚拟PC 环境,让您的Mac计算机运行Windows。
3通过提高 能效、减少硬件需求量以及提高服务器/管理员比率,可以 降低资金成本
4可确保 企业应用程序发挥出最高的可用性和性能
5可通过改进 灾难恢复解决方案提高 业务连续性,并在整个数据中心内实现高可用性
6可改进 企业桌面管理和控制,并加快桌面部署,因应用程序冲突带来的支持来电次数也随之减少
3.2安全性
虚拟化是从旧式应用程序向新式云计算基础架构进行转变不可或缺的基础,是云计算环境中重要的安全保障条件。
VMware为新一代云计算安全解决方案奠定了基础,可有效应对云计算环境中面临的应用程序和数据安全挑战。
VMware解决方案提供了独有的自检功能,可帮助识别难以检测到的问题并实现全面的安全控制。
这些功能进一步提高了性能、降低了复杂性并提供了更全面的安全保护。
利用VMware云技术解决方案,企业可以确保快速实施和监控安全策略以实现IT遵从性,同时保持适当级别的控制力和对所有权领域的可见性。
它们可以使安全性更加灵活,因此IT人员可以利用实时迁移等动态功能,并确保安全策略始终无缝地跟随IT服务。
它们还可以提供经济高效的单一框架来实现云部署的全面保护。
3.3自动化和管理
企业无需花费宝贵的时间管理物理基础架构或应用程序,VMware解决方案使他们能够专注于创新和为企业提供价值。
将所有硬件资源集中到虚拟构造块中并定义关联应用程序服务级别后,企业可以根据业务规则和应用程序需求部署自动化计划。
云计算自动化和 云计算管理可帮助IT部门实现超高效率,确保计划和策略与业务情况相符并在云的服务交付机制(根据服务级别交付的应用程序和服务)中定义计划和策略。
将这些自动化和管理规则应用于云计算基础架构,可以有效地实现零接触式基础架构,其中IT以服务的形式提供。
使用可保持企业所需安全性、控制力和遵从性的云计算方法,IT部门还可以更好地管理风险。
3.4互操作性和开放性
除了作为安全的云计算基础之外,VMware解决方案还可确保在内部数据中心与 VMwarevCloud合作伙伴提供的外部托管和 服务提供商云之间实现应用程序可移植性。
这使得应用程序无需或只需很少修改就能够在内部或外部正常运行。
除了基础架构之外,VMware还提供云计算应用程序平台,使开发人员能够创建可移植的云计算应用程序,从而进一步增强企业应对变化的能力。
如今,全世界有200多万开发人员依靠VMware云计算应用程序平台创建可移植、动态、可扩展而且针对云规模的部署(包括 VMforce 和 GoogleAppEngine 等流行的公共云产品上的部署)而优化的各种应用程序。
IT人员可以利用VMware解决方案来安全地跨任何设备动态部署和管理支持云计算的IT服务,从而将这种灵活性扩展到最终用户。
VMware解决方案可确保在一个通用管理和安全模型内的各个云之间实现应用程序移动性和可移植性。
这些解决方案基于开放标准,包括美国国家标准协会(ANSI)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算 平台 比较