Hadoop:如何编译libhdfs.so?

时间:2011-11-10 20:18:09

标签: c++ ant hadoop

我们正在通过Hadoop C / C ++ API(libhdfs.so)使用Hadoop。我们使用最新的稳定Hadoop版本,即0.20.203。不幸的是,没有明确的(和最新的)指令来构建libhdfs.so。当我尝试使用ant构建Hadoop时,它会失败,并且不会构建libhdfs.so库。

尝试使用以下内容:

ant -Dcompile.c++=true -Dlibhdfs=true compile-c++-libhdfs

似乎在build.xml的第1761行失败了。在这一行有以下xml:

<exec executable="${c++.libhdfs.src}/configure" dir="${build.c++.libhdfs}"
          failonerror="yes">

有没有人有关于在Ubuntu 64bit 10.10上构建libhdfs.so的说明?

2 个答案:

答案 0 :(得分:1)

我找到了解决问题的方法。它失败了,因为配置已经执行了,我需要在构建库之前在“src / c ++ / libhdfs”目录中执行“make dist clean”。现在它按预期工作:

ant -Dcompile.c++=true -Dlibhdfs=true compile-c++-libhdfs

答案 1 :(得分:0)

如果您正在使用hadoop-2.7.2,您可以在hadoop / hadoop-hdfs-project / hadoop-hdfs / src下使用cmake:

cmake -DJAVA_HOME=<your_jdk_path> -DGENERATED_JAVAH=<your_jdk_path> -DJAVA_JVM_LIBRARY=<your_jdk_path/jre/lib/amd64/server/libjvm.so> -DJAVA_INCLUDE_PATH=<your_jdk_path/include> -DJAVA_INCLUDE_PATH=<your_jdk_path/include/linux>

然后它会为你生成makefile。然后你做: make