📜  HDFS的特点

📅  最后修改于: 2021-10-27 06:32:37             🧑  作者: Mango

HDFS 是 Hadoop 的主要组件之一,它为 Hadoop 集群中的数据存储提供了一种有效的方式。但是在了解HDFS的特性之前,让我们先了解一下什么是文件系统和分布式文件系统。我们可以说文件系统是操作系统用来管理和维护其存储空间上的文件的数据存储架构。 Windows 文件系统的一个例子是 NTFS(新技术文件系统)和 FAT32(文件分配表 32)。 FAT32 用于某些较旧版本的 Windows,但可用于所有版本的 Windows XP。与 Windows 类似,我们有适用于 Linux 操作系统的 ext3、ext4 文件系统。

类似的,HDFS 是一个分布式文件系统。 DFS(分布式文件系统)是基于客户端-服务器的应用程序。它允许客户端访问和处理存储在服务器上的数据。每当客户端从服务器请求文件时,服务器都会向客户端发送文件的副本,然后在处理数据时将其缓存在客户端的计算机上,然后将处理后的数据返回给服务器。

让我们了解 Hadoop 上的 HDFS。 HDFS 是 Hadoop 的默认文件系统,其中 HDFS 代表 Hadoop 分布式文件系统。它旨在存储大量数据,并为如此多的客户端提供对这些数据的访问。因此 Hadoop 应用程序使用 HDFS 作为主存储系统。 HDFS 类似于google 文件系统,它很好地组织了文件并将数据以分布式的方式存储在各个节点或机器上。现在,让我们讨论 HDFS 的顶级特性,使其更受青睐。

1. 运行低成本系统,即商品硬件

Hadoop分布式文件系统与现有的分布式文件系统非常相似,但在商品硬件等几个方面有所不同。 Hadoop HDFS 不需要专门的硬件来存储和处理非常大的数据,而是设计用于低成本的商用硬件集群。集群是指一组连接的计算机,这些计算机既便宜又负担得起。

2.提供高容错

HDFS 提供了很高的容错能力,即使系统的某些硬件组件发生故障,系统也能正常运行而不会丢失任何数据,从而实现容错。在集群中,当单个节点发生故障时,它会使整个系统崩溃。容错的主要职责是移除干扰系统整体正常运行的故障节点。默认情况下,在 HDFS 中,每个数据块都在 3 个数据节点中复制。如果一个数据节点出现故障,客户端可以轻松地从复制数据的其他 2 个数据节点获取数据,因此它可以防止整个系统出现故障并在 Hadoop 集群中实现容错。 HDFS 足够灵活,可以轻松添加和删除数据节点。 HDFS 可以通过 3 种方式实现容错,即数据复制、心跳消息、检查点和恢复。

3. 大数据集

在 HDFS 的情况下,大数据集意味着数据的大小为数百兆字节、千兆字节、兆兆字节,有时甚至是 PB。对于非常大的文件,最好使用 HDFS,而不是使用这么多小文件,因为大量小文件的元数据比 name node 中的大文件条目数少的元数据占用的内存空间非常大.

4. 高吞吐量

HDFS 旨在成为高吞吐量批处理系统,而不是提供低延迟交互使用。 HDFS 始终实现 WORM 模式,即一次写入多次读取。数据不可变意味着数据一旦写入就无法更改。由于哪些数据在整个网络中是相同的。因此,它可以在给定的时间内处理大量数据,从而提供高吞吐量。

5. 数据局部性

HDFS 允许我们在由商品硬件组成的集群上存储和处理海量数据。由于数据非常大,因此 HDFS 将计算过程(即 Map-Reduce 程序)移向数据,而不是将数据拉出进行计算。这些最大限度地减少了网络拥塞并增加了系统的整体吞吐量。

6. 可扩展性

由于 HDFS 将大尺寸数据存储在多个节点上,因此当数据存储需求增加或减少时,集群中的节点数量可以扩展或缩减。垂直和水平可扩展性是可用于在集群中提供可扩展性的 2 种不同机制。垂直可扩展性意味着在集群的现有节点上添加磁盘空间、RAM 等资源。另一方面,在水平扩展中,我们增加了集群中的节点数量,这更可取,因为我们可以在集群中拥有数百个节点。