我正在尝试获取HDFS目录中特定文件的字节数。
我尝试使用fs.getFileStatus()
,但我没有看到任何获取文件字节数的方法,我只能看到getBlockSize()
方法。
有没有办法在HDFS中获取特定文件的字节数?
答案 0 :(得分:1)
fs.getFileStatus()
返回一个FileStatus对象,它有一个方法getLen()
,它将返回"该文件的长度,以字节为单位。"也许你应该仔细研究一下:https://hadoop.apache.org/docs/r2.6.1/api/org/apache/hadoop/fs/FileStatus.html。
但是请注意文件大小在HDFS上并不重要。这些文件将被组织在所谓的数据块中,每个数据块默认为64 MB。因此,如果您处理许多小文件(这是HDFS上的一个大型反模式),您的容量可能会低于预期。有关详细信息,请参阅此链接:
https://hadoop.apache.org/docs/r2.6.1/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html#Data_Blocks
答案 1 :(得分:0)
我们需要使用fs.getLen()
方法来获取文件字节数。