python hdfs提供了不正确的文件大小

hiz5n14c  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(437)

我正在尝试使用python3.5和hdfs库从hdfs获取文件的大小。
https://pypi.python.org/pypi/hdfs/

from hdfs.client import Client
if __name__ == '__main__':

    cl = Client("http://hostName:50070")

    print (cl.content("/path/to/file/fileName.txt",False))

我明白了

{'spaceQuota': -1, 'directoryCount': 0, 'spaceConsumed': 103566, 'length': 34522, 'quota': -1, 'fileCount': 1}

所以根据这个消息,文件大小是 103 KB 但当我看着 http://hostName:50070/explorer.html#/path/to/file/ 我看到文件大小是 33.71 KB ! 这怎么可能?有没有其他方法可以在hdfs中获得适当的文件大小?目录的大小如何?

67up9zun

67up9zun1#

实际文件大小为33.71 kb,hdfs上的文件大小为103 kb。hdfs复制因子是3,这意味着hdfs上的文件大小变为实际文件大小的3倍。

o2g1uqev

o2g1uqev2#

你所看到的是正确的。
请注意length参数,它显示的值接近您期望看到的33.71kb。长度在hadoop文档中定义为文件中的字节数。所消耗的空间是占用多少磁盘空间。
这些不一定是一致的,因为文件系统中的块大小和开销(我对hadoop不够熟悉,不知道在您的情况下确切的原因)

相关问题