hdfs dfs -ls 命令的结果
Result of hdfs dfs -ls command
在执行hdfs dfs -ls 命令时,我很想知道结果是存储在集群中的所有文件还是只是执行它的节点中的分区。
我是 hadoop 的新手,我在搜索每个节点中的分区时遇到了一些问题。
谢谢
Question: "...if the result are all the files stored in the cluster or..."
你在ls
命令中看到的是集群中存储的所有文件。更具体地说,您看到的是一堆文件路径和名称。这些信息是命名空间的一部分,由 Namenode 管理。
"...just the partitions in the node where it is executed.."
如果你认为hdfs在这个节点上保留了一些文件,在另一个节点上保留了一些文件。你误会了。没有这样的事情。 NameNode 跟踪命名空间和 blocksMap。事实上,文件是由块组成的。 NameNode 知道文件有多少块以及这些块保存在哪些 DataNode 上。 NameNode 决定块的保存位置,它对用户是透明的。每个block默认有3个replication,每个replication都在一个DataNode上。所以假设一个文件有2个块,它最多可以位于6个DataNode上,没有DataNode保存完整的文件(在这个例子中是真的。因为在另一种常见情况下,当一个小文件只有一个块时,每个复制都是一个完整的文件).
更多信息,请查看Hdfs Design
的官方文档
在执行hdfs dfs -ls 命令时,我很想知道结果是存储在集群中的所有文件还是只是执行它的节点中的分区。 我是 hadoop 的新手,我在搜索每个节点中的分区时遇到了一些问题。
谢谢
Question: "...if the result are all the files stored in the cluster or..."
你在ls
命令中看到的是集群中存储的所有文件。更具体地说,您看到的是一堆文件路径和名称。这些信息是命名空间的一部分,由 Namenode 管理。
"...just the partitions in the node where it is executed.."
如果你认为hdfs在这个节点上保留了一些文件,在另一个节点上保留了一些文件。你误会了。没有这样的事情。 NameNode 跟踪命名空间和 blocksMap。事实上,文件是由块组成的。 NameNode 知道文件有多少块以及这些块保存在哪些 DataNode 上。 NameNode 决定块的保存位置,它对用户是透明的。每个block默认有3个replication,每个replication都在一个DataNode上。所以假设一个文件有2个块,它最多可以位于6个DataNode上,没有DataNode保存完整的文件(在这个例子中是真的。因为在另一种常见情况下,当一个小文件只有一个块时,每个复制都是一个完整的文件).
更多信息,请查看Hdfs Design
的官方文档