目录
零、学习目标
- 了解HDFS的演变
- 理解HDFS的基本概念
- 熟悉HDFS的特点
一、导入新课
- 带领学生回顾项目三Hadoop集群相关的知识,由于Hadoop的核心是HDFS和MapReduce。其中,HDFS是解决海量大数据文件存储的问题,是目前应用最广泛的分布式文件系统。因此,本次课将针对HDFS分布式文件系统进行详细讲解。
二、新课讲解
(一)HFDS的演变
- HDFS 源于 Google 在2003年10月份发表的GFS(Google File System)论文,接下来,我们从传统的文件系统入手,开始学习分布式文件系统,以及分布式文件系统是如何演变而来?
(二)HDFS的基本概念
- HDFS(Hadoop Distributed Filesystem)是一个易于扩展的分布式文件系统,运行在成百上千台低成本的机器上。它与现有的分布式文件系统有许多相似之处,都是用来存储数据的系统工具,而区别于HDFS具有高度容错能力,旨在部署在低成本机器上。HDFS主要用于对海量文件信息进行存储和管理,也就是解决大数据文件(如TB乃至PB级)的存储问题。
NameNode(名称节点) | DataNode(数据节点) |
---|---|
存储元数据 | 存储文件内容 |
元数据保存在内存中 | 文件内容保存在磁盘上 |
保存文件、Block与DataNode之间的映射关系 | 维护Block标识到DataNode本地文件的映射关系 |
1、NameNode(名称节点)
- NameNode是HDFS集群的主服务器,通常称为名称节点或者主节点。一旦NameNode关闭,就无法访问Hadoop集群。NameNode主要以元数据的形式进行管理和存储,用于维护文件系统名称并管理客户端对文件的访问;NameNode记录对文件系统名称空间或其属性的任何更改操作;HDFS负责整个数据集群的管理,并且在配置文件中可以设置备份数量,这些信息都由NameNode存储。
- 名称节点负责管理分布式文件系统命名空间(NameSpace),保存了两个核心的数据结构:fsimage和edits。元数据镜像文件fsimage用于维护文件系统树以及文件树中所有的文件和文件夹的元数据。用户操作日志文件edits中记录了所有针对文件的创建、删除、重命名等操作。
2、DataNode(数据节点)
- DataNode是HDFS集群中的从服务器,通常称为数据节点。文件系统存储文件的方式是将文件切分成多个数据块,这些数据块实际上是存储在DataNode节点中的,因此DataNode机器需要配置大量磁盘空间。它与NameNode保持不断的通信,DataNode在客户端或者NameNode的调度下,存储并检索数据块,对数据块进行创建、删除等操作,并且定期向NameNode发送所存储的数据块列表。
3、Block(数据块)
- 每个磁盘都有默认的数据块大小,这是磁盘进行数据读/写的最小单位,HDFS同样也有块(block)的概念,它是抽象的块,而非整个文件作为存储单元,在Hadoop2.x版本下,默认大小是128M,且备份3份,每个块尽可能地存储于不同的DataNode中。按块存储的好处主要是屏蔽了文件的大小,提供数据的容错性和可用性。
- HDFS采用抽象块概念的优点
优点 | 具体说明 |
支持大规模文件存储 | 文件以块为单位进行存储,一个大规模文件可以被分拆成若干个文件块,不同的文件块可以被分发到不同的节点上,因此,一个文件的大小不会受到单个节点的存储容量的限制,可以远远大于网络中任意节点的存储容量。 |
简化系统设计 | 首先,大大简化了存储管理,因为文件块大小是固定的,这样就可以很容易计算出一个节点可以存储多少文件块;其次,方便了元数据的管理,元数据不需要和文件块一起存储,可以由其它系统负责管理元数据。 |
适合数据备份 | 每个文件块都可以冗余存储到多个节点上,大大提高了系统的容错性和可用性。 |
4、Rack(机架)
- Rack是用来存放部署Hadoop集群服务器的机架,不同机架之间的节点通过交换机通信,HDFS通过机架感知策略,使NameNode能够确定每个DataNode所属的机架ID,使用副本存放策略,来改进数据的可靠性、可用性和网络带宽的利用率。
5、Metadata(元数据)
- 元数据从类型上分可分三种信息形式,一是维护HDFS文件系统中文件和目录的信息,例如文件名、目录名、父目录信息、文件大小、创建时间、修改时间等;二是记录文件内容存储相关信息,例如文件分块情况、副本个数、每个副本所在的DataNode信息等;三是用来记HDFS中所有DataNode的信息,用于DataNode管理。
(三)HDFS的特点
- 随着互联网数据规模的不断增大,对文件存储系统提出了更高的要求,需要更大的容量、好更的性能以及安全性更高的文件存储系统,与传统分布式文件系统一样,HDFS分布式文件系统也是通过计算机网络与节点相连,也有传统分布式文件系统的优点和缺点。
1、HDFS的优点
(1)高容错性
- 数据自动保存多个副本。它通过增加副本的形式,提高容错性。
-某一个副本丢失以后,它可以自动恢复,这是由 HDFS 内部机制实现的,我们不必关心。
(2)适合批处理
- 它是通过移动计算而不是移动数据。
- 它会把数据位置暴露给计算框架。
(3)适合大数据处理
- 数据规模:能够处理数据规模达到 GB、TB、甚至PB级别的数据。
- 文件规模:能够处理百万规模以上的文件数量,数量相当之大。
- 节点规模:能够处理10K节点的规模。
- HDFS默认会将文件分割成block,128M为1个block。然后将block按键值对存储在HDFS上,并将键值对的映射存到内存中。如果小文件太多,那内存的负担会很重。
(4)流式数据访问
- 一次写入,多次读取,不能修改,只能追加。
- 它能保证数据的一致性。
(5)可构建在廉价机器上
- 如普通PC、Linux系统上
2、HDFS的缺点
(1)不适合低延时数据访问
- 比如毫秒级的来存储数据,无法处理。
- 它适合高吞吐率的场景,就是在某一时间内写入大量的数据。但是它在低延时的情况 下是不行的,比如毫秒级以内读取数据,这样它是很难做到的。
(2)无法高效的对大量小文件进行存储
- 存储大量小文件的话,它会占用 NameNode大量的内存来存储文件、目录和块信息。这样是不可取的,因为NameNode的内存总是有限的。
- 小文件存储的寻道时间会超过读取时间,它违反了HDFS的设计目标。 改进策略
(3)并发写入、文件随机修改
- 一个文件只能有一个写,不允许多个线程同时写。
- 仅支持数据 append(追加),不支持文件的随机修改。
三、归纳总结
- 回顾本节课所讲的内容,并通过提问的方式引导学生解答问题并给予指导。
四、上机操作
- 形式:单独完成
- 题目:理解HDFS基本概念、优点和缺点
- 要求:观看尚硅谷大数据视频中关于HDFS基本概念、优缺点的内容。
————————————————
版权声明:本文为CSDN博主「howard2005」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/howard2005/article/details/127170262