【问题标题】:How can I compile custom hadoop native codec to libhadoop.so?如何将自定义 hadoop 本机编解码器编译为 libhadoop.so?
【发布时间】:2012-04-24 09:45:56
【问题描述】:

我已经编写了一个原生 hadoop 压缩编解码器。为了让它与 hadoop 一起工作,我需要将本机(C 代码)编译为 libhadoop.so。

我怎样才能做到这一点?

【问题讨论】:

    标签: hadoop compression native hadoop-streaming hadoop-plugins


    【解决方案1】:

    你不需要把它编译成 libhadoop.so:

    • 编译您自己的 .so 并分发到您的集群节点(到与当前 libhadoop.so 相同的目录中
    • 我假设您还编写了自己的 CompressionCodec(类似于 GzipCodec) - 向此代码添加一个静态块,尝试使用 System.loadLibrary("mylibrary"); 加载库(对于名为 libmylibrary.so 的库)。
    • 修改您的集群配置,将您的新压缩编解码器类包含在已注册的编解码器列表中(修改 io.compression.codecs 配置属性):
    • 重新启动任务跟踪器

    作为参考,您可以遵循 Google Snappy 编解码器的实现和配置说明:

    【讨论】:

    • 谢谢,这确实是一个不错的选择,我决定使用它。但我遇到了其他问题,我的编解码器加载 liblzma.so 文件。但是当我用 apt- 安装这个 lzma 库时获取安装 .. 大小为 0 的 liblzma.so 已创建,我的编解码器无法加载它...
    • 你试过去掉重新安装,还是从源安装?
    • 已尝试重新安装但没有运气...不知道从源安装...请告诉我该怎么做?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2012-03-15
    • 2020-06-27
    • 2013-11-06
    相关资源
    最近更新 更多