java如何为Hadoop 2构建本机库
我已经在64位linux上安装了一个运行Hadoop 2.1测试版的集群。但是,每次运行hadoop命令工具时,都会弹出一条警告消息:
WARN util.NativeCodeLoader: Unable to load native-hadoop library for
your platform...
using builtin-java classes where applicable
然后我发现它缺少用于64位linux的本机库。官方的hadoop 2.1 tarball仅在/lib/native
文件夹中提供32位linux的本机库
我读了hadoop本机库的official document,指南上说:
Once you installed the prerequisite packages use the standard hadoop
build.xml file and pass along the compile.native flag (set to true) to
build the native hadoop library:
$ant -Dcompile.native=true <target>
我搜索hadoop文件夹,没有名为build.xml
的文件。我没有足够的java编程和hadoop知识,所以我想知道如何为64位linux系统编译本机库?谢谢
# 1 楼答案
构建系统已更改为maven。您可以在此处找到有关构建的说明: https://svn.apache.org/repos/asf/hadoop/common/trunk/BUILDING.txt
具体而言,您可以运行以下操作: mvn包-Pdist、本机、文档-DSKIPTEST-Dtar
(安装protobuf 2.5.0后)
# 2 楼答案
下载并安装protobuf
安装cmake
使用maven构建本机库
如果有任何错误,请使用
-e -X
开关运行maven,该开关将输出详细的调试信息。查看错误是什么,并进行适当的更改例如,我得到了以下错误:
表示您的protobuf版本不正确
未安装cmake
不知道是什么问题。只需将
-Dmaven.javadoc.skip=true
标志传递给maven,即可跳过javadoc生成