《云计算及其实践教程》课件5.Hadoop云平台.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《云计算及其实践教程》课件5.Hadoop云平台.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 云计算及其实践教程 计算 及其 实践 教程 课件 Hadoop 平台
- 资源描述:
-
1、内容n5.1 并行计算概述n5.2 Hadoop概述n5.3 HDFS(Hadoop Distributed File System)n5.4 MapReducen5.5 HBasen5.6 Zookeepern5.7 Hadoop的程序实例运行与分析5.1 并行计算概述n5.1.1 并行计算定义n5.1.2并行计算的体系结构n5.1.3 集群计算n5.1.4并行计算的进程模型n5.1.5并行编程模型n5.1.6 并行计算发展阶段5.1.1 并行计算定义 n并行计算是相对于串行计算而言的,它的基本思路是用多个处理器来同时协调求解一个问题,即将需要求解的问题分解成若干个部分,各部分分配给一个独立
2、的处理机来进行并行计算。n在分类上可分为时间上的并行和空间上的并行。n时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。n并行计算的研究得益于科学计算问题,但目前以MapReduce为代表的分割数据型并行计算在商业领域也得到广泛应用。5.1.2并行计算的体系结构 n目前,主要的并行计算体系结构有以下四种:n对称多处理(SMP:Symmetrical Multi-Processing):它由处理单元、高速缓存、总线或交叉开关、共享内存以及 I/0等组成。n大规模并行处理(MPP:Massively Parallel Processing):它是并行计算机发展过程中的主
3、力,现在已经发展到由上万个处理机构成一个系统。n分布式共享存储多处理(DSM:Distributed Shared-Memory):它较好地改善了 SMP 的可扩展能力,是目前高性能计算机的主流发展方向之一。n集群(Cluster):Linux 平台的集群系统己成为最流行的高性能计算平台,在高性能计算机中占有越来越大的比重,系统规模可从单机、少数几台联网的微机直到包括上千个节点的大规模并行系统,既可作为廉价的并行程序调试环境,也可设计成真正的高性能计算机。SMP系统与系统与MPP系统比较系统比较SMP(Symmetric Multi Processing),对称多处理系统内有许多紧耦合多处理器
4、,在这样的系统中,所有的CPU共享全部资源,如总线,内存和I/O系统等,操作系统或管理数据库的复本只有一个,这种系统有一个最大的特点就是共享所有资源。对称性:系统中任何处理器均可以访问任何存储单元和I/O设备。SMP系统与系统与MPP系统比较系统比较MPP(Massively Parallel Processing),大规模并行处理系统,这样的系统是由许多松耦合的处理单元组成的,要注意的是这里指的是处理单元而不是处理器。每个单元内的CPU都有自己私有的资源,如总线,内存,硬盘等。在每个单元内都有操作系统和管理数据库的实例复本。这种结构最大的特点在于不共享资源。理想的共享存储多处理器基于总线的D
5、SMn多处理器结构n带缓存的多处理器结构概念n集群(Cluster)是一种分布式处理系统,由很多连接在一起的独立计算机节点组成,像一个单独集成的计算机资源一样协同工作。n计算机节点可以是物理上集中在一起的,也可以是物理上分散而通过LAN连结在一起的。一个连接在一起(LAN基础上)的计算机集群对于用户和应用程序来说像一个单一的系统,这样的系统可以提供一种价格合理且性能快速而可靠的解决方案。集群特点n集群计算主要有以下几个特点:n集群技术支持混合平台工作模式,体系结构上可以同时支持RISC和IA节点,操作系统上可以同时支持Windows Server、LINUX、Unix等操作系统。n集群技术具有
6、统一的系统监控和管理功能,可以简单直观的监控到整个集群的软硬件运行状态,同时通过集群的主机入侵检测系统保障系统的安全性。特点n集群计算主要有以下几个特点:n集群技术的架构具有优异的动态扩展性,可以根据用户应用的需要,随时增加新的节点,而不必改动整个集群系统。n集群服务器节点可以根据不同的需要,灵活的进行调整和配置,承担不同的应用服务、计算任务,或通过软件管理协同处理某一特定任务。分类n集群的分类和工作原理n按照侧重点的不同,可以把集群分为三类:n高可用性集群 n负载均衡集群 n超级计算集群 可用性n计算机系统的可用性定义为:n MTTF/(MTTF+MTTR)*100%n平均无故障时间(MTT
7、F):计算机系统平均能够正常运行多长时间,才发生一次故障 n平均维修时间(MTTR):系统发生故障后维修和重新恢复正常运行平均花费的时间 n由此可见,计算机系统的可用性定义为系统保持正常运行时间的百分比。可用性n计算机产业界通常用如下表所示的9的个数来划分计算机系统可用性的类型。可用性分类可用性分类可用水平可用水平每年停机时间每年停机时间容错可用性999999 1 min极高可用性999995 min具有故障自动恢复能力的可用性999953 min高可用性9998.8 h商品可用性9943.8h高可用性集群n高可用性集群n运行于两个或多个节点上,目的是在系统出现某些故障的情况下,仍能继续对外提
8、供服务。高可用性集群的设计思想就是要最大限度地减少服务中断时间。n高可用性集群能适用于提供动态数据的服务,是由于集群中的节点共享同一存储介质,如磁盘阵列。也就是说,在高可用性集群内,每种服务的用户数据只有一份,存储在共用存储设备上,在任一时刻只有一个节点能读写这份数据 两节点集群典型结构系统组成n两台节点服务器n节点可以是一个单处理器(PC、工作站)或多处理器的系统(共享存储的多处理机),拥有内存、I/O设备和操作系统。n集群管理软件n实现集群功能需要集群软件。如Turbolinux TurboHA,或者与MS Windows Server集成在一起的集群软件MSCS(Microsoft Cl
9、uster Server),或者如IBM 的HACMP软件,HP 的MC Service Guard。n共享存储设备n如磁盘阵列等。用来存储大量的由各节点共享的数据。存储设备通过I/O控制卡和相应的传输介质连接到节点。系统组成n心跳链路(Heartbeat Link)n用来实现集群中两个节点之间的直接高速互连,并交换信息。可以通过RS232线缆实现,也可通过内部连接网卡以双绞线方式实现。n网络链路n用来与网络交换机相连,并进一步连接到所有的客户端设备,从而使各个客户端能够访问集群的资源。高可用性集群工作过程举例n以Linux 环境为例,集群中有两个节点A和B,设这个集群只提供Oracle服务,
10、用户数据存放于共用存储设备的分区/dev/sdb3上。n在正常状态下,节点A提供Oracle数据库服务,分区/dev/sdb3被节点A加载在/mnt/oracle上。n当系统出现某种故障并被TurboHA软件检测到时,TurboHA会将Oracle服务停止,并把分区/dev/sdb3卸载。之后,节点B上的TurboHA软件将在节点B上加载该分区,并启动Oracle服务。n对于Oracle服务有一个虚拟的IP地址,当Oracle服务从节点A切换到节点B上时,虚拟的IP地址也会随之绑定到节点B上,因此用户仍可访问此服务。负载均衡集群n负载均衡集群n目的是提供和节点个数成正比的负载能力,这种集群很适
11、合提供大访问量的Web服务。负载均衡集群往往也具有一定的高可用性特点。n负载均衡集群适用于提供相对静态的数据的服务,比如HTTP服务。因为通常负载均衡集群的各节点间没有共用的存储介质,用户数据被复制成多份,存放于每一个提供该项服务的节点上。Turbolinux Cluster Server负载均衡集群的工作机制n下面以Turbolinux Cluster Server为例简要介绍一下负载均衡集群的工作机制。n在集群中有一个主控节点,称为高级流量管理器(ATM)。假设这一集群仅被用来提供一项HTTP服务,其余各节点均被设定为HTTP的服务节点。n用户对于页面的请求全部发送到ATM上,因为ATM上
12、绑定了这项服务对外的IP地址。ATM把接受到的请求再平均发送到各服务节点上,服务节点接收到请求之后,直接把相应的Web页面发送给用户。负载均衡集群的工作机制n这样一来,假如在1秒内有1000个HTTP页面请求,而集群中有10个服务节点,则每个节点将处理100个请求。n这样,在外界看来,好象有一台10倍速度的高速计算机在处理用户的访问。这也就是真正意义上的负载均衡。负载均衡集群的工作机制n但是ATM要处理所有1000个页面请求,它会不会成为集群处理速度的瓶颈呢?n由于对于页面请求的数据量相对较少,返回页面内容的数据量相对较大,因此这种方式还是很有效率的。nATM发生故障,也不会导致整个系统无法工
13、作。Turbolinux Cluster Server可以设置一台或多台计算机为后备ATM节点,当主ATM节点故障时,在后备ATM中会产生出一个新的主ATM,接替它的工作。可以看出,这种负载均衡集群也具有一定的高可用性。nTurboCluster中采用的调度策略有:n轮回(Round Robin)、n加权轮回(Weighted Round Robin)、n最少连接(Least Connection)两者的结合n高可用性集群对一种服务而言不具有负载均衡功能,它可以提高整个系统的可靠性,但不能增加负载的能力。n当然,高可用性集群可以运行多种服务,并将其适当分配在不同节点上,比如节点A提供Oracl
14、e服务,同时节点B提供Sybase服务,这也可以看成是某种意义上的负载均衡,不过这是对多种服务的分配而言 n对于同一种服务,是不能同时获得高可用性与负载均衡能力的。对一种服务,要么是只有一份数据,放在共用存储设备上,一次被一个节点访问,获得高可用性;要么是把数据复制为多份,存储于每个节点的本地硬盘上,用户的请求同时发送到多个节点上,获得负载均衡能力超级计算集群n超级计算集群。按照计算关联程度的不同,又可以分为两种:n一种是任务片方式,要把计算任务分成任务片,再把任务片分配给各节点,在各节点上分别计算后再把结果汇总,生成最终计算结果;n另一种是并行计算方式,节点之间在计算过程中大量地交换数据,可
15、以进行具有强耦合关系的计算。n这两种超级计算集群分别适用于不同类型的数据处理工作。有了超级计算集群软件,企业利用若干台PC机就可以完成通常只有超级计算机才能完成的计算任务 云计算系统的资源组织方式n云计算系统的资源组织方式有两种n虚拟机方式n利用虚拟化技术,在物理服务器抽象出能够被上层使用的虚拟化服务器,以屏蔽底层硬件差异的影响,并提高资源的利用率。n其上的执行环境与传统PC系统相同,通常在IaaS服务中提供n分布式集群方式分布式集群方式n分布式集群方式的原理是首先由云操作系统组织一批物理服务器或者虚拟服务器构成集群,然后再在集群上部署分布式软件系统作为上层软件的开发和执行环境,包括n分布式集
16、群管理n分布式程序开发环境n分布式文件系统n分布式数据库n等等两种资源组织方式比较n虚拟化架构虽然也可用于整合分布式的服务器节点,但其思想是一种“分裂”思想,也就是把服务器“分裂”成多台虚拟机来调度;n而分布式集群架构则侧重于“聚合”各个服务器的资源,输出一种新的“计算”和“存储”能力。n互联网公司(如GoogleHadoop)采用分布式集群架构的比例更高;企业私有云(如IBMVMwareMicrosoft AzureAmazonEC2OpenStack)则以虚拟化技术的应用为主。5.1.4并行计算的进程模型 n主从模式(Master-slave):有一个主进程,其它为从进程。在这种模式中,主
17、进程一般负责整个并行程序的数据控制,从进程负责对数据的处理和计算任务,当然,主进程也可以参与对数据的处理和计算。一般情况下,从进程之间不需要发生数据交换,数据的交换过程是通过主进程来完成的。n对等模式:在这种编程模式中,没有哪个进程是主进程,每个进程的地位是相同的。对等模式即参与运算的各进程地位相同,计算程序一致,只是处理的数据不同。然而,在并行实现过程中,我们总是要在这些进程中选择一个进行输入输出的进程,它扮演的角色和主进程类似。5.1.5并行编程模型 n并行编程模型是并行算法和并行计算机硬件结构间的桥梁,它用并行编程接口的形式提供给程序开发员,程序开发员通过这种并行编程接口编写并行程序,从
18、而实现并行算法。并行编程模型n并行编程模型比较流行的是消息传递模型 MPI(Message Passing Interface),共享存储模型OpenMP以及数据并行模型。n共享存储模式:以OpenMP为代表,主要是利用添加并行化指令到串行程序中,由编译器完成自动并行化。n消息传递模式:以MPI为代表,PVM(并行虚拟机,Parallel Virtual Machine Computing)是消息传递模式的一个变种。n数据并行模式:MapReduce是数据并行计算模型的典范,在云计算领域被广泛采用。并行编程模型n可以这样打比方:n作并行计算好比是盖楼房,你有了MPI就好比是有了砂石,水泥和钢材
19、,你可以盖最美的房子,但你必须使用最原始状态的原材料,付出可观的智力劳动;n你有了OpenMP就好比是有了预制板和各种预制件,可以非常快速地造房子,事半功倍;n你有了数据并行环境,可以比作你有了包工头,很多事情您就可以完全依靠他了。n也许比喻方式不是很恰当,但是三种编程模式的优劣、效率是很有差别的,可以不夸张地说OpenMP比MPI要容易很多倍。MPInMPI(Message Passing Interface)是消息传递并行程序设计的标准之一.MPI正成为并行程序设计事实上的工业标准。nMPI的实现包括MPICH、LAM、IBM MPL等多个版本,最常用和稳定的是MPICH,曙光天潮系列的M
20、PI以MPICH为基础进行了定制和优化。n然而,MPI同样存在着一些不足。由于进程的唯一性和显式消息传递的特点,加上MPI标准繁琐,从而使得基于其开发并行程序也相当复杂。在通信上也会造成很大的开销 OpenMPnOpenMP提供了对并行算法的高层的抽象描述,程序员通过在源代码中加入专用的pragma来指明自己的意图,由此编译器可以自动将程序进行并行化,并在必要之处加入同步互斥以及通信。n当选择忽略这些pragma,或者编译器不支持OpenMP时,程序又可退化为通常的程序(一般为串行),代码仍然可以正常运作,只是不能利用多线程来加速程序执行。OpenMPnOpenMP支持的编程语言包括C语言、C
21、+和Fortran。n要在Visual C+.NET 中使用OpenMP其实不难,只要将 Project 的Properties中C/C+里Language的OpenMP Support开启(参数为/openmp),就可以让VC+.NET在编译时支持OpenMP 的语法了;而在编写使用OpenMP 的程序时,则需要先include OpenMP的头文件:omp.h两种并行编程模型特征对比特征消息传递共享存储典型代表MPIOpenMP适用体系结构所有流行的并行机SMP,DSM控制流多进程多线程数据存储方式分布式共享存储数据分配方式显式隐式两种并行编程模型特征对比n消息传递模型编写的程序可移植性好
22、,但编程难度系数大于共享存储这种编程模型,n共享存储模型编写的程序只适用于SMP(Symmetrical Multi-Processing)和DSM(Distributed Shared-Memory)这两种并行机,可移植性稍微逊色于消息传递模型编写的程序,但编程简单。两种并行编程模型特征对比n消息传递并行编程能支持进程间的分布式存储模式,即各个进程只能直接访问其局部内存空间,而对其他进程的局部内存空间的访问只能通过消息传递来实现。n共享存储并行编程基于线程级细粒度并行,仅被SMP和DSM并行计算机所支持,可移植性不如消息传递并行编程3)数据并行模型n从程序和算法设计人员的角度来看,并行计算又
23、可分为数据并行和任务并行。n一般来说,因为数据并行主要是将一个大任务化解成相同的各个子任务,比任务并行要容易处理。n对于数据密集型问题,可以采用分割数据的分布式计算模型,把需要进行大量计算的数据分割成小块,由网络上的多台计算机分别计算,然后把结果进行组合得出数据结论。nMapReduce是分割数据型并行计算模型的典范,在云计算领域被广泛采用。并行计算涉及的研究领域 n包括三方面的主要研究内容,即n硬件方面并行计算机的研究,n软件支持方面并行程序的设计n与理论基础方面并行算法的研究 并行计算的研究存在的问题n并行计算的研究存在的问题主要总结为 4 个方面。n(1)对比并行计算研究的3 个主要研究
24、内容来看,理论基础即并行算法的研究相对比较薄弱;n(2)当前的并行计算研究尚未十分成熟,并不能非常有效地利用并行计算资源;n(3)尚未有一门比较简单高效地并行编程语言供程序员使用,也未有比较成熟的开发环境;n(4)并行计算的硬件基础并行计算机本身有着比较难以管理,可扩展性难以保证等困难,目前尚未有比较成熟的管理方法。5.2 Hadoop概述n5.2.1 Hadoop的由来n5.2.2 Hadoop的特点n5.2.3 Hadoop基本结构n5.2.4 Hadoop的应用5.2.1 Hadoop的由来nHadoop 源于两个开源项目 Nutch和Lucene。nLucene 是一个高性能全文检索工
25、具包,是利用 Java 语言开发的。nLucene 并不是一个应用程序,而是一个简单而且容易使用的 API 库。n它可以很容易地植入到各种应用程序中,从而实现搜索和索引功能。Hadoop的由来nNutch 是第一个 Web 搜索引擎,它在 Lucene 项目的基础上增加了一些与 Web 相关的功能、网络爬虫以及一些需要解析各类文档格式的插件等等,它还包含一个用来存储数据的分布式文件系统。n从 Nutch0.8.0开始,Nutch将其中实现分布式文件系统以及MapReduce 算法的代码独立分列出来,从而实现了一个新的开源项目Hadoop。Hadoop名字的来源nHadoop并不是一个缩写字,而
展开阅读全文