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

devtools/2025/3/1 11:57:56/

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/devtools/163610.html

相关文章

Transformer 代码剖析3 - 参数配置 (pytorch实现)

一、硬件环境配置模块 参考&#xff1a;项目代码 原代码实现 """ author : Hyunwoong when : 2019-10-22 homepage : https://github.com/gusdnd852 """ import torch # GPU device setting device torch.device("cuda:0" if tor…

网络变压器的主要电性参数与测试方法(2)

Hqst盈盛&#xff08;华强盛&#xff09;电子导读&#xff1a;网络变压器的主要电性参数与测试方法&#xff08;2&#xff09;.. 今天我们继续来看看网络变压器的2个主要电性参数与它的测试方法&#xff1a; 1. 线圈间分布电容Cp:线圈间杂散静电容 测试条件:100KHz/0.1…

嵌入式开发:傅里叶变换(4):在 STM32上面实现FFT(基于STM32L071KZT6 HAL库+DSP库)

目录 步骤 1&#xff1a;准备工作 步骤 2&#xff1a;创建 Keil 项目&#xff0c;并配置工程 步骤 3&#xff1a;在MDK工程上添加 CMSIS-DSP 库 步骤 5&#xff1a;编写代码 步骤 6&#xff1a;配置时钟和优化 步骤 7&#xff1a;调试与验证 步骤 8&#xff1a;优化和调…

SV基础(二):数据类型

文章目录 **1. Verilog 的 4 值数据类型****硬件建模的必要性****2. Testbench 中的问题****Verilog 的局限性****3. SystemVerilog 的 2 值数据类型****示例:明确的 2 值操作****4. 何时使用 2 值 vs 4 值****5. 关键优势****6. 注意事项**7. 有符号数与无符号数详解**无符号…

基于STM32的智能教室管理系统

1. 引言 传统教室管理依赖人工操作&#xff0c;存在设备控制分散、能源浪费严重、环境舒适度低等问题。本文设计了一款基于STM32的智能教室管理系统&#xff0c;通过多环境参数监测、设备智能联动与数据驱动优化&#xff0c;实现教室设备集中管控、能耗精细化管理与学习环境自…

java 实现xxl-job定时任务自动注册到调度中心

xxl-job 自动注册(执行器和任务) 前言 xxl-job是一个功能强大、简单易用、高可用且可扩展性强的分布式定时任务框架/分布式任务调度平台。它适用于各种需要定时任务调度的场景,并可根据业务需求进行灵活配置和扩展。 xxl-job简介 xxl-job是一个开源的分布式定时任务框架,…

java面试题(一年工作经验)的心得

看面试题 正常人第一步肯定都会看面试题&#xff0c;我也不例外&#xff0c;在看的过程中&#xff0c;我发现有些文章写的不错&#xff0c;对我帮助不小值得推荐&#xff0c;如下&#xff1a; Java面试题全集&#xff08;上&#xff09; 很多基础的东西&#xff0c;建议先看。…

FreeRTOS基础知识学习指南

以下内容涵盖FreeRTOS的核心概念&#xff0c;包括任务管理、调度、中断、互斥量与信号量、队列和内存管理等主题。每部分提供基本原理说明&#xff0c;并辅以简要的代码示例帮助理解。 1. 任务管理 (Task Management) 任务的创建与删除&#xff1a;FreeRTOS中的任务相当于独立…