代码之家  ›  专栏  ›  技术社区  ›  BARATH

HDFS块与HDD存储块

  •  0
  • BARATH  · 技术社区  · 6 年前

    我和Hadoop HDFS一起工作了很长一段时间,我知道HDFS块(64 MB,128 MB)的工作情况。但是我仍然不清楚其他文件系统中的块,例如硬盘驱动器的存储块容量为4KB。

    所以我的理解是,所有的存储系统都使用块来存储数据,即使是我们的移动SD卡,但是Hadoop为了处理海量的数据,有更大的块大小,对吗?

    请告诉我是否有任何文档比较不同的块存储系统。

    1 回复  |  直到 6 年前
        1
  •  0
  •   confused    6 年前

    HDFS基本上是对现有文件系统的抽象(这意味着64 MB/128 MB的块在LFS中存储为4K块)。HDFS块的大小很大的原因是为了最小化查找。HDFS块存储在正常文件系统中相邻的内存位置(相邻),这意味着读取的总时间是在LFS上查找第一个块的头,然后读取块的内容,而不再进行任何查找,因为它们是相邻的。

    这意味着我们正在读取与磁盘传输速率相当的数据,并且在查找时花费的时间最短。

    这对Mr Jobs非常有帮助,因为我们必须读取大量数据并对这些数据执行操作,因此最小化寻道时间可以提高性能。

    此外,HDF还用于处理大型文件。假设您有一个1GB文件。如果块大小为4K,您必须发出256000个请求才能获取该文件。在HDFS中,这些请求通过网络到达名称节点,以确定在哪里可以找到该块。如果使用64MB块,则请求数将下降到16个。 使用大块大小的原因是为了减少名称节点上的应力。由于namenode存储文件块的元数据,如果块大小很小,那么namenode很容易被块数据淹没。

    这些链接还将帮助您更好地理解 HDFS vs LFS