如何将自定义hadoop本机编解码器编译为libhadoop.so?

时间:2012-04-24 09:45:57

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

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

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

您无需将其编译为libhadoop.so:

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

作为参考,您可以按照Google Snappy编解码器的实施和配置说明进行操作: