我为我的文件设置了复制因子,如下所示:
hadoop fs -D dfs.replication=5 -copyFromLocal file.txt /user/xxxx
当NameNode
重新启动时,它会确保复制未复制的块。
因此,存储了文件的复制信息(可能在nameNode
中)。我怎样才能获得这些信息?
答案 0 :(得分:15)
尝试使用命令hadoop fs -stat %r /path/to/file
,它应该打印复制因子。
答案 1 :(得分:4)
您可以运行以下命令来获取复制因子
hadoop fs -ls /user/xxxx
输出中的第二列表示文件及其显示的文件夹-
的复制因子,如下图所示。
答案 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)