shenhongdb 2013-10-17
介绍
fuse-dfs是Hadoop项目自带的一个功能模块。主要实现把dfs上的数据映射至本地指定mount点。由于现存的软件无法直接使用hdfs上的数据,所以此时可以借助fuse来实现本地文件系统的映射。
fuse-dfs依赖的相关库有
1:fuse.ko
一般linux版本都会自带这个内核模块,如果没有,请编译此模块。通过sudo lsmod|grep fuse判断fuse是否被自动加载,可尝试通过insmod或modprobe命令加载此模块。
2:fuse(http://fuse.sourceforge.net/)
fuse库需要自行编译安装(详细编译方式可参照fuse-2.8.4/README)
$./configure
$make
$sudo make install
编译完后的fuse库默认安装至/usr/local/lib目录里。请修改环境变量LD_LIBRARY_PATH,添加目录/usr/local/lib。
3:libhdfs
hadoop工程自带的模块。编译方式为:
$ant compile -Dcompile.c++=true -Dlibhdfs=true
注:编译过程hadoop项目会通过网络下载依赖的库。如果系统不能联网,可以修改 hadoop 项目目录里的build.xml文件,有多个需要修改的地方,修改属性ivy_repo_url 的值为
<property name="ivy_repo_url" value="file:// ${user.home} /install/ivy-2.0.0-rc2.jar"/>
本地放置库ivy-2.0.0-rc2.jar 的file路径按实际修改。另外其它依赖的库也可以直接把已下载好的.ivy2文件夹放至home目录下。
4:fusedfs
$ln -s $HADOOP_HOME/build/c++/Linux-amd64-64/lib $HADOOP_HOME/build/libhdfs
$export LD_LIBRARY_PATH=
/usr/lib:/usr/local/lib: $HADOOP_HOME/build/c++/Linux-amd64-64/lib:$JAVA_HOME/jre/lib/amd64/server
$ant compile-contrib -Dlibhdfs=1 -Dfusedfs=1
注:Linux-amd64-64是64位系统libhdfs编译后生成的目录,amd64是64位系统java依赖库目录,要根据实际情况修改。LD_LIBRARY_PATH环境变量的修改应记录到登录环境变量中。
启动dfs-fuse进程
启动命令为
cd $HADOOP_HOME/build/contrib/fuse-dfs
./fuse_dfs_wrapper.sh dfs://master-host:9000 $HOME/fuse-dfs
其中master-host请修改为hadoop对应master节点主机名
保证$HOME目录下有空文件夹fuse-dfs
相关阅读: