IvanXing 2013-10-17
Fuse-dfs可以将HDFS文件系统mount到本地,用于执行一些ls等基本的系统操作命令。Fuse-dfs位于$Hadoop_HOME/src/contrib/fuse-dfs目录下,需要用户进行编译。现将其编译步骤总结如下:
1.安装autoconf(autoconf-latest.tar.gz)、automake(automake-1.13.4.tar.gz)、libtool(libtool-2.4.tar.gz)、m4(m4-1.4.17.tar.gz)、fuse(fuse-2.9.3.tar.gz)
2.确保机器上安装了gcc软件
3.下载安装Apache ant并设置ANT_HOME变量
4.在$HADOOP_HOME下创建build目录,将$HADOOP_HOME/c++拷贝到$HADOOP_HOME/build(备注,其最终格式为$HADOOP_HOME/build/c++
5.在$HADOOP_HOME目录下执行命令:
ln -s c++/Linux-$OS_ARCH-$OS_BIT/lib build/libhdfs
6.设置一些环境变量
export OS_ARCH=amd64
export OS_BIT=64
export LD_LIBRARY_PATH=/usr/lib:/usr/local/lib:$HADOOP_HOME/build/c++/Linux-amd64-64/lib:$JAVA_HOME/jre/lib/amd64/server
(备注,如果是32位系统需要做相应的修改)
7.如果在断网状态下,需要在本地建立ivy库并准备相应的依赖包并修改ivy配置文件。
8.在$HADOOP_HOME目录下执行下面两条命令:
ant compile-c++-libhdfs -Dlibhdfs=1
ant compile-contrib -Dlibhdfs=1 -Dfusedfs=1
9.如果编译成功会在$HADOOP_HOME/build/contrib下生成fuse-dfs目录并产生一些文件:
10.将$HADOOP_HOME/c++中的本地库,根据操作系统是32还是64,将相应的文件拷贝到/usr/lib或者/usr/lib64下。
11.给文件fuse_dfs_wrapper.sh赋予可执行权限
12.创建一个目录例如/mnt/dfs,并将HDFS挂载到该目录
./fuse_dfs_wrapper.sh dfs://localhost:8020/ /mnt/dfs(注意此时的HDFS文件系统必须以dfs://开头)
如果出现下面的提示信息,不用担心,不影响使用
fuse-dfs didn’t recognize /mnt/dfs,-2
相关阅读: