如何在Hdfs文件中检索复制因子信息?

时间:2014-08-06 17:52:56

标签: hadoop replication hadoop2

我为我的文件设置了复制因子,如下所示:

hadoop fs -D dfs.replication=5 -copyFromLocal file.txt /user/xxxx

NameNode重新启动时,它会确保复制未复制的块。 因此,存储了文件的复制信息(可能在nameNode中)。我怎样才能获得这些信息?

5 个答案:

答案 0 :(得分:15)

尝试使用命令hadoop fs -stat %r /path/to/file,它应该打印复制因子。

答案 1 :(得分:4)

您可以运行以下命令来获取复制因子

hadoop fs -ls /user/xxxx

输出中的第二列表示文件及其显示的文件夹-的复制因子,如下图所示。

enter image description here

答案 2 :(得分:1)

除了阿列克谢·谢斯塔科夫(Alexey Shestakov)的答案,它完美无缺,完全符合你的要求,其他方式,主要是here,包括:

hadoop dfs -ls /parent/path 

显示第二列中所有/parent/path内容的复制因子。

通过Java,您可以使用以下方式获取此信息:

FileStatus.getReplication()

您还可以使用以下方法查看文件的复制因子:

hadoop fsck /filename -files -blocks -racks

最后,从namenode的web UI,我相信这些信息也可用(没有检查)。

答案 3 :(得分:1)

我们可以使用以下命令来检查文件的复制。

hdfs dfs -ls  /user/cloudera/input.txt

hdfs dfs -stat %r /user/cloudera/input.txt

答案 4 :(得分:0)

如果您需要检查 HDFS 目录的复制因子

hdfs fsck /tmp/data

显示/tm/data/ HDFS文件夹的平均复制因子 enter image description here