Hadoop 2.7 重新编译 64 位本地库下载,解决 Unable to load native-hadoop library for your platform

如果你使用64位Centos,64位 hadoop 2.7 ,那么肯定遇到了这个警告信息:

1
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

那么如何解决呢,我亲自试了如下方法,成功解决了问题。

PS:如果你很懒,可以直接下载我编译好的native文件夹,hadoop2.7 版本的,不知道其他版本是否适用。下载:native.zip

如果你想亲自编译,参考”大鹏鸟”的原创PDF 文章: Hadoop2.4.0重编译64位本地库.pdf

另外有几点需要注意:

  • PROTOBUF 一定要用 2.5.0 版本的,否则会编译失败,可以 点此下载
  • 编译好之后替换native下的所有文件
  • 添加Debug信息:export HADOOP_ROOT_LOGGER=DEBUG,console</span>
  • 修改 /etc/profile,增加以下内容:
1
2
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib/native
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"

然后就可以愉快的和小象玩耍啦!
hadoop-logo