1

libhdfs は 2010 年頃に gzip ファイルの読み取り/書き込みをサポートしていないと誰かが話しているのを見つけました。

最新の hadoop-2.0.4 をダウンロードし、hdfs.h を読み取ります。圧縮引数もありません。

今、圧縮ファイルの読み取りをサポートしているかどうか疑問に思っていますか?

そうでない場合、どうすれば libhdfs のパッチを作成して動作させることができますか?

前もって感謝します。

よろしく ハイチ

4

2 に答える 2

0

返信いただきありがとうございます。libhdfs を使用して raw ファイルを読み取り、zlib を使用してコンテンツを膨張させます。これは機能します。ファイルは gzip を使用しました。このようなコードを使用しました。

z_stream gzip_stream;

gzip_stream.zalloc = (alloc_func)0;
gzip_stream.zfree = (free_func)0;
gzip_stream.opaque = (voidpf)0;

gzip_stream.next_in  = buf;
gzip_stream.avail_in = readlen;
gzip_stream.next_out = buf1;
gzip_stream.avail_out = 4096 * 4096;

ret = inflateInit2(&gzip_stream, 16 + MAX_WBITS);
if (ret != Z_OK) {
    printf("deflate init error\n");
}   
ret = inflate(&gzip_stream, Z_NO_FLUSH);
ret = inflateEnd(&gzip_stream);
printf("the buf \n%s\n", buf1);

return buf;
于 2013-06-04T07:08:06.323 に答える