Fuse-dfs能夠將HDFS文件系統mount到本地,用於執行一些ls等基本的系統操做命令。Fuse-dfs位於$HADOOP_HOME/src/contrib/fuse-dfs目錄下,須要用戶進行編譯。現將其編譯步驟總結以下: c++
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) app
2.確保機器上安裝了gcc軟件 ui
3.下載安裝Apache ant並設置ANT_HOME變量 spa
4.在$HADOOP_HOME下建立build目錄,將$HADOOP_HOME/c++拷貝到$HADOOP_HOME/build(備註,其最終格式爲$HADOOP_HOME/build/c++ 操作系統
5.在$HADOOP_HOME目錄下執行命令: server
ln -s c++/Linux-$OS_ARCH-$OS_BIT/lib build/libhdfs 編譯
6.設置一些環境變量 test
export OS_ARCH=amd64 變量
export OS_BIT=64 gcc
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