我发现有人在谈论libhdfs在2010年左右不支持读/写gzip文件。

我下载了最新的hadoop-2.0.4并阅读了hdfs.h。也没有压缩参数。

现在我想知道它是否支持现在读取压缩文件?

如果没有,我该如何为libhdfs制作补丁并使其起作用?

提前致谢。

最好的祝福
海地

最佳答案

如我所知, libhdfs 仅使用 JNI 来访问HDFS。如果您熟悉HDFS Java API,则 libhdfs 只是org.apache.hadoop.fs.FSDataInputStream的包装。因此,它现在无法直接读取压缩文件。

我想您想通过C / C++访问HDFS中的文件。如果是这样,则可以使用 libhdfs 读取原始文件,并使用zip / unzip C / C++库解压缩内容。压缩文件格式相同。例如,如果文件由lzo压缩,则可以使用lzo库将其解压缩。

但是,如果文件是序列文件,那么您可能需要使用JNI来访问它们,因为它们是Hadoop专用文件。我以前看过Impala做过类似的工作。但这不是开箱即用的。

关于api - libhdfs c/c++ API是否支持读/写压缩文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16891274/

10-11 09:18
查看更多