我正在尝试编译libhdfs(一个允许外部应用程序与hdfs连接的本机共享库)。这是我使用Fuse挂载Hadoop的hdfs的几个步骤之一。
汇编似乎进展顺利,但完成了“BUILD FAILED”以及以下问题汇总 -
commons-logging#commons-logging; 1.0.4:在commons-logging#commons-logging中找不到配置; 1.0.4:'master'。它来自org.apache.hadoop#Hadoop;工作@ btsotbal800 commons-logging
log4j#log4j; 1.2.15:在log4j#log4j中找不到配置; 1.2.15:'master'。它来自org.apache.hadoop#Hadoop;工作@ btsotbal800 log4j
现在,我对此有几个问题,因为我用来做这本书的书并没有详细说明这些事情是什么。
提前感谢您提供的任何见解。
答案 0 :(得分:4)
如果您使用的是cloudera hadoop(cdh3u2),则无需构建保险丝项目。
你可以在目录$ HADOOP_HOME / c ++ / lib
中找到二进制文件(libhdfs.so *)在保险丝安装之前更新“$ HADOOP_HOME / contrib / fuse-dfs / src / fuse_dfs_wrapper.sh”如下
HADOOP_HOME /了contrib /熔断器的DFS / SRC / fuse_dfs_wrapper.sh
#!/bin/bash
for f in ${HADOOP_HOME}/hadoop*.jar ; do
export CLASSPATH=$CLASSPATH:$f
done
for f in ${HADOOP_HOME}/lib/*.jar ; do
export CLASSPATH=$CLASSPATH:$f
done
export PATH=$HADOOP_HOME/contrib/fuse-dfs:$PATH
export LD_LIBRARY_PATH=$HADOOP_HOME/c++/lib:/usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/amd64/server/
fuse_dfs $@
LD_LIBRARY_PATH包含此处的目录列表
“$ HADOOP_HOME / c ++ / lib”包含libhdfs.so和
“/usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/amd64/server/”包含libjvm.so
\# modify /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/amd64/server/
作为您的java_home
使用以下命令安装hdfs
fuse_dfs_wrapper.sh dfs://localhost:9000/ /home/510600/mount1
用于卸载使用以下命令
fusermount -u /home/510600/mount1
我仅在hadoop伪模式下测试了保险丝,而不是在群集模式下