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

q0qdq0h2  于 2021-06-04  发布在  Hadoop
关注(0)|答案(4)|浏览(305)

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

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

NameNode 重新启动时,它会确保复制的块被复制。因此,文件的复制信息存储在 nameNode ). 我怎样才能得到那个信息?

wh6knrhe

wh6knrhe1#

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

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

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

kjthegm62#

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

cczfrluj

cczfrluj3#

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

hadoop fs -ls /user/xxxx

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

lndjwyie

lndjwyie4#

除了阿列克谢·谢斯塔科夫的回答非常有效,完全符合你的要求外,其他的方法,主要在这里找到,包括:

hadoop dfs -ls /parent/path

它显示了所有 /parent/path 第二栏的内容。
通过java,您可以通过以下方式获得此信息:

FileStatus.getReplication()

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

hadoop fsck /filename -files -blocks -racks

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

相关问题