第3章Hadoop分布式文件系统.pptx

上传人:知****量 文档编号:75988787 上传时间:2023-03-06 格式:PPTX 页数:32 大小:1.15MB
返回 下载 相关 举报
第3章Hadoop分布式文件系统.pptx_第1页
第1页 / 共32页
第3章Hadoop分布式文件系统.pptx_第2页
第2页 / 共32页
点击查看更多>>
资源描述

《第3章Hadoop分布式文件系统.pptx》由会员分享,可在线阅读,更多相关《第3章Hadoop分布式文件系统.pptx(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第3章Hadoop分布式文件系统目 录1认识认识HDFSHDFSHDFSHDFS相关概念相关概念HDFSHDFS体系结构体系结构HDFSHDFS运行原理及保障运行原理及保障2343.1.1 3.1.1 认识认识HDFSHDFS1 1、分布式文件系统、分布式文件系统相对于传统的本地文件系统而言,分布式文件系统相对于传统的本地文件系统而言,分布式文件系统(Distributed File SystemDistributed File System)是一种通过网络实现文件在多台)是一种通过网络实现文件在多台主机上进行分布式存储的文件系统。分布式文件系统允许将一主机上进行分布式存储的文件系统。分布式文

2、件系统允许将一个文件通过网络在多台主机上以多副本的方式进行存储,实际个文件通过网络在多台主机上以多副本的方式进行存储,实际上就是通过网络来访问文件,但用户和程序看起来跟访问本地上就是通过网络来访问文件,但用户和程序看起来跟访问本地的磁盘一样。的磁盘一样。目前,应用广泛的分布式文件系统主要包括目前,应用广泛的分布式文件系统主要包括GFSGFS和和HDFSHDFS,HDFSHDFS是是GFSGFS的开源实现。的开源实现。3.1.1 3.1.1 认识认识HDFSHDFS2 2、HDFSHDFS简介简介HDFSHDFS是是HadoopHadoop分布式文件系统(分布式文件系统(Hadoop Distr

3、ibuted File Hadoop Distributed File SystemSystem)的缩写,是)的缩写,是Apache HadoopApache Hadoop的核心子项目。的核心子项目。HDFSHDFS支持海支持海量数据的存储,是分布式计算中数据存储和管理的基础,是基量数据的存储,是分布式计算中数据存储和管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上。它所具有的高容错、高可靠性、高可于廉价的商用服务器上。它所具有的高容错、高可靠性、高可扩展性、高吞吐率等特征为海量数据提供了不怕故障的

4、存储,扩展性、高吞吐率等特征为海量数据提供了不怕故障的存储,为超大数据集的应用处理带来了很多便利。为超大数据集的应用处理带来了很多便利。3.1.1 3.1.1 认识认识HDFSHDFS3 3、HDFSHDFS的优缺点的优缺点优点优点:(1 1)支持超大文件的处理)支持超大文件的处理(2 2)支持流式的访问数据)支持流式的访问数据(3 3)可构建在廉价机器上)可构建在廉价机器上3.1.1 3.1.1 认识认识HDFSHDFS3 3、HDFSHDFS的优缺点的优缺点缺点缺点:(1 1)不适合低延时数据访问)不适合低延时数据访问(2 2)无法高效存储大量小文件)无法高效存储大量小文件(3 3)不支持

5、多用户并发写入和任意修改文件)不支持多用户并发写入和任意修改文件3.1.2 HDFS3.1.2 HDFS相关概念相关概念1 1、数据块(、数据块(BlockBlock)传统的文件系统中,为提高磁盘读写效率,通常不是以字节为传统的文件系统中,为提高磁盘读写效率,通常不是以字节为单位,而是以数据块为单位。单位,而是以数据块为单位。HDFSHDFS同样采用了数据块的概念,同样采用了数据块的概念,最基本的存储单位即是数据块,最基本的存储单位即是数据块,Hadoop3.0Hadoop3.0版本默认数据块的大版本默认数据块的大小是小是128M128M(有些旧版本为(有些旧版本为64M64M)。)。3.1.

6、2 HDFS3.1.2 HDFS相关概念相关概念2 2、名称节点(、名称节点(NamenodeNamenode)在在HDFSHDFS中,名称节点主要负责管理分布式文件系统的命名空间,中,名称节点主要负责管理分布式文件系统的命名空间,它将所有的文件和文件夹的元数据保存在一个文件系统树中。它将所有的文件和文件夹的元数据保存在一个文件系统树中。NamenodeNamenode是整个文件系统的管理节点,维护着整个文件系统的是整个文件系统的管理节点,维护着整个文件系统的文件目录树,元数据信息和每个文件对应的数据块列表,并接文件目录树,元数据信息和每个文件对应的数据块列表,并接收用户的操作请求。收用户的操

7、作请求。3.1.2 HDFS3.1.2 HDFS相关概念相关概念3 3、数据节点(、数据节点(DatanodeDatanode)在在HDFSHDFS中,数据节点是工作节点,负责数据的真正存储和中,数据节点是工作节点,负责数据的真正存储和读取,会根据读取,会根据NamenodeNamenode的调度来进行数据的存储和检索,并且的调度来进行数据的存储和检索,并且定期向定期向NamenodeNamenode发送自己所存储的块的列表。所有数据节点的发送自己所存储的块的列表。所有数据节点的数据保存在各自节点的本地数据保存在各自节点的本地LinuxLinux文件系统中。文件系统中。3.1.2 HDFS3.

8、1.2 HDFS相关概念相关概念4 4、第二名称节点(、第二名称节点(Secondary NamenodeSecondary Namenode)Secondary NamenodeSecondary Namenode并不是并不是NamenodeNamenode节点出现问题时的备用节节点出现问题时的备用节点,点,HDFSHDFS也并不支持把系统直接切换到也并不支持把系统直接切换到Secondary NamenodeSecondary Namenode。NameNodeNameNode元数据信息存储在元数据信息存储在FsImageFsImage中,中,NameNodeNameNode每次重启后会每

9、次重启后会把把FsImageFsImage读取到内存中,在运行过程中为了防止数据丢失,读取到内存中,在运行过程中为了防止数据丢失,NameNodeNameNode的操作会被不断的写入本地的操作会被不断的写入本地EditLogEditLog文件中。文件中。3.1.3 HDFS3.1.3 HDFS体系结构体系结构HDFSHDFS采用了主从(采用了主从(Master/SlaveMaster/Slave)结构,如图)结构,如图3-13-1所示。一个所示。一个HDFSHDFS集群是由一个名称节点(集群是由一个名称节点(NameNodeNameNode)和多个数据节点)和多个数据节点(DataNodeDa

10、taNode)组成,通常配置在不同的机器上。名称节点作为)组成,通常配置在不同的机器上。名称节点作为中心服务器,负责管理文件系统的命名空间及客户端对文件的中心服务器,负责管理文件系统的命名空间及客户端对文件的访问。而数据节点,通常是一个节点一台机器,是分布式文件访问。而数据节点,通常是一个节点一台机器,是分布式文件系统系统HDFSHDFS的工作节点,负责对应节点数据的存储和读取,会根的工作节点,负责对应节点数据的存储和读取,会根据客户端或者是名字节点的调度来进行数据的存储和检索。据客户端或者是名字节点的调度来进行数据的存储和检索。3.1.3 HDFS3.1.3 HDFS体系结构体系结构3.1.

11、4 HDFS3.1.4 HDFS运行原理及保障运行原理及保障一、一、HDFSHDFS读写流程读写流程1 1、HDFSHDFS读数据流程读数据流程客户端通过连续调用客户端通过连续调用openopen()、()、readread()、()、closeclose()读取数据,()读取数据,具体执行过程如下图具体执行过程如下图3-23-2所示:所示:3.1.4 HDFS3.1.4 HDFS运行原理及保障运行原理及保障3.1.4 HDFS3.1.4 HDFS运行原理及保障运行原理及保障一、一、HDFSHDFS读写流程读写流程(1 1)客户端发送请求,调用)客户端发送请求,调用DistributedFil

12、eSystemDistributedFileSystem的的createcreate方法创建文件。调用方法创建文件。调用createcreate方法后,方法后,DistributedFileSystemDistributedFileSystem会会创建创建FSDataOutputStreamFSDataOutputStream输出流。输出流。(2 2)DistributedFileSystemDistributedFileSystem通过通过RPCRPC远程调用远程调用NamenodeNamenode,在文,在文件系统的命名空间中创建一个新文件。此时,件系统的命名空间中创建一个新文件。此时,N

13、amenodeNamenode会做一会做一系列的检查,比如文件是否已经存在、客户端是否拥有创建文系列的检查,比如文件是否已经存在、客户端是否拥有创建文件权限等。若通过检查,件权限等。若通过检查,NamenodeNamenode会构造一个新文件,并添加会构造一个新文件,并添加相关文件信息。相关文件信息。3.1.4 HDFS3.1.4 HDFS运行原理及保障运行原理及保障一、一、HDFSHDFS读写流程读写流程(3 3)客户端调用)客户端调用FSDataOutputStreamFSDataOutputStream的的writewrite方法将数据写到方法将数据写到一个内部队列中。如果数据副本数量是

14、一个内部队列中。如果数据副本数量是3 3,则将队列中的数据写,则将队列中的数据写入入3 3个副本对应的个副本对应的DatanodeDatanode上。但并不是由客户端分别往上。但并不是由客户端分别往3 3个个DatanodeDatanode上写上写3 3份,而是由已经收到数据包的第一个份,而是由已经收到数据包的第一个DatanodeDatanode,将数据包发送给第二个将数据包发送给第二个DatanodeDatanode,第二个,第二个datanodedatanode再将数据包再将数据包发送给第三个发送给第三个DatanodeDatanode。3.1.4 HDFS3.1.4 HDFS运行原理及

15、保障运行原理及保障一、一、HDFSHDFS读写流程读写流程(4 4)每个)每个DataNodeDataNode写完一个块后,会返回确认信息。写完一个块后,会返回确认信息。FSDataOutputStreamFSDataOutputStream内部维护着一个确认队列。当接收到所有内部维护着一个确认队列。当接收到所有DataNodeDataNode确认写完的信息后,数据才会从确认队列中进行删除。确认写完的信息后,数据才会从确认队列中进行删除。(5 5)当客户端写完所有数据,调用)当客户端写完所有数据,调用closeclose方法关闭输出流。方法关闭输出流。3.1.4 HDFS3.1.4 HDFS运

16、行原理及保障运行原理及保障二、二、HDFSHDFS副本机制与机架感知策略副本机制与机架感知策略HDFSHDFS作为一个分布式文件系统,为了保证其系统的可靠性和容作为一个分布式文件系统,为了保证其系统的可靠性和容错性,采用了多副本的方式存储数据。副本的数量可以在错性,采用了多副本的方式存储数据。副本的数量可以在hdfs-hdfs-site.xmlsite.xml配置文件中通过参数设定,如下所示。通常每个数据配置文件中通过参数设定,如下所示。通常每个数据块默认三个副本,每个副本会分配到不同的数据节点上。块默认三个副本,每个副本会分配到不同的数据节点上。dfs.replication dfs.rep

17、lication 3 -3 -此处的此处的3 3代表三个副本代表三个副本 3.1.4 HDFS3.1.4 HDFS运行原理及保障运行原理及保障二、二、HDFSHDFS副本机制与机架感知策略副本机制与机架感知策略HDFSHDFS数据块默认副本为三,通常每个数据块都会被保存在不同数据块默认副本为三,通常每个数据块都会被保存在不同的三个地方。其中,有两个副本存储在同一个机架的不同机器的三个地方。其中,有两个副本存储在同一个机架的不同机器上面,第三个副本存储在不同机架的机器上面上面,第三个副本存储在不同机架的机器上面.3.1.4 HDFS3.1.4 HDFS运行原理及保障运行原理及保障二、二、HDFS

18、HDFS副本机制与机架感知策略副本机制与机架感知策略HDFSHDFS的副本放置策略如下:的副本放置策略如下:(1 1)若是在集群内部发起的写操作请求,则把第一个副本放置在发起)若是在集群内部发起的写操作请求,则把第一个副本放置在发起写操作请求的数据节点上,实现就近写入数据。若是来自集群外部的写写操作请求的数据节点上,实现就近写入数据。若是来自集群外部的写操作请求,则随机挑选一个磁盘不太满、操作请求,则随机挑选一个磁盘不太满、CPUCPU不太忙的数据节点进行第不太忙的数据节点进行第一个副本的存储。一个副本的存储。(2 2)第二个副本会被放置在和第一个副本不同机架数据节点上。)第二个副本会被放置在

19、和第一个副本不同机架数据节点上。(3 3)第三个副本则会被放置在和第二个副本相同机架不同数据节点上。)第三个副本则会被放置在和第二个副本相同机架不同数据节点上。(4 4)如果还有更多的副本,则会随机从集群中选择数据节点进行存放)如果还有更多的副本,则会随机从集群中选择数据节点进行存放。3.1.4 HDFS3.1.4 HDFS运行原理及保障运行原理及保障三、数据复制和心跳机制三、数据复制和心跳机制HDFSHDFS采用主从模式,主节点采用主从模式,主节点NamenodeNamenode,从节点,从节点DatanodeDatanode,NamenodeNamenode和和DatanodeDatano

20、de主要通过心跳的方式进行通信。主要通过心跳的方式进行通信。DatanodeDatanode向向NamenodeNamenode定期发送定期发送心跳报告,报告自己的存活状态和自己存储的块信息。心跳报告,报告自己的存活状态和自己存储的块信息。3.1.4 HDFS3.1.4 HDFS运行原理及保障运行原理及保障四、四、HDFSHDFS负载均衡负载均衡HDFSHDFS上的数据也许并不能非常均匀地分布在各个上的数据也许并不能非常均匀地分布在各个DataNodeDataNode中。中。HDFSHDFS集群集群也非常容易出现机器与机器之间磁盘利用率不平衡的情况,其中一个常也非常容易出现机器与机器之间磁盘利

21、用率不平衡的情况,其中一个常见的原因是在现有的集群上经常会增添新的见的原因是在现有的集群上经常会增添新的DataNodeDataNode。当新增一个数据。当新增一个数据块块(一个文件的数据被保存在一系列的块中一个文件的数据被保存在一系列的块中)时,时,NameNodeNameNode在选择在选择DataNodeDataNode接收这个数据块之前,要考虑到很多因素。接收这个数据块之前,要考虑到很多因素。3.1.4 HDFS3.1.4 HDFS运行原理及保障运行原理及保障其中某些因素如下:其中某些因素如下:(1 1)将数据块的一个副本放在正在写这个数据块的节点上。)将数据块的一个副本放在正在写这个

22、数据块的节点上。(2 2)尽量将数据块的不同副本分布在不同的机架上,这样集群可在完)尽量将数据块的不同副本分布在不同的机架上,这样集群可在完全失去某一机架的情况下还能存活。全失去某一机架的情况下还能存活。(3 3)一个副本通常被放置在和写文件的节点同一机架的某个节点上,)一个副本通常被放置在和写文件的节点同一机架的某个节点上,这样可以减少跨越机架的网络这样可以减少跨越机架的网络I/OI/O。(4 4)尽量均匀地将)尽量均匀地将HDFSHDFS数据分布在集群的数据分布在集群的DataNodeDataNode中。中。3.2.13.2.1使用使用HDFS shellHDFS shell访问访问Had

23、oopHadoop支持很多支持很多ShellShell命令,可以查看命令,可以查看HDFSHDFS文件系统的目录结构、上传文件系统的目录结构、上传和下载数据、创建文件等。和下载数据、创建文件等。HadoopHadoop可以使用的三种可以使用的三种shellshell命令方式:命令方式:(1 1)hadoop fs hadoop fs,可以适用于任何不同的文件系统。,可以适用于任何不同的文件系统。(2 2)hadoop dfshadoop dfs,只能适用于,只能适用于HDFSHDFS文件系统,旧版本曾使用过,已过文件系统,旧版本曾使用过,已过时。时。(3 3)hdfs dfshdfs dfs,

24、只能适用于,只能适用于HDFSHDFS文件系统,目前较常用。文件系统,目前较常用。3.2.13.2.1使用使用HDFS shellHDFS shell访问访问1 1、常用、常用ShellShell命令解析命令解析(1 1)hdfs dfs-appendToFile .hdfs dfs-appendToFile .可同时上传多个文件到可同时上传多个文件到HDFSHDFS里面。里面。(2 2)hdfs dfs-cat URI URI.hdfs dfs-cat URI URI.查看文件内容。查看文件内容。(3 3)hdfs dfs-chgrp-R GROUP URI URI.hdfs dfs-chg

25、rp-R GROUP URI URI.修改文件所属组。修改文件所属组。(4 4)hdfs dfs-chmod-R URI hdfs dfs-chmod-R URI URI.URI.修改文件权限。修改文件权限。3.2.13.2.1使用使用HDFS shellHDFS shell访问访问1 1、常用、常用ShellShell命令解析命令解析(5 5)hdfs dfs-chown-R OWNER:GROUP URI URI hdfs dfs-chown-R OWNER:GROUP URI URI 修改文件所有者,文件所属组,其他用户的读、写、执行权限。修改文件所有者,文件所属组,其他用户的读、写、执

26、行权限。(6 6)hdfs dfs-copyFromLocal URIhdfs dfs-copyFromLocal URI复制文件到复制文件到hdfshdfs。(7 7)hdfs dfs-copyToLocal-ignorecrc-crc URI hdfs dfs-copyToLocal-ignorecrc-crc URI 复制文件到本地。复制文件到本地。(8 8)hdfs dfs-count-q hdfs dfs-count-q 统计文件及文件夹数目。统计文件及文件夹数目。3.2.13.2.1使用使用HDFS shellHDFS shell访问访问1 1、常用、常用ShellShell命令解

27、析命令解析(9 9)hdfs dfs-cp-f URI URI.hdfs dfs-cp-f URI URI.Hadoop HDFS Hadoop HDFS 文件系统间的文件复制。文件系统间的文件复制。(1010)hdfs dfs-du-s-h URI URI.hdfs dfs-du-s-h URI URI.统计目录下的文件及大小。统计目录下的文件及大小。(1111)hdfs dfs-dus hdfs dfs-dus 汇总目录下的文件总大小。汇总目录下的文件总大小。(1212)hdfs dfs-get-ignorecrc-crc hdfs dfs-get-ignorecrc-crc 下载文件到本

28、地。下载文件到本地。3.2.13.2.1使用使用HDFS shellHDFS shell访问访问1 1、常用、常用ShellShell命令解析命令解析(1313)hdfs dfs-getmerge addnlhdfs dfs-getmerge addnl合并下载文件到本地。合并下载文件到本地。(1414)hdfs dfs-ls hdfs dfs-ls 查看目录。查看目录。(1515)hdfs dfs-ls-R hdfs dfs-ls-R 循环列出目录、子目录及文件信息循环列出目录、子目录及文件信息 。(1616)hdfs dfs-mkdir-p hdfs dfs-mkdir-p 创建空白文件夹

29、。创建空白文件夹。3.2.13.2.1使用使用HDFS shellHDFS shell访问访问1 1、常用、常用ShellShell命令解析命令解析(1717)dfs-moveFromLocal dfs-moveFromLocal 剪切文件到剪切文件到hdfshdfs。(1818)hdfs dfs-moveToLocal-crc hdfs dfs-moveToLocal-crc 剪切文件到本地。剪切文件到本地。(1919)hdfs dfs-mv URI URI.hdfs dfs-mv URI URI.剪切剪切hdfshdfs文件。文件。(2020)hdfs dfs-put .hdfs dfs-

30、put .上传文件。上传文件。3.2.13.2.1使用使用HDFS shellHDFS shell访问访问1 1、常用、常用ShellShell命令解析命令解析(2121)hdfs dfs-rm-skipTrash URI URI.hdfs dfs-rm-skipTrash URI URI.删除文件删除文件/空白文件夹。空白文件夹。(2222)hdfs dfs-rm-r-skipTrash URI URI.hdfs dfs-rm-r-skipTrash URI URI.递归删除递归删除 删除文件及文件夹下的所有文件。删除文件及文件夹下的所有文件。(2323)hdfs dfs-setrep-R-

31、w hdfs dfs-setrep-R-w 修改副本数。修改副本数。(2424)hdfs dfs-stat URI URI.hdfs dfs-stat URI URI.显示文件统计信息。显示文件统计信息。3.2.13.2.1使用使用HDFS shellHDFS shell访问访问1 1、常用、常用ShellShell命令解析命令解析(2525)hdfs dfs-tail-f URIhdfs dfs-tail-f URI查看文件尾部信息。查看文件尾部信息。(2626)hdfs dfs-test-ezd URIhdfs dfs-test-ezd URI对对PATHPATH进行如下类型的检查:进行如

32、下类型的检查:-e PATH-e PATH是否存在,如果是否存在,如果PATHPATH存在,返回存在,返回0 0,否则返回,否则返回1 1;-z-z 文件是否为空,如果长度为文件是否为空,如果长度为0 0,返回,返回0 0,否则返回,否则返回1 1;-d-d 是否为目录,如果是否为目录,如果PATHPATH为目录,返回为目录,返回0 0,否则返回,否则返回1 1。(2727)hdfs dfs-text hdfs dfs-text 查看文件内容。查看文件内容。(2828)hdfs dfs-touchz URI URI.hdfs dfs-touchz URI URI.创建长度为创建长度为0 0的空文件。的空文件。谢 谢

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁