hdfs dfs-ls命令的结果

crcmnpdw  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(541)

在执行hdfs dfs-ls命令时,我想知道结果是存储在集群中的所有文件,还是执行它的节点中的分区。我是hadoop的新手´我在每个节点上安装分区时遇到了一些问题。
谢谢您

vsikbqxv

vsikbqxv1#

问题:“…如果结果是集群中存储的所有文件,或者…”
你从中看到了什么 ls 命令是集群中存储的所有文件。更具体地说,您看到的是一堆文件路径和名称。这些信息是namespace的一部分,由namenode管理。
“…只是执行它的节点中的分区…”
如果您认为hdfs在这个节点上保留了一些文件,而在另一个节点上保留了一些文件。你误解了。没有这回事。namenode跟踪namespace和blocksmap。实际上,文件是由块组成的。namenode知道文件有多少块,以及这些块保存在哪些datanode上。namenode决定块的存放位置,它对用户是透明的。默认情况下,每个块有3个复制,每个复制在一个datanode上。因此,假设一个文件有2个块,它最多可以位于6个datanode上,没有datanode保留完整的文件(在本例中为true)。因为在另一种常见情况下,当一个小文件只有一个块时,每个复制都是一个完整的文件)。
有关更多信息,请参阅hdfs设计的官方文档

相关问题