我们正在通过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的说明?
答案 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