在Hadoop客户端上安装依赖并载入FUSE模块。
执行以下命令,安装依赖。
yum -y install fuse fuse-devel fuse-libs执行以下命令,载入FUSE模块。
modprobe fuse解压Hadoop源码包。
tar -zxvf hadoop-2.8.5-src.tar.gz修改代码并编译。
使用Fuse-DFS挂载文件存储 HDFS 版到本地文件系统时,系统会将挂载点地址的前缀dfs://修改为hdfs:// ,导致挂载失败,因此需要修改代码重新编译,操作如下。
执行以下命令,打开fuse_options.c文件,并将#define NEW_HDFS_URI_LOCATION "hdfs://"修改为#define NEW_HDFS_URI_LOCATION "dfs://"。
vim hadoop-2.8.5-src/hadoop-hdfs-project/hadoop-hdfs-native-client/src/main/native/fuse-dfs/fuse_options.c
执行以下命令编译Hadoop源码中hadoop-hdfs-project模块下的hadoop-hdfs-native-client子模块。
cd hadoop-2.8.5-src/
mvn clean package -pl hadoop-hdfs-project/hadoop-hdfs-native-client -Pnative -DskipTests重要 不同的Hadoop版本中子模块的hadoop-hdfs-native-client命名及位置可能不同 。在Hadoop 2.7.x版本中该模块包含在hadoop-hdfs-project/hadoop-hdfs子模块中,Hadoop 2.8.x及之后的版本都在模块hadoop-hdfs-project下。
配置Fuse-DFS。
将编译出来的Fuse-DFS包拷贝到Hadoop客户端的bin目录下。示例命令如下:
cp hadoop-2.8.5-src/hadoop-hdfs-project/hadoop-hdfs-native-client/target/main/native/fuse-dfs/fuse_dfs ${HADOOP_HOME}/bin为Hadoop客户端配置环境变量。
执行vim /etc/profile命令,打开配置文件,添加如下内容。
export OS_ARCH=amd64
export LD_LIBRARY_PATH=${JAVA_HOME}/jre/lib/${OS_ARCH}/server:${HADOOP_HOME}/lib/native
export CLASSPATH=$CLASSPATH:`${HADOOP_HOME}/bin/hadoop classpath --glob`执行以下命令使配置生效。
source /etc/profile