使用Fuse-DFS挂载文件存储 HDFS-后端存储ceph

server/2025/3/4 16:10:34/

1. 编译环境准备

yum install cmake3
ln -s /usr/bin/cmake3 /usr/bin/cmake
yum install gcc-c++

安装挂载依赖

yum -y install fuse fuse-devel fuse-libs

执行以下命令,载入FUSE模块

modprobe fuse

2. 下载源码包

hadoop-3.3.4-src.tar.gz解压后执行以下命令
打开fuse_options.c文件,并将#define NEW_HDFS_URI_LOCATION "hdfs://"修改为#define NEW_HDFS_URI_LOCATION “ceph://”

cd hadoop-3.3.4-src
vi hadoop-hdfs-project/hadoop-hdfs-native-client/src/main/native/fuse-dfs/fuse_options.c

修改maven-surefire-plugin依赖版本号

vi hadoop-project/pom.xml
<maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>

3.编译Hadoop源码
编译hadoop-hdfs-project模块下的hadoop-hdfs-native-client子模块

mvn clean package -pl hadoop-hdfs-project/hadoop-hdfs-native-client -Pnative -DskipTests -Drequire.fuse=true
编译后的fuse_dfs 拷贝至客户端${HADOOP_HOME}/bin
hadoop-3.3.4-src/hadoop-hdfs-project/hadoop-hdfs-native-client/target/main/native/fuse-dfs/ fuse_dfs  拷贝至客户端${HADOOP_HOME}/bin

打开配置文件,添加如下内容

vi ~/.bash_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 ~/.bash_profile ~/.bashrc

4.挂载ceph目录

mkdir /mnt/dfs_mount
fuse_dfs ceph://192.168.252.12:6789/ /mnt/dfs_mount

挂载成功后,您可以在本地访问文件存储 HDFS 版文件系统,执行读取或写入操作。
执行以下命令在已映射文件存储 HDFS 版文件系统的本地目录中创建文件,创建成功后,您可以在文件存储 HDFS 版文件系统上查看到该文件。

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

可选:卸载挂载目录

fusermount -u /mnt/dfs_mount

http://www.ppmy.cn/server/172369.html

相关文章

Freertos卡在while( uxDeletedTasksWaitingCleanUp > ( UBaseType_t ) 0U )

今天用CubeMX创建freertos点了一个灯让他闪&#xff0c;他竟然不闪&#xff0c;我giao&#xff0c;然后调试发现他一直卡在while( uxDeletedTasksWaitingCleanUp > ( UBaseType_t ) 0U )这句话&#xff0c;后来搜了好多都不行&#xff0c;最后&#xff0c;改了这个 就ok了

重学SpringBoot3-Spring Retry实践

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 期待您的点赞??收藏评论 重学SpringBoot3-Spring Retry实践 1. 简介2. 环境准备3. 使用方式 3.1 注解方式 基础使用自定义重试策略失败恢复机制重试和失败恢复效果注意事项 3.2 编程式使用3.3 监听重试过程 监…

安卓基础组件Looper - 02 native层面的剖析

文章目录 native使用使用总结创建Looper构造函数创建(不推荐)使用举例源代码 Looper::prepare 获取Looper可忽略初始化Looper主动休眠 pollAll主动唤醒 wake 发送消息 sendMessage轮询消息 native使用 Android Native Looper 机制 - 掘金 (juejin.cn) /system/core/libutils/…

分布式中间件:Redis介绍

目录 Redis 概述 Redis 的特点 高性能 丰富的数据结构 持久化 分布式特性 简单易用 Redis 的数据结构 字符串&#xff08;String&#xff09; 哈希&#xff08;Hash&#xff09; 列表&#xff08;List&#xff09; 集合&#xff08;Set&#xff09; 有序集合&…

基于Android 的 PID 控制巡线机器人

在上次的博文Arduino PID 控制教程中给大家介绍了PID的原理&#xff0c;这里我将构建一个具有 PID 控制的巡线机器人。我们还将使用 Android 设备轻松设置主要控制参数&#xff0c;以便更好、更快速地进行调整。 步骤 1&#xff1a;物料清单 所需材料清单&#xff1a; 车体&…

AVM 环视拼接 鱼眼相机

https://zhuanlan.zhihu.com/p/651306620 AVM 环视拼接方法介绍 从内外参推导IPM变换方程及代码实现&#xff08;生成AVM环视拼接图&#xff09;_avm拼接-CSDN博客 经典文献阅读之--Extrinsic Self-calibration of the Surround-view System: A Weakly... (环视系统的外参自…

Linux端口映射

1. 方法一使用firewalld 1.1 开启伪装IP firewall-cmd --permanent --add-masquerade 1.2 配置端口转发&#xff0c;将到达本机的12345端口的访问转发到另一台服务器的22端口 firewall-cmd --permanent --add-forward-portport12345:prototcp:toaddr192.168.172.131:toport…

Git强制覆盖分支:将任意分支完全恢复为main分支内容

Git强制覆盖分支&#xff1a;将任意分支完全恢复为main分支内容 场景背景完整操作步骤一、前置准备二、操作流程步骤 1&#xff1a;更新本地 main 分支步骤 2&#xff1a;强制重置目标分支步骤 3&#xff1a;强制推送至远程仓库 三、操作示意图 关键风险提示&#xff08;必读&a…