我不是文件系统如何工作的专家,但这个问题可以帮助我清除一些模糊的概念。 HDFS如何写入物理磁盘?
我理解HDFS在ext3文件系统磁盘上运行(通常)。这些文件系统的块大小小于HDFS块大小。因此,如果我正在编写128 MB的 逻辑 HDFS块,则磁盘可能会将其存储为较小的 物理 块。
HDFS是否确保这些物理块是连续的? (连续块增加了FS吞吐量,因为它最小化了寻道时间)?
HDFS如何提供高吞吐量?
答案 0 :(得分:2)
据我所知,HDFS并不关心它运行的物理文件系统。我在几个不同的文件系统上安装了Hadoop,例如我也使用了solaris ZFS。
hadoop / hdfs的块被写为每个datanode上的普通文件。 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