libhdfs は 2010 年頃に gzip ファイルの読み取り/書き込みをサポートしていないと誰かが話しているのを見つけました。
最新の hadoop-2.0.4 をダウンロードし、hdfs.h を読み取ります。圧縮引数もありません。
今、圧縮ファイルの読み取りをサポートしているかどうか疑問に思っていますか?
そうでない場合、どうすれば libhdfs のパッチを作成して動作させることができますか?
前もって感謝します。
よろしく ハイチ
返信いただきありがとうございます。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;