of40电子工业出版社《云计算(第三版)》配套课件云计算(第三版)CLOUDCOMPUTINGThirdEdition第5章Hadoop2.0主流开源云架构(三)目录5.1引例5.2Hadoop2.0简述5.3Hadoop2.0部署5.4Hadoop2.0体系架构5.5Hadoop2.0访问接口5.6Hadoop2.0编程接口5.4Hadoop2.0体系架构5.4.1Hadoop2.0公共组件Common5.4.2分布式文件系统HDFS5.4.3分布式操作系统Yarn5.4.4Hadoop2.0安全机制简介of40《云计算》第三版配套PPT课件5.4Hadoop2.0体系架构Common定位Common的定位是其他模块的公共组件,定义了程序员取得集群服务的编程接口,为其他模块提供公用API。降低Hadoop设计的复杂性减少了其他模块之间的耦合性增强了Hadoop的健壮性4of40《云计算》第三版配套PPT课件HTTP认证55.4Hadoop2.0体系架构Common功能提供公用API和程序员编程接口本地Hadoop库(NativeHadoopLibrary)超级用户superuser服务级别认证5.4Hadoop2.0体系架构5.4.1Hadoop2.0公共组件Common5.4.2分布式文件系统HDFS5.4.3分布式操作系统Yarn5.4.4Hadoop2.0安全机制简介of40《云计算》第三版配套PPT课件75.4Hadoop2.0体系架构HDFS定位高容错高扩展高可靠分布式存储服务服务访问接口API接口管理员接口为提高扩展性,HDFS采用了master/slave架构来构建分布式存储集群,这种架构很容易向集群中任意添加或删除slave。of40《云计算》第三版配套PPT课件85.4Hadoop2.0体系架构HDFS体系架构HDFS架构HDFS采用master/slave体系来构建分布式存储服务提高了HDFS的可扩展性又简化了架构设计优化存储颗粒度HDFS里将文件分块存储namenode统一管理所有slave机器datanode存储空间,datanode以块为单位存储实际的数据真正的文件I/O操作时客户端直接和datanode交互of40《云计算》第三版配套PPT课件95.4Hadoop2.0体系架构HDFS体系架构HDFS架构NameNode主控制服务器负责维护文件系统的命名空间(Namespace)协调客户端对文件的访问记录命名空间内的任何改动或命名空间本身的属性改动DataNode负责它们所在的物理节点上的存储管理HDFS开放文件系统的命名空间NameNode执行文件系统的命名空间操作决定数据块到DataNode的映射of40《云计算》第三版配套PPT课件10NameNode客户端客户端读机架2复制数据块操作DataNode写DataNode5.4Hadoop2.0体系架构HDFS体系架构HDFS架构of40《云计算》第三版配套PPT课件115.4Hadoop2.0体系架构HDFS体系架构HDFS架构客户端要访问一个文件首先客户端从NameNode获得组成文件的数据块的位置列表其次客户端直接从DataNode上读取文件数据of40《云计算》第三版配套PPT课件125.4Hadoop2.0体系架构HDFS体系架构NameNode使用事务日志(EditLog)记录HDFS元数据的变化,使用映象文件(FsImage)存储文件系统的命名空间事务日志和映象文件都存储在NameNode的本地文件系统中。将新的元数据刷新到本地磁盘的新的映象文件中,这样可以截去旧的事务日志,这个过程称为检查点(Checkpoint)HDFS还有SecondaryNameNode节点,它辅助NameNode处理映象文件和事务日志。NameNode更新映象文件并清理事务日志,使得事务日志的大小始终控制在可配置的限度下of40《云计算》第三版配套PPT课件13NameNodeBackupNode或者SecondaryNameNodeDataNodeDataNodeDataNode5.4Hadoop2.0体系架构HDFS体系架构一般拓扑:只有单个NameNode节点,使用SecondaryNameNode或BackupNode节点实时获取NameNode元数据信息,备份元数据。HDFS典型拓扑of40《云计算》第三版配套PPT课件14DataNodeDataNodeDataNodeNameNodeNameNodeHTTPFSZooKeeper集群JournalNode集群5.4Hadoop2.0体系架构HDFS体系架构商用拓扑:有两个NameNode节点,并使用ZooKeeper实现NameNode节点间的热切换。HDFS典型拓扑of40《云计算》第三版配套PPT课件155.4Hadoop2.0体系架构HDFS体系架构ZooKeeper集群JourNalNode集群HTTPFS至少三个ZooKeeper实体,用来选举ActiveNamenode。至少三个,用于与两NameNode交换数据,也可使用NFS。提供Web端读写HDFS功能。从架构上看HDFS存在单点故障,无论是一般拓扑还是商用拓扑,新增的实体几乎都是增强NameNode可靠性的组件,当然这里的ZooKeeper集群还可以用于Hbase。冗余备份HDFS将每个文件存储成一系列数据块(Block),默认块大小为64MB(可配置)。为了容错,文件的所有数据块都会有副本(副本数量即复制因子,可配置)。HDFS的文件都是一次性写入的,并且严格限制为任何时候都只有一个写用户。HDFS内部特性副本存放HDFS集群一般运行在多个机架上,不同机架上机器的通信需要通过交换机。HDFS采用机架感知(Rack-aware)的策略来改进数据的可靠性、可用性和网络带宽的利用率。机架的错误远比节点的错误少,这个策略可以防止整个机架失效时数据丢失,提高数据的可靠性和可用性,又能保证性能。HDFS内部特性of40《云计算》第三版配套PPT课件18数据块副本NameNode(文件名,副本名,数据块ID,…)/user/grid/data/part-0,r:3,{1,2},…/user/grid/data/part-1,r:3,{3,4,5},…142机架11523142机架21523452DataNode5.4Hadoop2.0体系架构HDFS内部特性副本选择HDFS会尽量使用离程序最近的副本来满足用户请求,这样可以减少总带宽消耗和读延时。HDFS的架构支持数据均衡策略。HDFS内部特性心跳检测NameNode周期性地从集群中的每个DataNode接受心跳包和块报告,收到心跳包说明该DataNode工作正常NameNode会标记最近没有心跳的DataNode为宕机,不会发给它们任何新的I/O请求。NameNode会不断检测这些需要复制的数据块,并在需要的时候重新复制。HDFS内部特性数据完整性检测多种原因可能造成从DataNode获取的数据块有损坏。HDFS客户端软件实现了对HDFS文件内容的校验和检查(Checksum)。DataNode获得的数据块对应的校验和隐藏文件中的不同,客户端就会判定数据块有损坏,将从其他DataNode获取该数据块的副本。HDFS内部特性元数据磁盘失效映象文件和事务日志是HDFS的核心数据结构。NameNode可以配置为支持维护映象文件和事务日志的多个副本。任何对映象文件或事务日志的修改,都将同步到它们的副本上。当NameNode重新启动时,总是选择最新的一致的映象文件和事务日志。HDFS内部特性简单一致性模型、流式数据访问HDFS的应用程序一般对文件实行一次写、多次读的访问模式。文件一旦创建、写入和关闭之后就不需要再更改了。这样就简化了数据一致性问题,高吞吐量的数据访问才成为可能;运行在HDFS上的应用主要以流式读为主,做批量处理;更注重数据访问的高吞吐量。HDFS内部特性客户端缓存客户端创建文件的请求不是立即到达NameNode,HDFS客户端先把数据缓存到本地的一个临时文件,程序的写操作透明地重定向到这个临时文件。当这个临时文件累积的数据超过一个块的大小(64MB)时,客户端才会联系NameNode。如果NameNode在文件关闭之前死机,那么文件将会丢失。如果不采用客户端缓存,网络速度和拥塞都会对输出产生很大的影响。HDFS内部特性流水线复制当客户端准备写数据到HDFS的文件中时,数据一开始会写入本地临时文件。DataNode从前一个节点接收数据的同时,即时把数据传给后面的节点,这就是流水线复制。HDFS内部特性架构特征硬件错误是常态而不是异常。HDFS被设计为运行在普通硬件上,所以硬件故障是很正常的。错误检测并快速自动恢复是HDFS的最核心设计目标。HDFS内部特性超大规模数据集一般企业级的文件大小可能都在TB级甚至PB级,HDFS支持大文件存储,而且提供整体上高的数据传输带宽。一个单一的HDFS实例应该能支撑数以千万计的文件,并且能在一个集群里扩展到数百个节点。HDFS内部特性of40《云计算》第三版配套PPT课件285.4Hadoop2.0体系架构HDFS对外功能NameNode高可靠性HDFS快照元数据管理与恢复工具HDFS安全性2143of40《云计算》第三版配套PPT课件295.4Hadoop2.0体系架构HDFS对外功能HDFS配额功能HDFSC语言接口HDFSShort-Circuit功能WebHdfs6587of36电子工业出版社《云计算(第三版)》配套课件云计算(第三版)CLOUDCOMPUTINGThirdEdition谢谢观看主编:刘鹏教授第5章