DFS-Fuse 挂载方法
1、 首先从http://fuse.sourceforge.net/ 下载fuse版本,我使用的版本是2.8.5
2、 解压fuse
tar -zxf fuse-2.8.5.tar.gz
3、 安装
cd fuse-2.8.5
/configure --prefix=/usr
make
make install
/sbin/ldconfig 更新一下动态库。
至此,fuse安装完成,可以从fuse官网将example试一下,确定是否安装成功
4、 编译dfs-fuse
进入$HADOOP_HOME: cd $HADOOP_HOME
编译libhdfs: ant compile-c++-libhdfs -Dlibhdfs=1
打包: ant package
编译dfs-fuse: ant compile-contrib -Dlibhdfs=1 -Dfusedfs=1
成功后会在$HADOOP_HOME/build/contrib/fuse-dfs/ 产生一个脚本和一个二进制文件,有用的是fuse_dfs_wrapper.sh脚本
出现的问题:
dfs-fuse时候有可能提示找不到libhdfs.so 将$HADOOP_HOME/c++/Linux-amd64-64/lib/* 全部拷贝到$HADOOP_HOME/build/libhdfs下面。
编译dfs-fuse会提示找不到jvm,一般是没有找到jvm的路径, export OS_ARCH=amd64(对于64位机器),或者检查LD_LIBRARY_PATH变量是否设置正确
5、 挂载
在$HADOOP_HOME/build/contrib/fuse-dfs/ 执行fuse_dfs_wrapper.sh dfs://namenode:8020 /hdfs
其中 dfs后面部分对应的是$HADOOP_HOME/conf/core-site.xml 中fs.default.name选项,后面的参数是要挂架到的目录。
然后就可以对hdfs以普通文件系统的方式进行操作了。