【问题标题】:How does HDFS write to a disk on the data nodeHDFS如何写入数据节点上的磁盘
【发布时间】:2014-06-03 07:15:55
【问题描述】:

我不是文件系统如何工作的专家,但这个问题可以帮助我理清一些模糊的概念。 HDFS 如何写入物理磁盘?

我了解 HDFS 在 ext3 文件系统磁盘上运行(通常)。这些文件系统的块大小远小于 HDFS 块大小。因此,如果我正在编写 128 MB 的 logical HDFS 块,则磁盘可能会将其存储得更小physical块。

HDFS 是否确保这些物理块是连续的? (连续块增加了 FS 吞吐量,因为它最大限度地减少了寻道时间)?

HDFS 如何提供高吞吐量?

【问题讨论】:

    标签: hadoop filesystems hdfs


    【解决方案1】:

    据我所知,HDFS 并不关心它运行的物理文件系统。我在几个不同的文件系统上安装了 Hadoop,例如我还使用了 solaris ZFS。

    hadoop/hdfs 块作为普通文件写入每个数据节点上。 namenode 在 OS 文件系统中扮演 inode 或 FAT 的角色。 HDFS 是每个数据节点上物理文件系统之上的一层。

    您可以通过列出数据节点上的目录内容来列出 hadoop/hdfs 文件系统中存储的块:

    /srv/hadoop/hadoop_data/hdfs/datanode/current/BP-1458088587-192.168.1.51-1394008575227/current/finalized$ ls -alh ./blk_1073741838
    -rw-r--r-- 1 hadoop hadoop 1.4M Mar  6 10:55 ./blk_1073741838
    

    【讨论】:

    • HDFS 似乎比物理更符合逻辑。如果 HDFS 不影响原始数据在磁盘上的存储方式(连续或顺序),那么磁盘绑定不会产生碎片并最终降低 I/O 性能。例如,如果我们为 128 MB 的 HDFS 块大小存储 150 MB 的数据。即使单个块连续存储,当您删除文件时,22 MB 也可能会产生碎片。
    • 对我来说,HDFS 是在每个数据节点服务器的常规存储层之上的另一个存储层。 HDFS 的重要之处在于,如果您增加存储的数据量,它可以很好地扩展!请记住,存储在 HDFS 中的一个巨大文件无论如何都会分布在几个数据节点上。默认情况下,每个块都被复制 3 次到其他数据节点,以容忍整个数据节点的完全故障。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-17
    • 2011-12-13
    • 2017-10-12
    • 2021-11-20
    相关资源
    最近更新 更多