什么是 Hadoop 分布式文件系统 (HDFS)? 架构、功能和运营

已发表: 2020-02-03

Hadoop 分布式文件系统或 HDFS 是 Hadoop 的主要存储系统。 它存储在商品硬件上运行的大型数据文件。 该存储系统具有可扩展性、易于扩展性和容错性。

当一台物理机上存储的数据过多时,就变成了将存储分散到多台机器上,以避免数据丢失。 HDFS 就是这样一种分布式文件存储系统,它管理跨许多物理机的存储操作。 这是一个 HDFS 教程,可让您更好地了解该系统的工作原理。 让我们从它的架构开始。

目录

HDFS 架构

Hadoop分布式文件系统具有主从架构,包含以下组件:

  1. Namenode :它是同时拥有 namenode 软件和 Linux/GNU 操作系统的商品硬件。 Namenode 软件可以在商用硬件上顺利运行,而不会遇到任何麻烦。 以namenode为组件的系统作为主服务器。 它执行的任务包括调节客户端如何访问文件、管理文件系统命名空间以及执行操作,包括打开、关闭和重命名目录和文件。
  2. Datanode :它是一种商品硬件,包含数据节点软件和 Linux/GNU 操作系统。 集群中的节点将始终具有与之关联的数据节点。 这些节点负责管理商品硬件/系统的存储。 数据节点执行的一些任务包括根据客户端请求的读/写操作以及根据namenode给出的指令创建、复制和删除块。
  3. :整个用户数据存储在 HDFS 文件中。 属于特定文件系统的每个文件都分为一个或多个段,然后存储为数据节点。 文件分成的文件段是块。 因此,HDFS 能够读取或写入的最小数据是一个块。 最初,每个块的大小为 64MB。 但是,这个大小可以根据 HDFS 配置的变化而增加。

HDFS 架构给出了 HDFS 工作的清晰和明确的画面。 它由几个数据节点组成,但只有一个名称节点。 元数据存储在namenode中,而这两种节点的实际工作人员是datanode。 节点组织在不同的机架中,数据块存储在这些机架上,以提高容错性和数据可靠性。 客户端必须与名称节点交互才能读/写文件。 集群有几个使用本地磁盘存储可用数据的数据节点。 Datanode 和 namenode 永远保持联系。 Datanode 还负责使用复制功能将数据复制到不同的数据节点。

HDFS 中的读写操作发生在最小的级别,即块级别。 数据复制的概念是 HDFS 工作方式的核心——在节点故障期间通过创建块的副本并在整个集群中分布这些副本来确保数据的高可用性。

HDFS 操作

HDFS 和 Linux 文件系统非常相似。 因此,HDFS 允许我们执行我们习惯于使用本地文件系统执行的所有操作——我们可以创建一个导向器、更改权限、复制文件,以及做更多的事情。 我们还拥有多种文件访问权限,包括读取、写入和执行。

HDFS 中的读取操作:如果要读取存储在 HDFS 中的文件,则必须与 namenode 交互。 如前所述,所有元数据都存储在名称节点中。 一旦您与 namenode 交互,它将为您提供存储您要查找的文件的数据节点的地址。 然后,您可以与 namenode 提供地址的数据节点进行交互,然后从那里读取信息。

您与文件系统的 API 交互,它请求 namenode 共享块地址。 在提供此信息之前,namenode 会运行检查以确定您是否有权访问此数据。 一旦完成此检查,namenode 要么共享块位置,要么由于限制拒绝访问。

名称节点为您提供了一种令牌形式,您需要将其显示给相应的数据节点以访问文件。 这是 HDFS 用来确保正确的人访问数据的一种安全机制。 数据节点只会让您在显示令牌后读取文件。

写操作:写操作遵循相同的初始模式。 您需要请求 namenode 让您写入数据。 作为回报,它将为您提供必须执行写入操作的数据节点的位置。 完成此操作后,数据节点将开始在其他数据节点上复制这些写入数据块。 复制完成后,您将收到确认。 写操作中的认证机制与读操作相同。

HDFS 功能

  1. 可用性:HDFS 的高可用性带来的文件系统并不多。 文件系统遵循一种在整个集群的数据节点(从属)上以块副本的形式复制数据的机制。 要访问这些数据,您需要与包含他们正在寻找的信息块的数据节点进行交互。
  2. 可靠性:Hadoop分布式文件系统是一个高度可靠的数据存储系统。 可以存储在 HDFS 上的数据量以 PB 为单位。 它使用一个集群来存储它的所有数据,这些数据被分开形成块。 然后它使用集群的节点来存储这些块。
  3. 容错性:此功能是 HDFS 在不如通常情况下有利的条件下的工作强度。 HDFS 可以像其他文件系统一样容忍故障。 它可以保护您的数据免受任何不可预见的影响,即使在未来也是如此。 正如已经提到的,数据的复制是在不同的机器上完成的。 当这些机器中的任何一个停止工作时会发生什么? 这可能是任何其他系统的重大问题,但不是 HDFS。 HDFS 允许您从任何其他也具有您正在寻找的数据块的副本的机器访问您的数据。 这称为真正的容错。
  4. 可扩展性:HDFS 使用集群中的不同节点来存储数据。 当存储需求增加时,您始终可以继续扩展集群。 这是 HDFS 独有的另一个功能。 文件分发系统为您提供了两种扩展集群的机制——水平和垂直可扩展性。
  5. 复制:复制是一种将 HDFS 与其他存储系统区分开来的功能。 复制可最大限度地减少由于不利事件(例如节点崩溃、硬件故障等)而导致的数据丢失实例。 复制过程定期在不同的机器上进行。 因此,如果机器出现故障,不会丢失数据。 您可以使用任何其他机器来获取数据。

HDFS 目标

  1. 管理庞大的数据集:与其他文件分发系统不同,HDFS 具有管理具有大量数据集的应用程序所需的架构。 根据所讨论数据集的规模,每个集群可以有数百个节点。
  2. 故障检测和恢复:在检测故障并适当处理故障方面,没有多少人能胜过 HDFS。 大量有问题的商品硬件使 HDFS 面临组件频繁故障的风险。 然而,这并不是一个缺点。 处理此类商品硬件的每个系统都可能出现故障。 但是,问题仍然是系统是否擅长快速自动检测这些故障并同时提供恢复。 HDFS当然是有能力的。
  3. 提高吞吐量: HDFS 有效地处理每个任务,因为实际计算是在数据本身附近进行的。 当我们处理庞大的数据集时,这一点尤其重要。 这种机制增加了吞吐量并显着解决了网络流量问题。

总而言之,我们想说的是,HDFS 可以以可靠的方式存储大量数据,而不会感受到硬件故障的影响。 它还具有高度容错性、高可用性和高度可扩展性。

要深入 Hadoop 并成为专家,请查看 upGrad 和 BITS Pilani 在大数据和分析方面的 PG 认证。 获得实践经验,与行业专家、专业导师、BITS Pilani 校友身份等进行一对一的交流。

如果您有兴趣了解有关大数据的更多信息,请查看我们的 PG 大数据软件开发专业文凭课程,该课程专为在职专业人士设计,提供 7 多个案例研究和项目,涵盖 14 种编程语言和工具,实用的动手操作研讨会,超过 400 小时的严格学习和顶级公司的就业帮助。

从世界顶级大学在线学习软件开发课程获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。

掌握未来的技术 - 大数据

超过 400 小时的学习时间。 14 种语言和工具。 IIIT-B 校友身份。
IIIT Bangalore 大数据高级证书课程