大数据讲课笔记4.1 HDFS基本概念

Posted howard2005

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据讲课笔记4.1 HDFS基本概念相关的知识,希望对你有一定的参考价值。

文章目录

零、学习目标

  1. 了解HDFS的演变
  2. 理解HDFS的基本概念
  3. 熟悉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),保存了两个核心的数据结构:fsimageedits。元数据镜像文件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基本概念、优缺点的内容。

以上是关于大数据讲课笔记4.1 HDFS基本概念的主要内容,如果未能解决你的问题,请参考以下文章

大数据讲课笔记4.3 HDFS的shell操作

大数据讲课笔记4.4 使用Java API操作HDFS

大数据讲课笔记3.4 Hadoop集群测试

大数据讲课笔记3.3 Hadoop集群配置

大数据讲课笔记1.4 进程管理

大数据讲课笔记2.3 初探Hadoop世界