使用 Fuse-DFS 挂载文件存储HDFS版

一 目的

本文档主要介绍如何使用 Fuse-DFS 工具实现文件存储HDFS版在本地文件系统的映射。Fuse-DFS 工具在文件存储HDFS版上使用时需要额外的配置,详细操作步骤请参见章节:配置 Fuse-DFS

二 准备工作

  1. 开通文件存储HDFS版服务并创建文件系统实例和挂载点,详情请参见:HDFS快速入门
  2. 在 Hadoop 集群所有节点上安装JDK。版本不能低于1.8。
  3. 建议您使用的 Hadoop 版本不低于2.7.2,本文档中使用的 Hadoop 版本为 Apache Hadoop 2.8.5。
  4. 在 Hadoop 集群中配置好文件存储HDFS版实例,详情请参见:挂载文件系统。
  5. 下载与 Hadoop 集群版本相同的 Hadoop 源码包。下载地址:官方链接

三 配置 Fuse-DFS

Fuse-DFS 是 Hadoop 项目自带的一个功能模块,提供了使用 FUSE(用户空间中的文件系统)在 UNIX 文件系统上映射 HDFS 的功能,在官方提供的 Hadoop 预编译版本中不包含 Fuse-DFS的功能模块,如需使用该功能需要手动编译该功能模块并添加到 Hadoop 客户端中。Fuse-DFS 官方介绍文档请参见:MountableHDFS


  1. 在 Hadoop 客户端上安装依赖并载入 FUSE 模块

执行如下命令

yum -y install fuse fuse-devel fuse-libs
modprobe fuse
  1. 解压 Hadoop 源码包
tar -zxf hadoop-2.8.5-src.tar.gz
  1. 修改代码并编译

在使用 fuse-dfs 挂载文件存储HDFS版到本地文件系统时,会将挂载点地址的前缀 "dfs://" 修改为 "hdfs://" ,导致挂载失败,因此需要修改代码重新编译,操作如下。

vim hadoop-2.8.5-src/hadoop-hdfs-project/hadoop-hdfs-native-client/src/main/native/fuse-dfs/fuse_options.c
#define NEW_HDFS_URI_LOCATION "hdfs://" 修改为 #define NEW_HDFS_URI_LOCATION "dfs://"

使用 Fuse-DFS 挂载文件存储HDFS版

执行以下命令仅编译 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 下。

  1. 配置 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
  1. 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`
  1. 刷新环境变量
source /etc/profile

四 使用 Fuse-DFS

  1. 创建目录
mkdir /mnt/dfs_mount
  1. 挂载文件存储HDFS版到本地目录
fuse_dfs dfs://f-xxxxx.cn-xxx.dfs.aliyuncs.com:10290/ /mnt/dfs_mount

其中,dfs://f-xxxxx.cn-xxx.dfs.aliyuncs.com:10290 为文件存储HDFS版的挂载点,请根据您的实际情况替换。

查看映射到本地的目录

使用 Fuse-DFS 挂载文件存储HDFS版

  1. 验证
cd /mnt/dfs_mount
mkdir fuse_test
echo "hello dfs" > fuse_test/fuse.txt

在文件存储HDFS版上查看创建的文件 fuse.txt

使用 Fuse-DFS 挂载文件存储HDFS版


  1. 卸载挂载目录
fusermount -u /mnt/dfs_mount

注意事项:客户端重启之后需要您重新挂载文件存储HDFS版到本地,建议您配置开机自动挂载。


了解更多关于文件存储HDFS版的产品信息,欢迎访问https://www.aliyun.com/product/alidfs

如果您对文件存储HDFS版有任何问题,欢迎钉钉扫描以下二维码加入文件存储HDFS版技术交流群。

使用 Fuse-DFS 挂载文件存储HDFS版

上一篇:智能终端行业游戏规则更新?比硬件是二流,比生态才是一流!


下一篇:Python 最强编辑器详细使用指南!(二)