【发布时间】:2014-08-06 17:52:56
【问题描述】:
我为我的文件设置了复制因子,如下所示:
hadoop fs -D dfs.replication=5 -copyFromLocal file.txt /user/xxxx
当NameNode 重新启动时,它会确保复制不足的块。
因此文件的复制信息被存储(可能在nameNode)。我怎样才能获得这些信息?
【问题讨论】:
标签: hadoop replication hadoop2
我为我的文件设置了复制因子,如下所示:
hadoop fs -D dfs.replication=5 -copyFromLocal file.txt /user/xxxx
当NameNode 重新启动时,它会确保复制不足的块。
因此文件的复制信息被存储(可能在nameNode)。我怎样才能获得这些信息?
【问题讨论】:
标签: hadoop replication hadoop2
您可以运行以下命令来获取复制因子,
hadoop fs -ls /user/xxxx
输出中的第二列表示文件和文件夹的复制因子,它显示-,如下图所示。
【讨论】:
尝试使用命令hadoop fs -stat %r /path/to/file,它应该打印复制因子。
【讨论】:
除了 Alexey Shestakov 的回答,它完美地工作并且完全按照你的要求做,其他方法,主要是 here,包括:
hadoop dfs -ls /parent/path
第二列显示所有/parent/path 内容的复制因子。
通过 Java,您可以使用以下方法获取此信息:
FileStatus.getReplication()
您还可以使用以下方法查看文件的复制因子:
hadoop fsck /filename -files -blocks -racks
最后,从namenode的web UI,我相信这个信息也是可用的(没查到)。
【讨论】:
我们可以使用以下命令来检查文件的复制。
hdfs dfs -ls /user/cloudera/input.txt
或
hdfs dfs -stat %r /user/cloudera/input.txt
【讨论】: