《第6章-Hadoop—分布式大数据系统7815051.pptx》由会员分享,可在线阅读,更多相关《第6章-Hadoop—分布式大数据系统7815051.pptx(78页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、云计算与大数据技术云计算与大数据技术 人民邮电出版社王鹏 黄焱 安俊秀 张逸琴 编著 目 录pp第第第第1 1 1 1章章章章 云计算与大数据基础云计算与大数据基础云计算与大数据基础云计算与大数据基础 pp第第第第2 2 2 2章章章章 云计算与大数据的相关技术云计算与大数据的相关技术云计算与大数据的相关技术云计算与大数据的相关技术 pp第第第第3 3 3 3章章章章 虚拟化技术虚拟化技术虚拟化技术虚拟化技术 pp第第第第4 4 4 4章章章章 集群系统基础集群系统基础集群系统基础集群系统基础 pp第第第第5 5 5 5章章章章 MPI MPI MPI MPI面向计算面向计算面向计算面向计算p
2、p第第第第6 6 6 6章章章章 Hadoop Hadoop Hadoop Hadoop分布式大数据系统分布式大数据系统分布式大数据系统分布式大数据系统pp第第第第7 7 7 7章章章章 HPCC HPCC HPCC HPCC面向数据的高性能计算集群系统面向数据的高性能计算集群系统面向数据的高性能计算集群系统面向数据的高性能计算集群系统 pp第第第第8 8 8 8章章章章 Storm Storm Storm Storm基于拓扑的流数据实时计算系统基于拓扑的流数据实时计算系统基于拓扑的流数据实时计算系统基于拓扑的流数据实时计算系统pp第第第第9 9 9 9章章章章 服务器与数据中心服务器与数据中
3、心服务器与数据中心服务器与数据中心 pp第第第第10101010章章章章 云计算大数据仿真技术云计算大数据仿真技术云计算大数据仿真技术云计算大数据仿真技术CONTENTS第第6 6章章 Hadoop Hadoop分布式大数据系统分布式大数据系统第6章 Hadoop分布式大数据系统pp云计算与大数据技术云计算与大数据技术 3/14/2023第第6 6章章 Hadoop Hadoop分布式大数据系统分布式大数据系统pp6.16.1HadoopHadoop概述概述pp6.26.2HDFSHDFS6.2.16.2.1HDFSHDFS文件系统的原型文件系统的原型GFSGFS6.2.26.2.2HDFSH
4、DFS文件的基本结构文件的基本结构6.2.36.2.3HDFSHDFS的存储过程的存储过程pp6.36.3MapReduceMapReduce编程框架编程框架 6.3.16.3.1MapReduceMapReduce的发展历史的发展历史6.3.26.3.2MapReduceMapReduce的基本工作过程的基本工作过程6.3.36.3.3LISPLISP中的中的MapReduceMapReduce6.3.46.3.4MapReduceMapReduce的特点的特点pp6.46.4实现实现Map/ReduceMap/Reduce的的C C语言实例语言实例pp6.56.5建立建立HadoopHad
5、oop开发环境开发环境6.5.16.5.1相关准备工作相关准备工作6.5.2 6.5.2 JDKJDK的安装配置的安装配置6.5.36.5.3下载、解压下载、解压HadoopHadoop,配置配置HadoopHadoop环境变量环境变量6.5.46.5.4修改修改HadoopHadoop配置文件配置文件6.5.56.5.5将配置好的将配置好的HadoopHadoop文件文件复制到其他节点复制到其他节点6.5.66.5.6启动、停止启动、停止HadoopHadoop6.5.76.5.7在在HadoopHadoop系统上运行测系统上运行测试程序试程序WordCountWordCount3/14/2
6、023ppHadoopHadoopHadoopHadoop是由是由是由是由ApacheApacheApacheApache软件基金会研发的一种开源、高可靠、软件基金会研发的一种开源、高可靠、软件基金会研发的一种开源、高可靠、软件基金会研发的一种开源、高可靠、伸缩性强的伸缩性强的伸缩性强的伸缩性强的分布式计算系统分布式计算系统分布式计算系统分布式计算系统,主要用于对,主要用于对,主要用于对,主要用于对大于大于大于大于1TB1TB1TB1TB的海量数的海量数的海量数的海量数据的处理。据的处理。据的处理。据的处理。ppHadoopHadoopHadoopHadoop采用采用采用采用JavaJavaJ
7、avaJava语言开发语言开发语言开发语言开发,是对,是对,是对,是对GoogleGoogleGoogleGoogle的的的的MapReduceMapReduceMapReduceMapReduce核心技核心技核心技核心技术的开源实现。术的开源实现。术的开源实现。术的开源实现。pp目前目前目前目前HadoopHadoopHadoopHadoop的的的的核心模块核心模块核心模块核心模块包括包括包括包括系统系统系统系统HDFSHDFSHDFSHDFS(Hadoop Hadoop Hadoop Hadoop Distributed File SystemDistributed File System
8、Distributed File SystemDistributed File System,HadoopHadoopHadoopHadoop分布式文件系统)和分布式文件系统)和分布式文件系统)和分布式文件系统)和分分分分布式计算框架布式计算框架布式计算框架布式计算框架MapReduceMapReduceMapReduceMapReduce,这一结构实现了,这一结构实现了,这一结构实现了,这一结构实现了计算和存储的高计算和存储的高计算和存储的高计算和存储的高度耦合度耦合度耦合度耦合,十分有利于,十分有利于,十分有利于,十分有利于面向数据面向数据面向数据面向数据的系统架构,因此已成为大的系统架构
9、,因此已成为大的系统架构,因此已成为大的系统架构,因此已成为大数据技术领域的事实标准。数据技术领域的事实标准。数据技术领域的事实标准。数据技术领域的事实标准。3/14/2023ppHadoopHadoopHadoopHadoop设计时有以下的几点假设:设计时有以下的几点假设:设计时有以下的几点假设:设计时有以下的几点假设:服务器失效是正常的;服务器失效是正常的;存储和处理的数据是海量的;存储和处理的数据是海量的;文件不会被频繁写入和修改;文件不会被频繁写入和修改;机柜内的数据传输速度大于机柜间的数据传输速度;机柜内的数据传输速度大于机柜间的数据传输速度;海量数据的情况下移动计算比移动数据更高效
10、。海量数据的情况下移动计算比移动数据更高效。3/14/20236.16.1HadoopHadoop概述概述ppHadoopHadoop是是是是ApacheApache开源组织的分布式计算系统,其分为第一代开源组织的分布式计算系统,其分为第一代开源组织的分布式计算系统,其分为第一代开源组织的分布式计算系统,其分为第一代HadoopHadoop和第二代和第二代和第二代和第二代HadoopHadoop。pp第一代第一代第一代第一代HadoopHadoop包含包含包含包含0.20.x0.20.x、0.21.x0.21.x、0.22.x0.22.x三个版本,三个版本,三个版本,三个版本,0.20.x0.
11、20.x最后演化最后演化最后演化最后演化成了成了成了成了1.0.x1.0.x版本,第二代版本,第二代版本,第二代版本,第二代HadoopHadoop包含包含包含包含0.23.x0.23.x和和和和2.x2.x两个版本,两个版本,两个版本,两个版本,2.x2.x本版比本版比本版比本版比0.23.x0.23.x版本增加了版本增加了版本增加了版本增加了NameNode HANameNode HA和和和和Wire-compatibilityWire-compatibility两个特性,版本两个特性,版本两个特性,版本两个特性,版本发展如图发展如图发展如图发展如图6.16.1所示。所示。所示。所示。图6
12、.1Hadoop本版发展路线3/14/20236.16.1HadoopHadoop概述概述ppHadoopHadoop与与与与MPIMPI在数据处理上的在数据处理上的在数据处理上的在数据处理上的差异差异差异差异主要体现在数据存储与数据处理在主要体现在数据存储与数据处理在主要体现在数据存储与数据处理在主要体现在数据存储与数据处理在系统中位置不同,系统中位置不同,系统中位置不同,系统中位置不同,MPIMPI是计算与存储分离,是计算与存储分离,是计算与存储分离,是计算与存储分离,HadoopHadoop是计算向存储迁移,是计算向存储迁移,是计算向存储迁移,是计算向存储迁移,如图如图如图如图6.26.
13、2所示。所示。所示。所示。图6.2Hadoop与MPI在数据处理上的差异3/14/20236.16.1HadoopHadoop概述概述pp在在在在MPIMPIMPIMPI中数据存储的节点和数据处理的节点往往是不同的,一般中数据存储的节点和数据处理的节点往往是不同的,一般中数据存储的节点和数据处理的节点往往是不同的,一般中数据存储的节点和数据处理的节点往往是不同的,一般在每次计算开始时在每次计算开始时在每次计算开始时在每次计算开始时MPIMPIMPIMPI需要从数据存储节点读取需要处理的数据需要从数据存储节点读取需要处理的数据需要从数据存储节点读取需要处理的数据需要从数据存储节点读取需要处理的数
14、据分配给各个计算节点对数据进行处理,因此分配给各个计算节点对数据进行处理,因此分配给各个计算节点对数据进行处理,因此分配给各个计算节点对数据进行处理,因此MPIMPIMPIMPI中数据存储和数中数据存储和数中数据存储和数中数据存储和数据处理是分离的。据处理是分离的。据处理是分离的。据处理是分离的。pp对于计算密集型的应用对于计算密集型的应用对于计算密集型的应用对于计算密集型的应用MPIMPIMPIMPI能表现出良好的性能,但对于处理能表现出良好的性能,但对于处理能表现出良好的性能,但对于处理能表现出良好的性能,但对于处理TBTBTBTB级数据的数据密集型应用由于网络数据传输速度很慢,级数据的数
15、据密集型应用由于网络数据传输速度很慢,级数据的数据密集型应用由于网络数据传输速度很慢,级数据的数据密集型应用由于网络数据传输速度很慢,MPIMPIMPIMPI的性的性的性的性能会大大降低,甚至会到不可忍受的地步,所以对于构建在能会大大降低,甚至会到不可忍受的地步,所以对于构建在能会大大降低,甚至会到不可忍受的地步,所以对于构建在能会大大降低,甚至会到不可忍受的地步,所以对于构建在MPIMPIMPIMPI上的并行计算系统网络通讯速度一直是一个重要的性能指标,用上的并行计算系统网络通讯速度一直是一个重要的性能指标,用上的并行计算系统网络通讯速度一直是一个重要的性能指标,用上的并行计算系统网络通讯速
16、度一直是一个重要的性能指标,用“计算换通信计算换通信计算换通信计算换通信”也是也是也是也是MPIMPIMPIMPI并行程序设计中的基本原则。并行程序设计中的基本原则。并行程序设计中的基本原则。并行程序设计中的基本原则。3/14/20236.16.1HadoopHadoop概述概述pp在在在在HadoopHadoopHadoopHadoop中由于有中由于有中由于有中由于有HDFSHDFSHDFSHDFS文件系统的支持,数据是分布式存文件系统的支持,数据是分布式存文件系统的支持,数据是分布式存文件系统的支持,数据是分布式存储在各个节点的,计算时各节点读取存储在自己节点的数储在各个节点的,计算时各节
17、点读取存储在自己节点的数储在各个节点的,计算时各节点读取存储在自己节点的数储在各个节点的,计算时各节点读取存储在自己节点的数据进行处理,从而避免了大量数据在网络上的传递,实现据进行处理,从而避免了大量数据在网络上的传递,实现据进行处理,从而避免了大量数据在网络上的传递,实现据进行处理,从而避免了大量数据在网络上的传递,实现“计算向存储的迁移计算向存储的迁移计算向存储的迁移计算向存储的迁移”。3/14/20236.26.2HDFSHDFSppHadoopHadoopHadoopHadoop系统实现对大数据的自动并行处理,是一种数据并行方法,系统实现对大数据的自动并行处理,是一种数据并行方法,系统
18、实现对大数据的自动并行处理,是一种数据并行方法,系统实现对大数据的自动并行处理,是一种数据并行方法,这种方法实现自动并行处理时需要对数据进行划分,而对数据的这种方法实现自动并行处理时需要对数据进行划分,而对数据的这种方法实现自动并行处理时需要对数据进行划分,而对数据的这种方法实现自动并行处理时需要对数据进行划分,而对数据的划分在划分在划分在划分在HadoopHadoopHadoopHadoop系统中从数据的存储就开始了,因此文件系统是系统中从数据的存储就开始了,因此文件系统是系统中从数据的存储就开始了,因此文件系统是系统中从数据的存储就开始了,因此文件系统是HadoopHadoopHadoop
19、Hadoop系统的重要组成部分,也是系统的重要组成部分,也是系统的重要组成部分,也是系统的重要组成部分,也是HadoopHadoopHadoopHadoop实现自动并行框架的基实现自动并行框架的基实现自动并行框架的基实现自动并行框架的基础。础。础。础。HadoopHadoopHadoopHadoop的文件系统称为的文件系统称为的文件系统称为的文件系统称为HDFSHDFSHDFSHDFS(Hadoop Distributed File Hadoop Distributed File Hadoop Distributed File Hadoop Distributed File SystemSys
20、temSystemSystem)。)。)。)。3/14/20236.2.16.2.1HDFSHDFS文件系统的原型文件系统的原型GFSGFSppHadoopHadoop中的中的中的中的HDFSHDFS原型来自原型来自原型来自原型来自Google Google 文件系统文件系统文件系统文件系统(Google File SystemGoogle File System,GFSGFS),为了满足),为了满足),为了满足),为了满足GoogleGoogle迅速增长的数据处理要求,迅速增长的数据处理要求,迅速增长的数据处理要求,迅速增长的数据处理要求,GoogleGoogle设计并实现了设计并实现了设计
21、并实现了设计并实现了GFSGFS。ppGoogleGoogle文件系统是一个可扩展的分布式文件系统,用于对大量数据进行访问文件系统是一个可扩展的分布式文件系统,用于对大量数据进行访问文件系统是一个可扩展的分布式文件系统,用于对大量数据进行访问文件系统是一个可扩展的分布式文件系统,用于对大量数据进行访问的大型、分布式应用。的大型、分布式应用。的大型、分布式应用。的大型、分布式应用。pp它运行于廉价的普通硬件上,但可以提供容错功能。它可以给大量的用户提它运行于廉价的普通硬件上,但可以提供容错功能。它可以给大量的用户提它运行于廉价的普通硬件上,但可以提供容错功能。它可以给大量的用户提它运行于廉价的普
22、通硬件上,但可以提供容错功能。它可以给大量的用户提供总体性能较高的服务,也可以提供容错功能。供总体性能较高的服务,也可以提供容错功能。供总体性能较高的服务,也可以提供容错功能。供总体性能较高的服务,也可以提供容错功能。pp我们认为我们认为我们认为我们认为GFSGFS是一种面向不可信服务器节点而设计的文件系统。是一种面向不可信服务器节点而设计的文件系统。是一种面向不可信服务器节点而设计的文件系统。是一种面向不可信服务器节点而设计的文件系统。pp谷歌谷歌谷歌谷歌“三宝三宝三宝三宝”是是是是“GoogleGoogle文件系统文件系统文件系统文件系统”、“BigTableBigTable大表大表大表大
23、表”、“MapReduceMapReduce算法算法算法算法”,有了自己的文件系统,谷歌就可以有效地组织庞大的数据、服务器和存,有了自己的文件系统,谷歌就可以有效地组织庞大的数据、服务器和存,有了自己的文件系统,谷歌就可以有效地组织庞大的数据、服务器和存,有了自己的文件系统,谷歌就可以有效地组织庞大的数据、服务器和存储,并用它们工作。作为谷歌储,并用它们工作。作为谷歌储,并用它们工作。作为谷歌储,并用它们工作。作为谷歌“三宝三宝三宝三宝”的其中之一,的其中之一,的其中之一,的其中之一,GFSGFSGFSGFS的技术优势不言而喻。的技术优势不言而喻。的技术优势不言而喻。的技术优势不言而喻。3/1
24、4/20236.2.16.2.1HDFSHDFS文件系统的原型文件系统的原型GFSGFSppGFSGFS为分布式结构,它是一个为分布式结构,它是一个为分布式结构,它是一个为分布式结构,它是一个高度容错网络文件系统高度容错网络文件系统高度容错网络文件系统高度容错网络文件系统,主要由一个,主要由一个,主要由一个,主要由一个MasterMaster(主)和众多(主)和众多(主)和众多(主)和众多chunkserverchunkserver(大块设备)构成的,体系结构如(大块设备)构成的,体系结构如(大块设备)构成的,体系结构如(大块设备)构成的,体系结构如图图图图6.36.3所示。所示。所示。所示。
25、图6.3GFS的体系结构3/14/20236.2.16.2.1HDFSHDFS文件系统的原型文件系统的原型GFSGFSpp下面简单描述一下下面简单描述一下下面简单描述一下下面简单描述一下GFSGFSGFSGFS的工作过程的工作过程的工作过程的工作过程。(1)客户端使用固定大小的块将应用程序指定的文件名和字节偏)客户端使用固定大小的块将应用程序指定的文件名和字节偏移转换成文件的一个块索引,向移转换成文件的一个块索引,向Master发送包含文件名和块索发送包含文件名和块索引的请求。引的请求。(2)Master收到客户端发来的请求,收到客户端发来的请求,Master向块服务器发出指示,向块服务器发出
26、指示,同时时刻监控众多同时时刻监控众多chunkserver的状态。的状态。chunkserver缓存缓存Master从客户端收到的文件名和块索引等信息。从客户端收到的文件名和块索引等信息。3/14/20236.2.16.2.1HDFSHDFS文件系统的原型文件系统的原型GFSGFS(3 3)MasterMaster通过和通过和通过和通过和chunkserverchunkserver的交互,向客户端发送的交互,向客户端发送的交互,向客户端发送的交互,向客户端发送chunk-chunk-handlehandle和副本位置。其中文件被分成若干个块,而每个块都是由一和副本位置。其中文件被分成若干个块
27、,而每个块都是由一和副本位置。其中文件被分成若干个块,而每个块都是由一和副本位置。其中文件被分成若干个块,而每个块都是由一个不变的、全局惟一的个不变的、全局惟一的个不变的、全局惟一的个不变的、全局惟一的6464位的位的位的位的chunk-handlechunk-handle标识。标识。标识。标识。HandleHandle是由是由是由是由MasterMaster在块创建时分配的。而出于安全性考虑,每一个文件块都要在块创建时分配的。而出于安全性考虑,每一个文件块都要在块创建时分配的。而出于安全性考虑,每一个文件块都要在块创建时分配的。而出于安全性考虑,每一个文件块都要被复制到多个被复制到多个被复制
28、到多个被复制到多个chunkserverchunkserver上,一般默认上,一般默认上,一般默认上,一般默认3 3个副本。个副本。个副本。个副本。(4 4)客户端向其中的一个副本发出请求,请求指定了)客户端向其中的一个副本发出请求,请求指定了)客户端向其中的一个副本发出请求,请求指定了)客户端向其中的一个副本发出请求,请求指定了chunk chunk handlehandle(chunkserverchunkserver以以以以chunk handlechunk handle标识标识标识标识chunkchunk)和块内的一个)和块内的一个)和块内的一个)和块内的一个字节区间。字节区间。字节区
29、间。字节区间。(5 5)客户端从)客户端从)客户端从)客户端从chunkserverchunkserver获得块数据,任务完成。获得块数据,任务完成。获得块数据,任务完成。获得块数据,任务完成。3/14/20236.2.16.2.1HDFSHDFS文件系统的原型文件系统的原型GFSGFSpp通常通常通常通常ClientClientClientClient可以在一个请求中询问多个可以在一个请求中询问多个可以在一个请求中询问多个可以在一个请求中询问多个chunkchunkchunkchunk的地址,而的地址,而的地址,而的地址,而MasterMasterMasterMaster也可以很快回应这些请
30、求。也可以很快回应这些请求。也可以很快回应这些请求。也可以很快回应这些请求。ppGFSGFSGFSGFS是可以被多个用户同时访问的,一般情况下,是可以被多个用户同时访问的,一般情况下,是可以被多个用户同时访问的,一般情况下,是可以被多个用户同时访问的,一般情况下,ApplicationApplicationApplicationApplication和和和和chunkserverchunkserverchunkserverchunkserver是可以在同一台机子上的,是可以在同一台机子上的,是可以在同一台机子上的,是可以在同一台机子上的,主要的数据流量是通过主要的数据流量是通过主要的数据流量是
31、通过主要的数据流量是通过ApplicationApplicationApplicationApplication和和和和chunkserverchunkserverchunkserverchunkserver之间,之间,之间,之间,数据访问的本地性极大地减少了数据访问的本地性极大地减少了数据访问的本地性极大地减少了数据访问的本地性极大地减少了ApplicationApplicationApplicationApplication与与与与MasterMasterMasterMaster之之之之间的交互访问,减少了间的交互访问,减少了间的交互访问,减少了间的交互访问,减少了MasterMaster
32、MasterMaster的负荷量,提高了文件系的负荷量,提高了文件系的负荷量,提高了文件系的负荷量,提高了文件系统的性能。统的性能。统的性能。统的性能。3/14/20236.2.16.2.1HDFSHDFS文件系统的原型文件系统的原型GFSGFSpp客户端从来不会从客户端从来不会从客户端从来不会从客户端从来不会从MasterMasterMasterMaster读和写文件数据。客户端只是读和写文件数据。客户端只是读和写文件数据。客户端只是读和写文件数据。客户端只是询问询问询问询问MasterMasterMasterMaster它应该和哪个它应该和哪个它应该和哪个它应该和哪个 chunkserve
33、r chunkserver chunkserver chunkserver联系。联系。联系。联系。ClientClientClientClient在在在在一段限定的时间内将这些信息缓存,在后续的操作中客一段限定的时间内将这些信息缓存,在后续的操作中客一段限定的时间内将这些信息缓存,在后续的操作中客一段限定的时间内将这些信息缓存,在后续的操作中客户端直接和户端直接和户端直接和户端直接和chunkserverchunkserverchunkserverchunkserver交互。由于交互。由于交互。由于交互。由于MasterMasterMasterMaster对于读和写的对于读和写的对于读和写的对
34、于读和写的操作极少,所以极大地减小了操作极少,所以极大地减小了操作极少,所以极大地减小了操作极少,所以极大地减小了MasterMasterMasterMaster的工作负荷,真正的工作负荷,真正的工作负荷,真正的工作负荷,真正提高了提高了提高了提高了MasterMasterMasterMaster的利用性能。的利用性能。的利用性能。的利用性能。ppMasterMasterMasterMaster保存着三类元数据(保存着三类元数据(保存着三类元数据(保存着三类元数据(metadatametadatametadatametadata):文件名和块的):文件名和块的):文件名和块的):文件名和块的名
35、字空间、从文件到块的映射、副本位置。所有的名字空间、从文件到块的映射、副本位置。所有的名字空间、从文件到块的映射、副本位置。所有的名字空间、从文件到块的映射、副本位置。所有的metadatametadatametadatametadata都放在内存中。操作日志的引入可以更简单、都放在内存中。操作日志的引入可以更简单、都放在内存中。操作日志的引入可以更简单、都放在内存中。操作日志的引入可以更简单、更可靠地更新更可靠地更新更可靠地更新更可靠地更新MasterMasterMasterMaster的信息。的信息。的信息。的信息。3/14/20236.2.16.2.1HDFSHDFS文件系统的原型文件系
36、统的原型GFSGFSpp为为为为GFSGFSGFSGFS的控制和神经系统,副本为的控制和神经系统,副本为的控制和神经系统,副本为的控制和神经系统,副本为MasterMasterMasterMaster的备份,的备份,的备份,的备份,ChunkChunkChunkChunk主要用来和主要用来和主要用来和主要用来和用户交换数据。网络中的主机瘫痪,不会对整个系统造成大的影响,用户交换数据。网络中的主机瘫痪,不会对整个系统造成大的影响,用户交换数据。网络中的主机瘫痪,不会对整个系统造成大的影响,用户交换数据。网络中的主机瘫痪,不会对整个系统造成大的影响,替换上去的主机会自动重建数据。即使替换上去的主机
37、会自动重建数据。即使替换上去的主机会自动重建数据。即使替换上去的主机会自动重建数据。即使MasterMasterMasterMaster瘫痪,也会有瘫痪,也会有瘫痪,也会有瘫痪,也会有ShadowShadowShadowShadow作为替补,并且作为替补,并且作为替补,并且作为替补,并且ShadowShadowShadowShadow在一定时候也会充当在一定时候也会充当在一定时候也会充当在一定时候也会充当MasterMasterMasterMaster来提供控制和数来提供控制和数来提供控制和数来提供控制和数据交换。据交换。据交换。据交换。GoogleGoogleGoogleGoogle每天有大
38、量的硬盘损坏,但是由于有每天有大量的硬盘损坏,但是由于有每天有大量的硬盘损坏,但是由于有每天有大量的硬盘损坏,但是由于有GFSGFSGFSGFS,这些硬盘,这些硬盘,这些硬盘,这些硬盘的损坏是允许的。的损坏是允许的。的损坏是允许的。的损坏是允许的。pp有人形象地比喻:分布式的文件系统被分块为很多细胞单元,一旦有人形象地比喻:分布式的文件系统被分块为很多细胞单元,一旦有人形象地比喻:分布式的文件系统被分块为很多细胞单元,一旦有人形象地比喻:分布式的文件系统被分块为很多细胞单元,一旦细胞损坏,神经系统(细胞损坏,神经系统(细胞损坏,神经系统(细胞损坏,神经系统(MasterMasterMaster
39、Master)会迅速发现并有相应的冗余措施来)会迅速发现并有相应的冗余措施来)会迅速发现并有相应的冗余措施来)会迅速发现并有相应的冗余措施来使系统正常运行,这些细胞可以看作很多使系统正常运行,这些细胞可以看作很多使系统正常运行,这些细胞可以看作很多使系统正常运行,这些细胞可以看作很多GFSGFSGFSGFS主机。这一工作方式就主机。这一工作方式就主机。这一工作方式就主机。这一工作方式就是人类大脑的工作方式。是人类大脑的工作方式。是人类大脑的工作方式。是人类大脑的工作方式。3/14/20236.2.16.2.1HDFSHDFS文件系统的原型文件系统的原型GFSGFSpp当然,当然,当然,当然,作
40、为作为作为作为GoogleGoogleGoogleGoogle的技术基石,的技术基石,的技术基石,的技术基石,GFSGFSGFSGFS可以给大量的用户提供总体性能较高可以给大量的用户提供总体性能较高可以给大量的用户提供总体性能较高可以给大量的用户提供总体性能较高的服务,的服务,的服务,的服务,具有以下优势具有以下优势具有以下优势具有以下优势:(1 1 1 1)GoogleGoogleGoogleGoogle采用的存储方法是大量、分散的普通廉价服务器的存储方式,极大降低了采用的存储方法是大量、分散的普通廉价服务器的存储方式,极大降低了采用的存储方法是大量、分散的普通廉价服务器的存储方式,极大降低
41、了采用的存储方法是大量、分散的普通廉价服务器的存储方式,极大降低了成本。成本。成本。成本。(2 2 2 2)对大文件数据快速存取,这个毫无疑问是可以达到的。)对大文件数据快速存取,这个毫无疑问是可以达到的。)对大文件数据快速存取,这个毫无疑问是可以达到的。)对大文件数据快速存取,这个毫无疑问是可以达到的。(3 3 3 3)容易扩展,它是成本很低的普通电脑,支持动态插入节点;)容易扩展,它是成本很低的普通电脑,支持动态插入节点;)容易扩展,它是成本很低的普通电脑,支持动态插入节点;)容易扩展,它是成本很低的普通电脑,支持动态插入节点;(4 4 4 4)容错能力强,它的数据同时会在多个)容错能力强
42、,它的数据同时会在多个)容错能力强,它的数据同时会在多个)容错能力强,它的数据同时会在多个chunkserverchunkserverchunkserverchunkserver上进行备份,具有相当强的容错上进行备份,具有相当强的容错上进行备份,具有相当强的容错上进行备份,具有相当强的容错性;性;性;性;(5 5 5 5)高效访问,它是通过)高效访问,它是通过)高效访问,它是通过)高效访问,它是通过Big tableBig tableBig tableBig table来实现的,它是来实现的,它是来实现的,它是来实现的,它是Google File SystemGoogle File Syste
43、mGoogle File SystemGoogle File System上层的结构。上层的结构。上层的结构。上层的结构。GFSGFSGFSGFS在实现分布式文件系统的做法上面很多都是简单的,但是确实非常高效。在实现分布式文件系统的做法上面很多都是简单的,但是确实非常高效。在实现分布式文件系统的做法上面很多都是简单的,但是确实非常高效。在实现分布式文件系统的做法上面很多都是简单的,但是确实非常高效。(6 6 6 6)GFSGFSGFSGFS相对于相对于相对于相对于HDFSHDFSHDFSHDFS稳定性是无庸置疑的,并在稳定性是无庸置疑的,并在稳定性是无庸置疑的,并在稳定性是无庸置疑的,并在Go
44、ogleGoogleGoogleGoogle系统中得到了采用且稳定的运行。系统中得到了采用且稳定的运行。系统中得到了采用且稳定的运行。系统中得到了采用且稳定的运行。3/14/20236.2.26.2.2HDFSHDFS文件的基本结构文件的基本结构ppHDFSHDFS是一种是一种是一种是一种典型典型典型典型的的的的主从式的分布式文件系统主从式的分布式文件系统主从式的分布式文件系统主从式的分布式文件系统,该文件系统完全是仿照,该文件系统完全是仿照,该文件系统完全是仿照,该文件系统完全是仿照GoogleGoogle的的的的GFSGFS文件系统而设计的,文件系统而设计的,文件系统而设计的,文件系统而设
45、计的,HDFSHDFS的架构如图的架构如图的架构如图的架构如图6.46.4所示。所示。所示。所示。图6.4 HDFS的架构3/14/20236.2.26.2.2HDFSHDFS文件的基本结构文件的基本结构ppHDFSHDFS由一个名叫由一个名叫由一个名叫由一个名叫NamenodeNamenode的主节点和多个名叫的主节点和多个名叫的主节点和多个名叫的主节点和多个名叫DatanodeDatanode的子节的子节的子节的子节点组成。点组成。点组成。点组成。ppNamenodeNamenode存储着文件系统的元数据,这些元数据包括文件系统的存储着文件系统的元数据,这些元数据包括文件系统的存储着文件系
46、统的元数据,这些元数据包括文件系统的存储着文件系统的元数据,这些元数据包括文件系统的名字空间等,向用户映射文件系统,并负责管理文件的存储等服务,名字空间等,向用户映射文件系统,并负责管理文件的存储等服务,名字空间等,向用户映射文件系统,并负责管理文件的存储等服务,名字空间等,向用户映射文件系统,并负责管理文件的存储等服务,但实际的数据并不存放在但实际的数据并不存放在但实际的数据并不存放在但实际的数据并不存放在NamenodeNamenode。NamenodeNamenode的作用就像是文的作用就像是文的作用就像是文的作用就像是文件系统的总指挥,并向访问文件系统的客户机提供文件系统的映射,件系统
47、的总指挥,并向访问文件系统的客户机提供文件系统的映射,件系统的总指挥,并向访问文件系统的客户机提供文件系统的映射,件系统的总指挥,并向访问文件系统的客户机提供文件系统的映射,这种做法并不是这种做法并不是这种做法并不是这种做法并不是GoogleGoogle或或或或HadoopHadoop的创新,这和传统并行计算系统的创新,这和传统并行计算系统的创新,这和传统并行计算系统的创新,这和传统并行计算系统中的单一系统映像(中的单一系统映像(中的单一系统映像(中的单一系统映像(Single System ImageSingle System Image)的做法相同。)的做法相同。)的做法相同。)的做法相同
48、。ppHDFSHDFS中的中的中的中的DatanodeDatanode用于实际对数据的存放,对用于实际对数据的存放,对用于实际对数据的存放,对用于实际对数据的存放,对DatanodeDatanode上数据上数据上数据上数据的访问并不通过的访问并不通过的访问并不通过的访问并不通过NamemodeNamemode,而是与用户直接建立数据通信。,而是与用户直接建立数据通信。,而是与用户直接建立数据通信。,而是与用户直接建立数据通信。ppHadoopHadoop启动后我们能看到启动后我们能看到启动后我们能看到启动后我们能看到NamenodeNamenode和和和和DatanodeDatanode这两个
49、进程。这两个进程。这两个进程。这两个进程。3/14/20236.2.26.2.2HDFSHDFS文件的基本结构文件的基本结构ppHDFSHDFS的工作过程的工作过程的工作过程的工作过程是这样的:是这样的:是这样的:是这样的:用户请求创建文件的指令由用户请求创建文件的指令由Namenode进行接收,进行接收,Namenode将存储数据的将存储数据的Datanode的的IP返回给用户,并通知其他接收副本返回给用户,并通知其他接收副本的的Datanode,由用户直接与,由用户直接与Datanode进行数据传送。进行数据传送。Namenode同时存储相关的元数据。同时存储相关的元数据。整个文件系统采用
50、标准整个文件系统采用标准TCP/IP协议通信,实际是架设在协议通信,实际是架设在Linux文文件系统上的一个上层文件系统。件系统上的一个上层文件系统。HDFS上的一个典型文件大小一上的一个典型文件大小一般都在般都在G字节至字节至T字节。字节。3/14/20236.2.26.2.2HDFSHDFS文件的基本结构文件的基本结构pp主从式是云计算系统的一种典型架构方法,系统通过主节主从式是云计算系统的一种典型架构方法,系统通过主节主从式是云计算系统的一种典型架构方法,系统通过主节主从式是云计算系统的一种典型架构方法,系统通过主节点屏蔽底层的复杂结构,并向用户提供方便的文件目录映点屏蔽底层的复杂结构,