2016-03-28 7 views
1

私はpython 3.5とhdfsライブラリを使ってhdfsからファイルのサイズを取得しようとしています。Python 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)) 

私は、このメッセージに従って、ファイルサイズは103 KB

ですが、私はhttp://hostName:50070/explorer.html#/path/to/file/

を見たときに私がいることがわかり

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

を取得ファイルサイズはです!これはどのように可能ですか? hdfsでファイルの適切なサイズを取得する別の方法はありますか?ディレクトリのサイズはどうですか?

答えて

1

あなたが見ているものは正しいです。

lengthパラメータは、表示すると予想される33.71KBに近い値を示しています。 Lengthは、ファイル内のバイト数としてhadoop docsで定義されています。 spaceConsumedは、どれくらいのディスクスペースが占有されるかです。

これらは、必ずしも実際のファイルサイズは33.71である

1

(私はあなたのケースでは、正確な理由を知っているのHadoopとの十分慣れていないんだ)ので、ファイルシステムのブロックサイズとオーバーヘッドのようなもので、同意しませんhdfsのKBとサイズは103 KBです。 HDFSレプリケーションファクタは3です。これは、hdfsのファイルサイズが3 X actual_file_sizeになったことを意味します。

関連する問題