hadoop fs -stat 查看文件状态

时间:2024-03-13 21:02:28

转载来自:https://blog.csdn.net/knowledgeaaa/article/details/24394287

 

当向HDFS上写文件时,可以通过设置dfs.block.size配置项来设置文件的block size,这导致HDFS上不同文件的block size是不同的。有时候我们需要知道HDFS上某个文件的block size,比如想知道该该文件作为job的输入会创建几个map等。Hadoop FS Shell提供了一个-stat选项可以达到目的。官方文档描述这个选项时遗漏了可选参数。-stat选项的使用格式是:

{HADOOP_HOME}/bin/hadoop fs –stat [format]

其中可选的format被官方文档遗漏了。下面列出了format的形式:

%b:打印文件大小(目录为0)

%n:打印文件名

%o:打印block size (我们要的值)

%r:打印备份数

%y:打印UTC日期 yyyy-MM-dd HH:mm:ss

%Y:打印自1970年1月1日以来的UTC微秒数

%F:目录打印directory, 文件打印regular file

当使用-stat选项但不指定format时候,只打印文件创建日期,相当于%y:

bin/hadoop fs -stat /liangly/teradata/part-00099

2010-11-02 08:03:49

下面的例子打印文件的block size和备份个数:

bin/hadoop fs -stat "%o %r" /liangly/teradata/part-00099

67108864 3

从打印结果可以看到文件/liangly/teradata/part-00099的block size是64m,有3个备份。