教学课件:《Hadoop云计算实战》.ppt

上传人(卖家):三亚风情 文档编号:3523617 上传时间:2022-09-11 格式:PPT 页数:159 大小:5.08MB
下载 相关 举报
教学课件:《Hadoop云计算实战》.ppt_第1页
第1页 / 共159页
教学课件:《Hadoop云计算实战》.ppt_第2页
第2页 / 共159页
教学课件:《Hadoop云计算实战》.ppt_第3页
第3页 / 共159页
教学课件:《Hadoop云计算实战》.ppt_第4页
第4页 / 共159页
教学课件:《Hadoop云计算实战》.ppt_第5页
第5页 / 共159页
点击查看更多>>
资源描述

1、第1章云计算概论云计算概论1.1 云计算概述 云计算被称为继个人计算机、互联网之后的第三次信息化革命。云计算将成为推动电信业乃至广义ICT产业下一轮突破发展的重要驱动力。什么是云计算?云计算是一个提供便捷的通过互联网访问一个可定制的IT资源(包括网络、服务器、存储、应用、服务)共享池能力的按使用量付费模式,这些资源能够快速部署,并只需要很少的管理工作或很少的与服务供应商的交互。云计算将网络上分布的计算、存储、服务构件、网络软件等资源集中起来,基于资源虚拟化的方式,为用户提供方便快捷的服务,其可以实现计算与存储的分布式与并行处理。如果把“云”视为一个虚拟化的存储与计算资源池,那么云计算则是这个资

2、源池基于网络平台为用户提供的数据存储和网络计算服务。互联网是最大的一片“云”,其上的各种计算机资源共同组成了若干个庞大的数据中心及计算中心。云计算产生的背景?(1)需求是云计算的动力。(2)技术是云计算发展的基础。(3)商业模式是云计算的内在要求,是用户需求的外在体现,并且云计算技术为这种特定商业模式提供了实现可能性。云时代谁是主角?1Google 2IBM 3微软 云+端、软件+服务是对微软云计算的最佳诠释。云计算的特征?计算能力也可以作为一种商品进行流通,就像天然气、水及电一样,使用方便,费用低廉。但最大的不同在于,它是通过互联网进行传递的。云计算是并行计算(Parallel Comput

3、ing)、分布式计算(Distributed Computing)及网格计算(Grid Computing)的发展,或者说是这些计算科学概念的商业实现。(1)超大规模。(2)虚拟化。(3)提高设备计算能力。(4)高可靠性。(5)减少设备依赖性。(6)通用性。(7)高可扩展性。(8)弹性服务。(9)按需服务。(10)极其廉价。云计算的发展?云计算的服务层次?云计算的服务形式?分为IaaS、PaaS和IaaS 3种类型。将基础设施作为服务SaaS 将平台作为服务PaaS 将软件作为服务 IaaS云计算的实现机制?目前还没有一个统一的技术体系结构 综合不同厂家的方案,构造了一个较统一的云计算体系结构

4、,如图1-8所示。其概括了不同解决方案的主要特征,每一种方案或许只实现了其中某部分功能,或者也还有部分相对次要功能尚未进行概括。云计算技术体系结构图 简化的IaaS实现机制云计算的研究方向?1商业模式 2业务产品与技术应用 3运营管理 4核心技术 5标准化/互通性/开放性 6体系架构 7法律法规 云计算的产业链特点云计算发展趋势?市场发展趋势 中小企业是推动中国云计算发展的主要因素之一。私有云计算将成为下一代数据中心(NGDC)建设的主要目标。相关政府政策 技术条件 硬件、软件、网络和虚拟化等。1.2 云计算关键技术研究云计算关键技术研究 虚拟化技术 数据存储技术 资源管理技术 能耗管理技术

5、云监测技术1、虚拟化技术虚拟化技术 目前普遍使用3种虚拟机技术:VMware Infrastructure、Xen、KVM。(1)Vmware 是虚拟化技术的龙头,VMware Infrastructure能创建自我优化的IT基础架构。通过服务整合,降低IT成本并提高灵活性。减少计划内和计划外停机以改进业务连续性。运行较少的服务器并动态关闭不使用的服务器。(2)Xen 是由XenSource管理的一个开源GPL项目。Xen是openSUSE和Novell主要支持的虚拟化技术,其能够创建更多的虚拟机,每一个虚拟机都是运行在同一个操作系统上的实例。(3)KVM 是基于Linux内核的虚拟机,是一种

6、新的虚拟机实现方案,也称为内核虚拟机。2、数据存储技术云计算环境有以下3个优势:在工作量可并行计算的前提下,计算能力是弹性的。数据存储在不信任的主机上。数据通常是进行远程复制。因此,只有两种数据管理应用程序可能适合部署到云计算中:和事务处理相关的数据管理系统;和分析相关的数据管理系统。一致性树的建立过程?建立加权图G(V,E),将每一服务器副本作为一个节点,并由这些副本组成加权图的顶点集V,服务器副本间的直接联系作为边,并组成加权图的边集E,网络路径的可靠性作为边的权重。选择根节点,由控制器选择可靠性最高的服务器副本作为将建立的一致性树的根节点,并由该副本负责与用户的联系。在指定的根节点后,将

7、树的根节点作为单一源点,利用单源点最短路径Dijkstra算法,找出根节点到各副本节点的最可靠的路径,并建立一致性树。为了保证数据的一致性且不造成性能下降,在云数据库系统中设立了两种节点,一种是控制器,另外一种是数据服务器副本。系统中可能有两个或两个以上的控制器,其任务是建立一致性树。当用户访问数据服务器时,由控制器决定所要选择的数据库;当有故障发生时,由控制器重建树。数据服务器副本用于存储数据,完成各项事务处理及其他一些数据库操作。所有的副本之间是有联系的,其中委派一个主副本建立与用户的联系,并负责与其他副本保持通信,以保证数据的及时更新。3、资源管理技术 云系统依据用户的资源获取请求,动态

8、分配计算资源。4、能耗管理技术降低能耗的措施:减少数字垃圾 进行策略性的界面设计 提高使用意识 避开使用高峰期5、云监测技术(1)大规模监测系统Chukwa(2)虚拟机内部监测法 基于主机代理 陷阱与检查 检测点与回滚 体系结构监控内部监测法内部监测法能能 力力影影 响响 度度健健 壮壮 性性主机代理主机代理较好较差好好陷阱与检查陷阱与检查好较好差差检测点与回滚检测点与回滚好较好差差体系结构监控体系结构监控较差较差较好较好好好1.3 云计算应用研究云计算应用研究 1 语义分析应用 2 IT企业应用 3 生物学应用 4 电信企业应用 5 数据库的应用 6 地理信息应用 7 医学应用1.4 云安全

9、云安全 云安全包含两方面的含义:一是云计算应用自身的安全,如云计算应用系统及服务安全、云计算用户信息安全等;一是云计算在安全领域的具体应用,如基于云计算的防病毒技术、挂马检测技术等。云安全研究的方向?(1)云计算安全 云安全主要研究如何保障云计算应用的安全。(2)网络安全设备、安全基础设施的“云化”“云化”是指通过采用云计算的虚拟化和分布式处理技术实现安全系统资源的虚拟化和池化。其研究主体是传统安全设备厂商。(3)云安全服务 按服务模式可分为两类:SaaS业务、PaaS业务。云安全难点问题?(1)需要海量的客户端(云安全探针)。(2)需要专业的反病毒技术和经验。(3)需要大量的资金和技术投入。

10、(4)开放的系统,且需要大量合作伙伴的加入。云安全新增及增强功能 新增功能:木马下载拦截 木马判断拦截 自动在线诊断 增强功能:漏洞扫描 强力修复 进程管理 高级工具集 七大监控1.5 云计算云计算的的生命周期生命周期(1)服务模板定义。准备云计算环境,将各种合适的资源纳入到云计算资源池,准备标准的计算能力。(2)创建服务目录。将计算资源标准化,按照服务的方式进行提供。(3)服务订阅。云服务消费者申请云计算能力和服务,或者更改某个已有的服务申请。(4)服务运行。通过自动化的供应平台使消费者在指定的时间获取云计算资源;并需要确保云计算服务的质量,包括其计算性能和可靠性。(5)服务终止。当消费者不

11、再需要服务时,服务会被终止,资源就会被回收。资源可以重新放回资源池以重新利用。云服务生命周期1.6 云计算存在的问题云计算存在的问题 安全问题 技术问题 经济问题 网络问题 兼容性问题1.7 云计算的优缺点云计算的优缺点云计算的优点云计算的缺点第第2章章Hadoop相关项目介绍相关项目介绍2.1 Hadoop简介 Hadoop为一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力高速运算和存储。Hadoop的基本架构 Hadoop Common:整个Hadoop项目的核心。Avro:Hadoop RPC(远程过程调用)方案

12、。Chukwa:用来管理大型分布式系统的一个数据采集系统。HBase:用来支持结构化数据存储的分布式数据库,用Bigtable实现开源。HDFS:用于提供高吞吐量的分布式文件系统,用GFS实现开源。Hive:用于提供数据摘要和查询功能的数据仓库。MapReduce:为大型数据的分布式处理模型,用MapReduce实现开源。Pig:在MapReduce基础上构建的一种高级数据流语言,用Sawzall实现开源。Sawzall:建立在MapReduce基础上的领域语言,其程序控制结构与C语言类似,但代码简洁得多。ZooKeeper:用于解决分布式系统中一致性问题,用Chubby实现开源。Hadoop

13、 Common为Hadoop的内核,包括一系列支持其他Hadoop子项目的公共工具,如文件系统、RPC远程过程调用、虚拟化库等。HDFS为Hadoop提供的一个可扩展、结构化、具备日志的分布式文件系统,其支持大型、分布式大数据量的读写操作,其容错性较强。HBase为Hadoop提供的分布式数据库,其为一个有序、稀疏、多维度的映射表,具有良好的伸缩性和高可用性。ZooKeeper为Hadoop提供的针对大型分布式系统的可靠协调系统,提供配置维护、名字服务、分布式同步、组服务等功能。MapReduce为Hadoop采用的分布式计算模型,能在集群上分布式处理大规模数据集。MapReduce框架和HD

14、FS通常运行在一组相同的节点上,以在数据节点上高效地调度计算任务,从而使集群的网络带宽被高效地利用。2、Hadoop文件系统结构3 Hadoop文件读操作4、Hadoop文件写操作2.2 Hadoop系统性质 1、可靠存储性可靠存储性 冗余存储 错误恢复 集群的平衡 数据完整性检查 元数据磁盘失效 2、数据均衡数据均衡2.3 比较SQL数据库与Hadoop 1用向外扩展替代向上扩展 2用键/值替代关系表 3MapReduce替代SQL 4用离线批量处理替代在线处理2.4 MapReduce概述概述 MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。1 MapReduc

15、e实现机制实现机制2 MapReduce执行流程执行流程 一个MapReduce作业实际上由一系列Map任务和Reduce任务构成3、MapReduce映射和化简4、MapReduce输入格式5、MapReduce输出格式6、MapReduce运行速度2.5 HBase概述概述1、HBase的系统框架 Client 使用HBase的RPC机制与HMaster和HRegionServer进行通信,对于管理类操作,Client与HMaster进行RPC;对于数据读写类操作,Client与HRegionServer进行RPC。ZooKeeper 存储-ROOT-表的地址和HMaster的地址,把自己

16、以Ephemeral方式注册到ZooKeeper中。HMaster 主要负责Table和Region的管理工作。HRegion 当表的大小超过设置值时,HBase会自动地将表划分为不同的区域。从物理上来说,一张表被拆分成了多块,每一块就是一个Hregion,用表名+开始/结束主键来区分。HRegionServer 响应用户I/O请求,向HDFS文件系统中读写数据,是HBase中最核心的模块。2、HBase访问接口 Native Java API:最常规和高效的访问方式,适合Hadoop MapReduce Job并行批处理HBase表数据。HBase Shell:HBase的命令行工具,最简单

17、的接口,适合HBase管理使用。Thrift Gateway:利用Thrift序列化技术,支持C+、PHP、Python等多种语言,适合其他异构系统在线访问HBase表数据。REST Gateway:支持REST风格的HTTP API访问HBase,解除了语言限制。Pig:可以使用Pig Latin流式编程语言来操作HBase中的数据,和Hive类似,本质最终也是编译成MapReduce Job来处理HBase表数据,适合做数据统计。Hive:当前Hive的Release版本尚未加入对HBase的支持,但在Hive 0.7.0以上版本中将会支持HBase,可以使用类似SQL语言来访问HBase

18、。3、HBase的存储格式 1HFile格式格式 HFile文件是不定长的,长度固定的只有其中的两块,分别为Trailer和FileInfo。Trailer的指针指向其他数据块的起始点;FileInfo中记录了文件的一些Meta信息,如AVG_KEY_LEN、AVG_VALUE_LEN、LAST_KEY、COMPARATOR等。Data Index和Meta Index块记录了每个Data块和Meta块的起始点。2HLog格式格式 HLog文件就是一个普通的Hadoop Sequence File,Key是HLogKey对象,记录了写入数据的归属信息。4、HBase的读写流程 HBase的读数

19、据流程为:客户端连接ZooKeeper,获取-ROOT-节点的位置信息。客户端咨询-ROOT-节点,定位包含请求行的.META.Region范围。客户端查找.META.Region,获取包含用户数据的Region及其所在位置。客户端与Region Server直接交互,读取数据。Hbase的写数据流程为:客户端将写操作添加到Log文件中,接着把数据写入Memcache中。当Memcache填满时,内容被持久存储到HDFS文件系统的Store中。Region Server周期性地发起Flush Cache命令,将Memcache中的数据持久存储到Store,同时清空Memcache。2.6 Zo

20、oKeeper概述概述 ZooKeeper是一个针对大型分布式系统的可靠协调系统,提供包括配置维护、名字服务、分布式同步、组服务等在内的功能。ZooKeeper的目标是封装好复杂、容易出错的关键服务,将简单易用的接口和性能高效、功能稳定的协同工作系统提供给用户。3、ZooKeeper数据模型 ZooKeeper是一个小型的分布式文件系统,其维护一个层次化的树结构,树节点被称为znode,用于存储数据,每个节点都有一个访问控制列表ACL。4、ZooKeeper工作原理 ZooKeeper的系统模型图 ZooKeeper服务系统5、ZooKeeper实现机制 ZooKeeper可运行在两种模式:单

21、机模式、复制模式。ZooKeeper的实现原理:确保对znode树的每次修改都被复制到集群的大部分机器上,这样就可以在部分机器出现故障时能快速恢复ZooKeeper服务。通过运行以下两阶段协议来实现该能力。选举Leader。选举一个杰出的组员,称之为Leader,其他的机器称之为Follower。原子性广播。所有写请求都先被转发到Leader上,Leader将更新操作广播到Follower。当大多数成员持久化存储这个更新后,Leader提交更新,并回复客户端写操作成功。如果Leader失效,剩下的机器将进行新的Leader选举过程,选取一个新的Leader。如果以前的Leader恢复,其将变成

22、一个Follower。6、ZooKeeper的特性(1)会话 当客户端成功连接到ZooKeeper服务器时,与服务器建立了一个会话(Session)。(2)版本号 版本号(Version)是一种乐观加锁的机制,使客户端能够检测出对节点的修改冲突。(3)监控 当节点的状态发生变化时,监控(Watcher)机制可以让客户端得到通知。ZooKeeper提供以下几种属性。(1)层次化目录结构命名符合常规文件系统规范,不能包含/。节点znode可以包含数据与子节点。客户端应用可在节点上设置监视器。节点数据不支持部分读写,而是一次性完整读写。(2)Ephemeral创建的节点不是持久节点,一旦与客户端的会

23、话结束,节点自动删除。(3)Sequence创建节点时,编号自动加1,例如x-1、x-2、s-3、x-4等。(4)WatchWatch(监控器)允许客户端在znode发生变化时获得通知。在ZooKeeper中,Watch由一个操作设置,由另一个操作触发,并且每个Watch只触发一次。2.7 Hive概述概述 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。2.7.1 Hive的组成 Hive包括如下相关组件:用户接口:包括Shell、Thrift客户端、Web接口等。Thr

24、ift服务器:当Hive以服务器模式运行时,可以作为Thrift服务器,供客户端连接。元数据库:通常存储在关系数据库如MySQL、Derby中。解析器:包括解释器、编译器、优化器、执行器,通过一系列的处理对HiveQL查询语句进行词法分析、语法分析、编译、优化及查询计划的生成。查询计划由MapReduce调用执行。Hadoop:数据仓库和查询计划存储在HDFS上,计算过程由MapReduce执行。2、Hive结构解析 注册表由多个Hive文件组成,而一个Hive文件由多个巢箱(BIN)组成,Hive文件的首部有一个文件头(基本块,Base Block),用于描述这个Hive文件的一些全局信息。

25、一个BIN由多个巢室(CELL)组成,CELL可以分为具体的5种,用于存储不同的注册表数据。一个巢室可以容纳一个键、一个值、一个安全描述符、一列子键或者一列键/值,分别有对应的巢室来存储数据。键键巢巢室室 包含了一个注册表键(也称为键节点)的巢室,一个键巢室包含一个特征签名(对于一个键是kn,一个符号链接是kl)、该键最近一次更新的时间戳、该键父键巢室的巢室索引、代表该键的子键的子键列表巢室的索引、该键的安全描述符巢室索引、一个代表该键类名的字符串键巢室索引,以及该键的名称。值值巢室巢室 一个巢室,包含了关于一个键的值的信息,该巢室包含一个签名kv、该值的类型(如REG_DWORD或REG_B

26、INARY),以及该值的名称。一个值巢室也包含了另一个值巢室的索引,后者包含了对前者的数据。子子键列表巢键列表巢室室 由一系列的键巢室的巢室索引构成的巢室,这些键巢室是同一个父键下面的所有子键。值值列表巢列表巢室室 由一系列的值巢室的巢室索引构成的巢室,这些值巢室是同一个父键下面的所有值。其数据结构就是上文提到的结构,即_CM_KEY_NODE联合体中的ValueList数据域。安全安全描述符巢描述符巢室室 包含了一个安全描述符巢室,其首部的特征签名为ks,以及一个引用计数,该引用计数值记录了所有共享安全描述符的键节点数目,多个键巢室可以共享同样的安全描述符巢室。2.8 Pig概述概述 Pig

27、是一个用来处理大规模数据集的平台,和Google的Sawzall类似。Pig相当于一个Hadoop客户端,其先连接到Hadoop集群,之后才能在集群上进行各种操作。用户不能在集群中安装任何额外的软件,也不用对集群做任何配置。Pig的基本框架2.9 Cassandra概述概述2、Cassandra的体系结构 分为3层,分别为核心层、中间层和顶层。核心层:主要提供一些底层服务,包括用户的信息服务、基于DHT的分区策略、复制策略、集群状态及Gossip失效检测策略等。中间层:主要整合了Bigtable存储系统的架构技术,采用CommitLog日志记录、Memtable/SStable存储模型,及合并

28、压缩SStable所使用的压缩技术。顶层:主要提供API、监控工具及一些针对一致性问题的策略。3、Cassandra存储机制 充分借鉴了Bigtable的设计框架,采用Memtable/SSTable的存储方式,而且对于Cassandra来说只有顺序写,没有随机写。采用这种机制即相当于缓存写回机制(Write-black Cache),优势在于将随机I/O写变成顺序I/O写,降低了大量的写操作对于存储系统所带来的压力。4、Cassandra的写过程(1)客户端向Cassandra集群中单一随机节点发出写请求。(2)此节点将作为代理节点,并根据复制放置策略将写请求发送到N个不同节点。(3)N个节

29、点以RowMutation消息形式接收此写请求,并执行以下两个操作,将消息追加到CommitLog中,以满足事务性目的;将数据写入到Memtable,当Memtable结构数据满时需要刷新到SSTable。同时每个给定列族的一组临时的SSTable会被合并到一个大的SSTable,临时的SSTable会被当作垃圾回收。(4)代理节点必须等待这N个不同节点中的某些节点写响应的返回,才能将写操作成功的消息告诉客户端。Cassandra的写一致性水平(假设副本个数n)分为以下3种情况。ONE:确定写入到至少一个节点中的CommitLog和Memtable。QUORUM:确保至少写入到n/2+1个节点

30、上。ALL:确保写到n个节点上。Cassandra写具有以下几个特性:关键路径上无任何锁。缓存写入(Write Through Cache),快速高效。顺序磁盘访问。只有额外的写操作,没有额外的读开销。即使出现节点故障时也总是可写的。只保证基于列族的原子性。5、Cassandra的读过程(1)客户端发送一个读请求到Cassandra集群中的单一随机节点。(2)该节点根据复制位置策略将请求发送到N个不同节点上。(3)收到读请求的节点都要合并读取SSTable和Memtable。当扫描SSTable时,Cassandra使用一个更低级别的列索引与布隆过滤器来查找数据块。通过Bloom Filter

31、确定等查找Key所在的SSTable,及通过Idx确定Key在SSTable中的偏移位置。(4)代理节点必须等待这N个不同节点中的某些节点读响应的返回,才能将读操作成功的消息告诉客户端。Cassandra的读一致性水平(假设副本个数为n)分为以下3种情况。ONE:返回第一个响应的节点上面的数据,但不保证数据是最新的,通过读修复和一致性检查可保证后续的调用能够取最新的数据。QUORUM:查询n个节点,返回至少n/2+1个节点上的最新数据。ALL:查询n个节点,返回n个节点中的最新数据,一个节点失效将导致读失败。6、Cassandra的删除 在Cassandra系统中,其不会直接去删除数据。而是使

32、用了一个称为“墓碑”(Tombstone)的删除标记。当客户端从Cassandra中读取数据时,节点在返回数据前都会主动检查该数据是否被设置了删除标记,并且该删除标记的添加时长已经大于GCGraceSeconds,则要先删除该节点的数据再返回。2.10 Chukwa概述 随着云计算的兴起,深度加工集群产生的大量日志数据变得非常重要。怎样实现日志的自动分析(去除冗余,留取精华),怎样满足数据处理的动态可扩展,是集群系统监控的重中之重。Chukwa是一个开源的用于监控大型分布式系统的数据收集系统。还包含了一个强大和灵活的工具集,可用于展示、监控和分析已收集的数据。Chukwa的是与不是 Chukw

33、a作为Hadoop的一个子项目,是一个应用于大规模集群的数据收集系统,不但弥补了MapReduce在日志处理方面存在的不足之处,而且能够实现日志收集系统故障的统一处理。(1)Chukwa不是一个单机系统(2)Chukwa不是一个实时错误监控系统(3)Chukwa不是一个封闭的系统3、Chukwa的定义 Chukwa为分布式系统的数据采集和处理提供了一个强大强大且灵活灵活的平台。Chukwa面对的是最大规模的分布式群集,有2000以上的节点,每天产生的数据量在T级别以上。Chukwa管道模式的结构,数据采集和处理间通过接口通信,可充分利用成熟的新存储技术进行动态扩展更新和创建。代理:运行在集群的

34、每一个节点上,负责采集最原始的数据,并发送给收集器,其中代理不直接接收数据,而是通过内部适配器进行实际数据的收集。收集器:负责收集由代理传送的数据,并定时写入大规模集群中。MapReduce作业:定时启动,负责将集群中的数据进行分类、排序、去重及合并。Hadoop基础管理中心:一个网页门户界面,用于数据的最终展示。Chukwa的具体实现过程:Chukwa的代理首先将名为Initial_Adaptors的配置文件加载进去,该配置文件指定不同适配器所具体收集的日志内容。代理根据配置文件Inittial_Adaptors初始化所有的适配器。各个适配器进行数据的实际采集。代理通过HTTP将数据发送给集

35、群的收集器。收集器把数据存入Hadoop中。MapReduce作业定期运行,进行数据分析。HICC将结果呈现给用户。4、Chukwa架构与设计 Chukwa在集群的每个监控节点上部署一个专门的代理,由代理进行数据收集工作。监控节点和监控系统间通过接口实现,可根据不同数据采集和处理的应用需求进行灵活定制,同时,该接口模式优化了监控对象间的联系,有利于监控系统可靠性的提高。1代理与适配器 2元数据 3收集器 4MapReduce作业 5HICC 6数据接口 7数据支持 Chukwa的整体架构图:第第3章章Hadoop配置配置与实战与实战3.1 Hadoop的的安装安装 1、在Linux下安装Had

36、oop 安装Linux虚拟机SSH安装安装Java解压Hadoop安装包修改conf/hadoop-env.sh文件2、运行模式运行模式 Hadoop集群支持3种运行模式,即单机模式、伪分布模式和完全分布模式。(1)配置Hadoop(2)设置免密码SSH (3)运行Hadoop 1单机模式单机模式 2伪分布模式伪分布模式(1)配置Hadoop(2)设置免密码SSH (3)运行Hadoop 3完全分布式模式完全分布式模式3、在Windows下安装Hadoop 1单机模式下安装单机模式下安装Hadoop(1)下载安装JDK(2)下载安装Cygwin(3)设置环境变量(4)安装sshd服务(5)启动

37、sshd服务 2分布模式下安装分布模式下安装Hadoop3.2 运行运行Hadoop1.下载Hadoop安装包。2.修改Hadoop的4个配置文件:hadoop-env.sh、core-site.xml、hdfs-site.xml和mapred-site.xml3.进入Hadoop的bin目录,运行./start-all.sh启动Hadoop。3.3 Hadoop的的Avatar机制机制 Avatar机制是FaceBook提出的一个应用在Hado 该机制主要提供了一个StandbyNameNode节点作为热备,原NameNode在这套机制中被PrimaryNameNode替代,负责对外提供服务

38、。1、系统架构 PrimaryNameNode 以Primary方式启动的NameNode,作为主NameNode节点接受用户请求。AvatarNode0为主机名。StandbyNameNode 以Standby方式启动的NameNode,它是一个处于安全模式的NameNode节点。其定期读取PrimaryNameNode存储在NFS上的日志来更新自己内存中的元数据,并定期做CheckPoint,更新PrimaryNameNode、StandbyNameNode上的映像及PrimaryNameNode的日志文件。AvatarNode1为主机名。在Avatar机制中,NameNode进程被Ava

39、tarNode替代,AvatarNode是NameNode的子类。在PrimaryNameNode和StandbyNameNode节点上可以看到,运行的进程不再是NameNode而是AvatarNode。AvatarDataNode 此节点存储数据块,并向PrimaryNameNode和StandbyNameNode同时发送心跳信息和BlockReport,其中包括Block的位置信息。NFS服务器 存储PrimaryNameNode和StandbyNameNode的映像和日志。PrimaryNameNode将用户操作日志写入NFS上的日志文件,StandbyNameNode读取此文件,更新内

40、存中的元数据,并且定时做CheckPoint,将映像和日志回写到NFS服务器。客户端 此节点向PrimaryNameNode提出数据和元数据的读写请求。2、元数据同步机制3、切换故障过程 当PrimaryNameNode 或StandbyNameNode 宕机时的处理流程见下图:4、运行流程(1)AvatarNode0节点以PrimaryNameNode启动(2)AvatarNode1节点以StandbyNameNode启动(3)DataNode启动(4)AvatarNode0宕机(5)AvatarNode1切换为PrimaryNodeNode(6)AvatarNode0以Standby重启或

41、其他备用机器以Standby重启(1)AvatarNode0节点以PrimaryNameNode启动(2)AvatarNode1节点以StandbyNameNode启动(3)DataNode启动(4)AvatarNode0宕机(5)AvatarNode1切换为PrimaryNodeNode(6)AvatarNode0以Standby重启5、切换故障流程(1)集群正常运行状态(2)运行PrimaryNameNode的节点宕机(3)将StandbyNameNode切换为PrimaryNameNode(4)将新节点作为StandbyNameNode(1)集群正常运行状态(2)运行PrimaryNam

42、eNode的节点宕机(3)将StandbyNameNode切换为PrimaryNameNode(4)将新节点作为StandbyNameNode3.4 Hadoop实战实战 3.4.1 使用Hadoop运行wordcount实例 3.4.2 使用Eclipse编写Hadoop程序第第4章章Hadoop的分的分布式数据布式数据HDFS4.1 HDFS的操作的操作 HDFS是一个分布式文件系统。HDFS有着高容错性的特点,并且设计用来部署在低廉的硬件上。而且它提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。HDFS是Hadoop项目的一部分,而Hadoop又是Lucene的一部分

43、。1、文件操作(1)格式化Hadoop 启动前,先要格式化NameNode,先进入/home/hdfsinstall/hadoop目录,执行下面的命令:$bin/hadoop namenode format 如果不成功,可以在HADOOP_LOG_DIR目录下看日志文件。(2)启动Hadoop$start-all.sh:启动所有的Hadoop守护,包括NameNode,DataNode,JobTracker,TaskTracker。$stop-all.sh:停止所有的Hadoop。$start-mapred.sh:启动Map/Reduce守护,包括JobTracker和TaskTracker。

44、$stop-mapred.sh:停止Map/Reduce守护。$start-dfs.sh:启动Hadoop DFS守护NameNode和DataNode。$stop-dfs.sh:停止DFS守护。实现简单启动DFS的命令为:bin/start dfs.sh。(3)停止Hadoop$bin/stop dfs.sh 或$bin/stop all.sh (4)建立/删除目录$bin/hadoop dfs mkdir testdir$bin/hadoop dfs rmr testdir 上述命令在HDFS中建立一个名为testdir的目录。(5)复制文件 bin/hadoop dfs put/home

45、/hdfs/hdfsinstall/hadoop-0.20.2 tools.jar testdir/hadoop-0.20.2 tools.jar 上述命令把本地根文件目录testdir复制到根目录源文件目录tools.jar下。(6)查看现有文件$bin/hadoop dfs ls 或$bin/hadoop dfs ls testdir (7)查看当前文件系统状态 bin/hadoop dfsadmin report2、HDFS的管理与更新(1)退出安全模式NameNode在启动时会自动进入安全模式。当数据块最小百分比数满足配置的最小副本数条件时,会自动退出安全模式。也可通过下面的命令退出安

46、全模式:$bin/hadoop dfsadmin safemode leave(2)进入安全模式$bin/hadoop dfsadmin safemode enter (3)节点添加在新节点上安装好Hadoop,和NameNode使用相同的配置,修改$HADOOP_HOME/conf/master文件,加入NameNode主机名;然后在NameNode节点上修改$HADOOP_HOME/conf/slaves文件,加入新节点主机名,再建立到新加节点无密码的SSH连接,运行启动命令:$bin/start all.sh (4)负载均衡$bin/start-balancer.sh4.2 FS She

47、ll使用指南使用指南1cat命令命令调用方法:hadoop fs-cat URI URI 用于将路径指定文件的内容输出到stdout。将主机host1上的文件file1的内容输出到主机host2的文件file2上,代码如下:hadoop fs-cat hdfs:/host1:port1/file1 hdfs:/host2:port2/file2 如果在同一主机上要将文件file3的内容输出到文件file4上,代码:hadoop fs-cat file:/file3/user/hadoop/file4以上代码如果返回值为0,即表明输出成功;返回值为-1,则表明输出失败。2chgrp命令命令 调用

48、方法:hadoop fs-chgrp-R GROUP URI URI Change group association of files.With-R,make the change recursively through the directory structure.The user must be the owner of files,or else a super-user.Additional information is in the Permissions User Guide.以上方法用于改变文件所属的组,其中使用-R将使改变在目录结构下递归进行。命令的使用者必须是文件的所有者

49、或者超级用户。3chmod命令命令 调用方法:hadoop fs-chmod-R URI URI 以上方法用于改变文件的权限,其中使用-R将使改变在目录结构下递归进行。命令的使用者必须是文件的所有者或者超级用户。4chown命令命令 调用方法:hadoop fs-chown-R OWNER:GROUP URI URI 以上方法用于改变文件的拥有者,其中使用-R将使改变在目录结构下递归进行。命令的使用者必须是超级用户。5copyFromLocal命令命令 调用方法:hadoop fs-copyFromLocal URI 以上方法可限定源路径是一个本地文件外,和put命令相似。6copyToLoc

50、al命令命令 调用方法:hadoop fs-copyToLocal-ignorecrc-crc URI 以上方法可限定目标路径是一个本地文件外,和get命令类似。7cp命令命令 调用方法:hadoop fs-cp URI URI 以上方法用于将文件从源路径复制到目标路径,这个命令允许有多个源路径,此时目标路径必须是一个目录。如果要将文件file1从源路径复制到目标路径文件file2中,可使用如下命令:hadoop fs-cp/user/hadoop/file1/user/hadoop/file2 hadoop fs-cp/user/hadoop/file1/user/hadoop/file2/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(教学课件:《Hadoop云计算实战》.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|