HDFS 块与 HDD 存储块

HDFS blocks Vs HDD storage blocks

我使用 Hadoop HDFS 已经有一段时间了,我知道 HDFS 块(64 Mb、128 Mb)的工作原理。但是我仍然不清楚其他文件系统中的块,例如硬盘驱动器具有4kb的存储块容量。

所以我的理解是,所有的存储系统都使用块来存储数据,甚至我们的移动 sd 卡,但是 Hadoop 为了处理海量数据而具有更大的块大小,是否正确?

如果有比较不同块存储系统的文档,请告诉我。

HDFS 基本上是对现有文件系统的抽象(这意味着 64 MB/128 MB 块在 LFS 中存储为 4k 块)。 hdfs 块大小很大的原因是为了尽量减少查找。 HDFS 块存储在普通文件系统中的连续内存位置(彼此相邻),这意味着读取它的总时间是在 LFS 上寻找第一个块的头部然后读取块的内容的时间,而无需做更多的搜索,因为它们是连续的。

这意味着我们正在以最少的寻道时间读取与磁盘传输速率相当的数据。

这在 MR 作业中非常有用,因为我们必须读取大量数据并对这些数据执行操作,因此最小化寻道时间可以显着提高性能。

另外,HDFS 是用来处理大文件的。假设您有一个 1GB 的文件。对于 4k 块大小,您必须发出 256,000 个请求才能获取该文件。在 HDFS 中,这些请求通过网络到达名称节点,以确定可以在何处找到该块。如果您使用 64Mb 块,请求数会下降到 16。 使用大块大小的原因是为了减少名称节点的压力。由于 namenode 存储文件块的元数据,如果块大小很小,那么 namenode 很容易被块数据淹没。

这些link也会帮助你更好地理解 HDFS vs LFS