71010201白涵冰《云计算技术》论文.docx
《71010201白涵冰《云计算技术》论文.docx》由会员分享,可在线阅读,更多相关《71010201白涵冰《云计算技术》论文.docx(26页珍藏版)》请在冰豆网上搜索。
71010201白涵冰《云计算技术》论文
云计算结课论文
学院:
计算机科学与工程学院
班级:
13计师
(2)班
学号:
201371010201
姓名:
白涵冰
任课老师:
陈旺虎
2015.12.3
对云计算技术的认识
摘要
云计算是2007年底正式提出的一个新的概念,它可以说是一个革命性的创新,意味着计算能力也可以作为一种商品进行流通,就像煤气、水电一样,取用方便,费用低廉,不同之处只是在于它是使用互联网进行传输的。
至今为止,Google、Microsoft、IBM、亚马逊等IT商业巨头都推出了自己的云计算平台,并把云计算作为其未来发展的最主要战略之一。
因此,云计算的研究不但紧跟业界技术发展的趋势,同时还具有较高的应用价值。
Hadoop是一个在集群上运行大型数据库处理应用程序的开放式源代码框架。
它是通过Google的MapReduce编程范例来创建并执行的应用程序,在很多大型网站上都已经得到了应用,可以说是目前最为广泛应用的开源云计算软件平台,但其发展时间较短,研究还不够深入,还有较多值得改进的地方。
关键词:
云计算HadoopMapReduce
Abstract
Asanewconceptproposedintheendof2007,cloudcomputingisagreatrevolutionintheITfield.Itmeansthatcomputingcallbeusedasacommodity,likecoalgasorelectricity.Theonlydifferencebetweenthemisthatcloudcomputingtransportsbythecomputernetworks.Uptonow,Google、Microsoft、IBM、Amazonandsomeotherfamouscooperationshaveproposedtheircloudcomputingapplication,andtakecloudcomputingasoneofthemostimportantstrategyinthefuture.Hadoopisanopensourcecodeframeforverylargedataprocessapplication,whichrunsonaclusterofcommercialPCs.ItcreateparallelprogramthroughGoogle`sMapReducemethodandhasalreadybeenusedbymanyfamousITcompanies.Hadoopcanbetakenasthemostpopularopensourcecouldcomputingsoftware,buttherearemanypointstobeimprovedsinceitisayoungprogram.
KeyWords:
cloudcomputingHadoopMapReduce
目录
摘要1
Abstract2
第1章绪论4
1.1本文工作的来源4
1.2目的和意义4
1.3国内外进展4
1.3.1国外进展4
1.3.2国内进展5
第2章云计算相关背景7
2.1云计算概述7
2.1.1云计算基本概念7
2.2云计算关键技术8
2.2.2数据存储和管理9
2.2.3虚拟化技术9
第3章Hadoop平台研究10
3.1概述10
3.1.1Hadoop概述10
3.1.2HDFS介绍10
3.1.3MapReduce介绍11
3.2Hadoop构架以及原理12
3.3GFS文件系统14
3.4HadoopAPI的使用15
3.4.1API中的包15
3.4.2MapReduce框架结构16
第4章基于Hadoop分布式运行程序18
4.1搭建Hadoop环境18
致谢18
参考文献19
第1章绪论
1.1本文工作的来源
云计算是2007年底正式提出的一个新的概念,至今为止,几乎所有的IT行业巨头都将云计算作为未来发展的主要战略之一,相关商业媒体也将云计算视为计算机未来发展的主要趋势,其商业前景和应用需求已勿庸置疑。
云计算是一种全新的商业模式,其核心部分依然是云后端的数据中心,它使用的硬件设备主要是成千上万的工业标准服务器,它们由英特尔或AMD生产的处理器以及其他硬件厂商的产品组成。
企业和个人用户通过高速互联网得到计算能力,从而避免了大量的硬件投资。
云计算的基本原理是,通过将计算分布在大量的分布式计算机上,使企业数据中心的运行更加类似于使用互联网。
从而使企业能够将随时资源切换到需要的应用上,根据需求访问计算机和存储系统。
云计算已经深刻地影响着整个IT产业。
云计算是在分布式计算、网格计算、并行计算等发展的基础上提出的一种新型计算模型,是一种新兴的共享基础架构的方法。
它将带来工作方式和商业模式的根本性改变。
我们的生活已经与互联网密不可分,云计算的发展足一种不可逆转的趋势。
因此,我们需要更进一步地认识云计算技术,探索它的发展与问题。
1.2目的和意义
Hadoop是Apache开源组织的一个分布式计算开源框架,它可以运行在大中型集群的廉价硬件设备上,为应用程序提供了一组稳定可靠的接口。
同时,它是Google集群系统的一个开源项目总称,Google集群系统是使用低成本的成熟技术构建的一个稳定、高性能、高可用性、可扩展的系统,它的底层是Google文件系统(GoogleFileSystem,GFS)。
HDFS是GFS的开源实现,它是Hadoop的底层实现部分,存储Hadoop集群中所有存储节点上的文件。
Hadoop平台虽然是一项新兴的技术,但它的发展非常迅速,究其原因首先在于它将并行计算“平民化",它对程序员屏蔽了并行应用开发的细节,程序员只需将精力放在业务逻辑上。
其次Hadoop平台可以运行在普通的PC机群上,极大地降低开发成本,这也让个人研究、实施分布式系统更加容易。
总的来说,本文有以下几方面的意义:
1).现代企业的数据量十分庞大,如何对海量数据进行有效管理成为了企业的关键问题。
如果利用云存储技术解决这个问题,无疑会提高企业的经济效益。
2).HDFS可以实施运行在普通的PC集群上,极大降低了实施运行分布式系统的成本。
3).对HDFS的研究方法可以推广到别的集群存储技术研究上,为下一步研究打好基础。
4).Hadoop平台还没有被广泛地应用于各行各业,一旦我们在基于HDFS的云存储应用研究取得一定的成效,就会对Hadoop技术起到推广作用。
1.3国内外进展
1.3.1国外进展
云计算在国外的从2007年就兴起了,下面对其发展状况作一个简要的介绍:
IBM于2007年8月高调推出“蓝云(BlueCloud)计划。
IBM的WillyChiu透露,云计算将是IBM接下来的一个重点业务。
这也是IBM扩张自身领地的绝佳机会,IBM具有发展云计算业务的一切有利因素:
应用服务器、存储、管理软件、中间件等等,IBM抓住了这样一个良好的机会,提出了“蓝云”计划。
2008年8月,IBM斥资3.6亿美元在美国北卡罗来纳州开始建立云计算数据中心,并将该数据中心称为史上最复杂的数据中心,投入了大量人力物力。
IBM还在东京建立了一所新的研究机构,建立帮助用户使用云计算基础设施。
该数据中心占地6万平方英尺,预计将于2009年下半年投入运营。
IBM表示:
“使用该数据中心的用户能够获得空前的互联网计算能力,并获得业内领先的环保优势和成本。
”IBM在东京的专家将为大企业、大学和政府提供云计算咨询,帮助他们利用云计算设施,设计云计算应用,以及向他们的用户提供基于云计算的服务。
在2009年的计划中,IBM计划于推出数种云计算服务产品。
Google于2007年10月在全球宣布了云计划,同时与IBM合作,把全球很多大学纳入“云计算”计划当中。
当月,Google与IBM开始在美国大学校园,包括卡耐基梅隆大学、麻省理工学院、斯坦福大学、加州大学伯克利分校及马里兰大学等,推广云计算的计划。
希望从而降低分布式计算技术在学术研究方面的成本,并为这些大学提供相关的软硬件设备及技术支援(包括数百台个人计算机及BladeCenter与Systemx服务器,以及Linux、Xen、Hadoop等开源平台)。
而这些学校的学生则可以通过网络开发各项以大规模计算为基础的研究计划。
2008年1月30日,Google宣布在台湾启动“云计算学术计划”。
与台湾台大、交大等学校合作,将这种先进的大规模、快速计算技术推广到校园。
2009年4月,GoogleAppEngine(GAE)的最新升级已经开始支持Java,并且添加了一系列专门瞄准企业业务的新功能:
此后,Google还发布了一款Eclipse插件,可以对GoogleAppEngine的Java开发提供强力支持,由此可见Google已经为企业级云计算做好了准备。
亚马逊于2007年开放了名为“弹性计算机云"(ElasticComputeCloud,EC2)的服务,以便让小的软件公司可以按需购买亚马逊数据中心的处理能力,而不需要从硬件开始搭建自己的系统。
如今,Linux,Window,JBoss,Eclipse等常用操作系统和软件都已经在EC2平台上得到了支持,其他应用软件也在不断地加入。
截至2008年底,亚马逊云计算相关业务收入已达l亿美元。
2007年11月,雅虎建立了一个小规模的云,开放给卡内基梅隆大学的研究人员。
2008年7月,雅虎与惠普、英特尔、伊利诺斯州大学香槟分校、新加坡信息通信发展管理局以及德国卡尔斯鲁理工学院共同创立了开源试验场OpenCirrus,主要进行云计算方面的研究和教育。
2009年4月雅虎宣布了与加州大学伯克利分校、康奈尔大学以及马萨诸塞大学阿姆赫斯特分校合作,与卡内基梅隆大学一起使用雅虎的云计算群来进行大规模系统软件研究,开发新的应用程序以分析互联网上的各种数据集如投票记录和在线新闻源等等。
微软公司正在开发脱离普通桌面的互联网操作系统“Midori”,该系统不同于已经有20多年历史的Windows。
Midori目的是为了大规模应用云计算技术。
微软的竞争优势很明显,全世界有数以亿计的Windows用户,微软所要做的就是将这些用户通过互联网更紧密地连接起来,并通过WindowsLive向他们提供云计算服务。
微软正在努力创造一种从一般的硬盘存储方式转移到任何时间地点都可以接入的存储的模式用户体验,从而在互联网战略上拉近同Google的距离。
微软的云平台Azure开发己初步完成,如今已可以随时访问其站点。
1.3.2国内进展
在我国,云计算发展也非常迅猛。
2008年6月24日,IBM在北京IBM中国创新中心成立了第二家中国的云计算中心——IBM大中华区云计算中心;2008年11月28日,广东电子工业研究院与东莞松山湖科技产业园管委会签约,广东电子工业研究院将在东莞松山湖投资2亿元建立云计算平台;2008年12月30日,阿里巴巴集团旗下子公司阿里软件与江苏省南京市政府正式签订了2009年战略合作框架协议,计划于2009年初在南京建立国内首个“电子商务云计算中心”,首期投资额将达上亿元人民币;2009年11月11日,全国首家云计算产业协会在深圳成立,协会的成立标志深圳市政府对于云计算产业在未来发展的高度重视,同时标志着深圳市企业对于云计算研究及应用领域的关注与信心,深圳市高科技产业发展迈向成熟,而云计算产业则给深圳信息产业带来新的商机,当前深圳是全国首个大力发展云计算的城市,现在有100多家企业从事云计算相关产业研究和技术开发等,未来产业将蕴藏巨大的商机。
2009年12月中国云计算技术与产业联盟在京成立,四十多家企业一起共同倡议成立中国云计算技术与产业联盟。
2010年8月上海公布云计算发展战略,3年内云计算将为上海新增1000亿元的服务业收入,推动百家软件和信息服务业企业转型,培育10家年收入超亿元的龙头企业和10个云计算示范平台。
上海的目标很明确:
打造亚太地区的云计算中心。
我国主导的云计算发展企业,同美国类似,包括互联网公司,IT公司,电信运营商等,但由于起步较晚,这些公司的业务方向都不明确,产业链中的位置也不明确。
具体计划向外提供业务的公司包括互联网公司(世纪互联、腾讯、新浪、盛大、蓝汛、阿里巴巴),基础电信运营商(中国移动、中国电信、中国联通)等。
世纪互联网专门为云计算成立了Cloudex子公司,云计算服务节点已经遍布国内多个数据中心,可为用户提供包括联通、移动、电信等多种带宽接入。
产品包括面向中小型WebHosting客户的云主机租用服务,同时还为中大规模的服务器托管客户提供云托管。
世纪互联的云计算业务已经为包括网络游戏、应用软件开发、物流平台应用、行业网站应用等多类客户提供了云计算基础设施服务。
世纪互联的云计算业务目前规模仍然非常有限,正处于上升阶段。
世纪互联是国内最大的专业IDC提供商,具备大量的服务器资源,因此世纪互联的云计算业务是提高原有服务器和其他设备利用率,提供云计算业务有基础条件,也有长期积累的客户基础,基本不存在泡沫。
阿里巴巴是国内云计算业务走在前面的另一企业,阿里巴巴专门成立了从事云计算业务的新公司“阿里云”,计划筹建多个“电子商务云计算中心”,首个云计算中心已经在2009年初落户江苏南京,首期投资额即达上亿元人民币。
阿里巴巴的云计算业务以大规模的低成本计算机集群为依托,构建互联网上的分布式存储和计算的服务,降低用户大规模数据处理和大运算量计算的成本。
阿里巴巴的云计算业务以原有的大规模服务器为基础,目标客户是大量原有的中小企业用户,是顺应IT技术发展的产物。
1.4本文工作的主要内容在广泛的文献调研基础上,本论文主要对基于Hadoop的云计算理论和基于Hadoop的分布式云计算环境进行研究,具体包括:
Hadoop构架及实现原理MapReduce,GoogleFileSystem相关资料、搭建Hadoop运行环境和实现简单的一个基于Hadoop分布式运行程序。
在云计算系统的后端架设了大量的服务器,这些服务器分布在各个地方,负责不同的地域和服务,结构比较复杂。
如何将如此大量的服务器有效地组织起来是保证云计算系统高效稳定运行关键问题之一。
Hadoop是一个在集群上运行大型数据库处理应用程序的开放式源代码框架。
它支持通过Google的MapReduce编程范例来创建并执行的应用程序,在很多大型网站上都已经得到了应用,可以说是目前最为广泛应用的开源云计算软件平台。
Hadoop平台最大的优点就是实现了并行对平台程序设计人员的透明处理,应用开发者可以像开发普通程序一样来开发云计算的应用系统,底层会自动完成并行化。
本文主要以云计算与Hadoop为主题进行扩展研究,涉及下面三个方面的内容:
1).广泛查阅资料的基础上,对云计算的背景以及国内外的发展现状进行了一个很全面的了解。
云计算的基本的概念以及发展前期其他计算模式的历程,在这十年间的历程中云计算逐渐走向应用,它的特点和优势,对我们现今生活方式的改变起了很大的作用。
云计算的普遍应用能更加使资源的利用更合理更节约更安全。
其中云计算的发展至今有许多的相应的技术,它的分布式编程模式的思想,还有数据存储和管理,其中虚拟化技术更是为云计算的发展带来了铺垫。
2).本文的下一部分对云计算的一个实现平台Hadoop加以研究,这是一个开放源代码的平台,其思想来源于Google的云计算平台,它的出现使我们分布式编程实现成为了可能,也使云计算更加的普及到商业中来。
这部分对Hadoop的文件系统HDFS做了一些介绍,还有MapReduce相关的知识。
Hadoop是怎么构架以及实现的原理通过与GFS文件系统的比较更深入了解分布式系统的构架,最后详细的介绍了HadoopAPI的使用,API中的包,MapReduce框架结构,以便于更详细的了解Hadoop做任务的原理,编出更好的程序。
3).本文的最后一部分是把理论知识转化为实践,搭建一下Hadoop的运行环境,体验一下Hadoop给我们带来的方便。
首先安装虚拟机,在虚拟机上安装ubuntu11.04系统,然后安装java、ssh等Hadoop所需的环境,然后配置一下系统的环境变量,和Hadoop的配置文件,以便能运行Hadoop,最后用MapReduce的思想编一个分布式运行程序WordCount实例,我们只需要写出其Map类和Reduce的类就行,其他的分布运行的细节全部由Hadoop来实现。
只需简单的几行代码,就可以让许多机器为你工作。
只需要加个结点,就可以让程序跑在各个计算机上,大大增加了程序运行的效率。
第2章云计算相关背景
2.1云计算概述
云计算是分布处理(DistributedComputing)、并行处理(ParallelComputing)和网格计算(GridComputing)的综合发展,或者说是这些计算机科学概念的商业实现;也是效用计算(UtilityComputing)、虚拟化(Virtualization)、Haas(硬件即服务)、SaaS(软件即服务)、PaaS(平台即服务)等概念结合创新的结果。
2.1.1云计算基本概念
云计算是一种革命性的突破,它表示计算能力也可作为一种商品进行流通,当然这种商品是通过互联网进行传输的。
云计算的最主要目标就是:
在来来,只需要一台笔记本或者一个手机,就可以通过网络服务来得到我们需要的一切服务,甚至包括实现超级计算这样的任务。
从这个角度而言,最终用户将成为云计算的真正拥有者。
简单的说,云计算就是利用互联网上的大型数据中心的软件和处理数据的能力,把复杂的运算从用户终端移到云上去做。
云计算既指通过互联网以服务方式提供的应用程序,也指在数据中心用来提供这些服务的硬件和系统软件,它的概念是在SaaS(Softwareasaservice,软件即服务)的基础上发展起来的。
现在很多人都开始了解SaaS对终端用户和服务提供商的好处:
服务提供商可以享受到软件安装维护简单、能集中控制产品更新带来的优点;最终用户在“任何时间、任何地点”都可以访问这些服务,可以共享数据,更易协作,将他们的数据安全地存放在基础设施中。
云计算并不改变SaaS这些模式,但它给了应用程序提供者更多的选择,使得他们不用配置数据中心就能提供SaaS产品。
就像半导体代工的出现使没有生产线的芯片公司也有机会设计销售芯片一样,云计算允许不用构建或提供数据中心就能部署SaaS,并根据需求缩放SaaS的规模。
而SaaS的用户可以把一些问题交给提供商来解决,SaaS的提供商也可以把自己的一些问题交给云计算提供商解决。
从硬件的角度来看,云计算有三个方面是新的:
1).可以按需获取的看似无限的计算资源,从而使云计算用户不需要在提供服务很久之前就要做计算资源的规划。
2).消除了云用户的先期的投入,从而使公司可以从小规模做起,随着需求增加来扩展他们的硬件资源,降低了风险。
3).能够以很短的时间为单位付费按需使用计算资源(例如,处理器按小时付费以及存储器按天付费),不需要的时候就将这些资源释放。
这样,通过将闲置的机器和存储器释放来节省开支,提高整体利用率。
对于云计算的具体类型,InfoWorld网站同数十家公司、分析家和IT用户讨论出了云计算的几大形式:
1).软件即服务(SoftwareasaService,SaaS)软件即服务的云计算通过浏览器把程序传给成千上万的用户。
在用户的角度看来,可以省去在架设服务器和软件授权上的开支;从供应商角度来看,缩减了程序的维护,能够减少成本。
Salesforce.CON)是这类服务最为出名的公司。
一般来讲,SaaS在人力资源管理程序和ERP中比较常用。
2).实用计算(UtilityComputing,UC)实用计算的思想提出很早,但是直到最近才在Amazon、Sun、IBM和其它提供存储服务和虚拟服务器的公司中被明确使用起来。
这种云计算是通过IT行业创造虚拟的数据中心使得其能够把内存、I/O设备、存储和计算能力集中起来,构建程一个虚拟的资源池来为整个网络提供服务。
3).平台即服务(PlatformasaService,PaaS)平台即服务是指集成了SaaS(SoftwareasaService),HaaS(HardwareasaService),DaaS(DataasaService)的复合系统,这种形式的云计算把开发环境作为一种服务来提供。
你可以使用中间商的设备来开发自己的程序,然后通过互联网和其服务器传到用户手中。
4).管理服务提供商(ManageServiceProvider,MSP)管理服务提供商可以称作最古老的云计算运用之一。
这种应用更多的是面向IT行业而不是终端用户,常用于邮件病毒扫描、程序监控等等。
一些大型的公司集团更加可能使用这种服务。
2.2云计算关键技术
计算的关键技术:
编程模式、数据存储技术和管理技术、虚拟化技术。
云计算是一种新型的超级计算方式,以数据为中心,是一种数据密集型的超级计算。
在数据存储和管理、编程模式和虚拟化等方面具有自身独特的技术。
下面对这三大关键技术作一个简单的介绍:
2.2.1简单的编程模式
编程模式主要针对的是使用云计算的服务进行开发的用户,为了使这些用户能方便的利用云后端的资源,使用合适的编程模式编写应用程序来达到需要的目的或提供服务,云计算中的编程模式应该尽量方便简单。
最好使得后台复杂的并行执行和任务调度向编程人员透明,从而是编程人员可以将精力集中与业务逻辑。
Google提出的MapReduce的编程模式是如今最流行的云计算编程模式。
现在几乎所有IT厂商提出的“云”计划中采用的编程模式,都是基于MapReduce思想的。
MapReduce这种编程模式并不仅适用于云计算,在多核计算和并行处理上同样具有良好的性能。
但该编程模式仅适用于编写数据处理为主、能够高度并行化的程序,简单的说,它是对同类型数据的分布式处理,对于计算数据具有相互联系,不可分割的应用并不适合。
如何改进该编程模式,使程序员得能够轻松的编写各种需要的程序,实现真正意义上的并行编程,是MapReduce编程模式未来的发展方向。
Hadoop软件平台对MapReduce技术已有具体的应用,本论文第三章将对其原理和技术有详细介绍。
2.2.2数据存储和管理
为保证数据的高可用和高可靠性,云计算的数据一般采用分布式的方式来存储和管理。
类似于一般的数据存储安全保证办法,云计算也采用冗余存储的方式来保证存储数据的可靠性。
由于云计算系统需要同时满足大量用户的需求,并行地为大量用户提供服务,因此云计算的数据存储技术必须具有高吞吐率,分布式存储正好满足了这一需求特点。
现在,云计算的数据存储技术主要有谷歌的非开源的体系GFS(GoogleFileSystem)和Hadoop团队的开发的对于GFS[10]的开源实现HDFS(HadoopDistributedFileSystem)。
有很大一部分IT厂商,包括yahoo,Intel,阿里巴巴的云存储计划采用的都是HDFS的数据存储技术。
本论文在也安装部署了Hadoop的HDFS平台并使用其进行数据存储。
云计算系统对大数据集进行处理,而且需要向用户提供高效的服务,因此数据管理技术也必须能够对大量数据进行高效的管理。
由于云计算的特点是对大量的数据进行反复的