Java 设置libhdfs(对于c+;+;)还需要做些什么?

Java 设置libhdfs(对于c+;+;)还需要做些什么?,java,c++,hadoop,Java,C++,Hadoop,我是hadoop新手,安装了hadoop。Datanode、Namenode等即将出现,一切都很顺利。我必须单独下载libhdfs吗?还是它在软件包中提供?我所能看到的就是Java的东西。非常感谢 有一个例子:(虽然有些信息,众所周知的是如何制作这个例子,已经过时了) 为了编译它,您需要包含$HADOOP_HOME/include目录并链接到$HADOOP_HOME/lib/native/libhdfs.so(如果您在Linux上)。此外,您还需要确保在运行示例时,类路径包含所有hadoop库。

我是hadoop新手,安装了hadoop。Datanode、Namenode等即将出现,一切都很顺利。我必须单独下载libhdfs吗?还是它在软件包中提供?我所能看到的就是Java的东西。非常感谢

有一个例子:(虽然有些信息,众所周知的是如何制作这个例子,已经过时了)

为了编译它,您需要包含$HADOOP_HOME/include目录并链接到$HADOOP_HOME/lib/native/libhdfs.so(如果您在Linux上)。此外,您还需要确保在运行示例时,类路径包含所有hadoop库。其中一个技巧是:

for file in `hadoop classpath | tr ':' ' ' | sort | uniq`
do
  export CLASSPATH=$CLASSPATH:$file
done
注意事项:

0)最新的linux Hadoop发行版(2.4.1)包含32位共享库,这让64位系统感到不满。为了使此示例在64位系统上运行,必须提供本机libhdfs.so库。例如,可以通过从源代码下载Hadoop并自己构建一个发行版来实现(这里有一个有用的介绍:)

1) 在Ubuntu上,您必须在调用libhdfs之前自己(通过JNI)实例化jvm,因为libhdfs代码错误地为正在运行的jvm标识了YamVM,因此不会实例化


2) 在RedHat上,如果datanode和namenode重新启动后没有使用hdfs,我看到这个示例将挂起。

嘿,你对此有什么想法吗