Python HDFS 给出的文件大小不正确
Python HDFS gives incorrect file size
我正在尝试使用 python 3.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 中获取文件的正确大小吗?一个目录的大小如何?
您所看到的是正确的。
注意长度参数,它显示的值接近您期望看到的 33.71KB。长度在 hadoop 文档中定义为文件中的字节数。 spaceConsumed 是占用了多少磁盘space。
这些不一定一致,因为文件系统中的块大小和开销(我对 hadoop 不够熟悉,无法知道您的情况的确切原因)
实际文件大小为 33.71 KB,hdfs 上的大小为 103 KB。
HDFS 复制因子为 3,这意味着 hdfs 上的文件大小变为 3 X actual_file_size。
我正在尝试使用 python 3.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 中获取文件的正确大小吗?一个目录的大小如何?
您所看到的是正确的。
注意长度参数,它显示的值接近您期望看到的 33.71KB。长度在 hadoop 文档中定义为文件中的字节数。 spaceConsumed 是占用了多少磁盘space。
这些不一定一致,因为文件系统中的块大小和开销(我对 hadoop 不够熟悉,无法知道您的情况的确切原因)
实际文件大小为 33.71 KB,hdfs 上的大小为 103 KB。 HDFS 复制因子为 3,这意味着 hdfs 上的文件大小变为 3 X actual_file_size。