当前位置:网站首页>初探JuiceFS
初探JuiceFS
2022-07-27 14:23:00 【wankunde】
说明
个人理解JuiceFS的定位是一个建立在S3, OSS 等存储系统之上的一个抽象文件系统。因为使用Redis来做文件的元数据管理,所以减少了远程调用 S3, OSS API的开销;内部有对数据的Cache功能,所以当重复访问数据时,速度也会得到明显提升。
JuiceFS作为虚拟文件系统层,底层文件是自己管理的,其定位不是其他文件存储系统的读写Proxy。
Juicefs编译
Juice编译设计到的go,java,maven等组件,而且go的编译还需要在对应的平台上进行编译,才能使用,所以参考大佬的做法,使用基础软件 + Go Docker 镜像的方式进行编译。
首先准备好,编译需要的绿色版Java,Maven以及对应的juicefs代码
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"
tar -zxvf jdk-8u141-linux-x64.tar.gz
/Users/wankun/Applications/jdk1.8.0_141
使用docker镜像编译,注意,golang的镜像版本最高只能用1.15, 使用1.16 会报一些包找不到的错
# 启动docker golang镜像
docker run -it \
-v /Users/wankun/Applications/jdk1.8.0_141:/java8 \
-v /Users/wankun/Applications/maven:/maven \
-v /Users/wankun/.m2:/root/.m2 \
-v /Users/wankun/ws/wankun/juicefs-0.11.0:/root/juicefs \
--env JAVA_HOME=/java8 \
--env PATH=/java8/bin:/maven/bin:/go/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
golang:1.15.2 /bin/bash
# 编译juicefs
export GOPROXY=https://goproxy.io
make
# 编译hadoop SDK
$ cd sdk/java
$ make
启动 Redis 服务来管理JuiceFS元数据
- 20210330 当前redis版本更新也比较快,所以直接使用了redis的latest version
- redis取消IP bind,改为密码连接校验,参考这里
- docker镜像启动后很奇怪,默认的6379端口无法外部连接,所以使用了26379端口对外提供服务
redis.conf 中相关配置更改
appendonly yes
# bind -- 注释掉bind,改为密码校验
requirepass xxxx
将OSS存储挂载为本地目录读写
Juice通过reformat来初始化底层存储系统,然后将该存储系统挂载到本地,就可以通过JuiceFS 的虚拟文件系统来管理文件了。
# 注意 这里bucket参数实际上是 https://[bucket].[endpoint] 格式, 最后一个参数是该bucket下的目录名; redis的连接地址如果需要密码的话,注意把密码补上
./juicefs format \
--storage oss \
--bucket https://[bucket].[endpoint] \
--access-key [ACC_KEY] \
--secret-key [SEC_KEY] \
redis://:{PASSWORD}@{HOST}:26379/0 \
test-wankun
# 挂载juicefs到本地目录
./juicefs mount -d redis://:{PASSWORD}@{HOST}:26379/0 ~/test-wankun
Hadoop 访问 JuiceFS 存储
将前面的hadoop SDK 放到Hadoop的lib目录( /opt/cloudera/parcels/CDH/lib/hadoop/lib/juicefs-hadoop-0.11.0.jar ),然后修改hadoop配置文件,使hadoop支持对juiceFS的访问。
注意: 官方文档中的 juicefs.accesskey 和 juicefs.secretkey 可以无需配置
<xml>
<property>
<name>fs.jfs.impl</name>
<value>io.juicefs.JuiceFileSystem</value>
</property>
<property>
<name>fs.AbstractFileSystem.jfs.impl</name>
<value>io.juicefs.JuiceFS</value>
</property>
<property>
<name>juicefs.meta</name>
<value>redis://{PASSWORD}:{HOST}:{PORT}/{DB}</value>
</property>
<property>
<name>juicefs.cache-dir</name>
<value>/data*/jfs</value>
</property>
<property>
<name>juicefs.cache-size</name>
<value>1024</value>
</property>
<property>
<name>juicefs.access-log</name>
<value>/tmp/juicefs.access.log</value>
</property>
</xml>
参考
边栏推荐
- Unity最简洁的对象池实现
- STM32F10x_ Hardware I2C read / write EEPROM (standard peripheral library version)
- "Sword finger offer" linked list inversion
- Google team launches new transformer to optimize panoramic segmentation scheme CVPR 2022
- Network equipment hard core technology insider router Chapter 17 dpdk and its prequel (II)
- JUC(JMM、Volatile)
- CAN总线的EMC设计方案
- EMC design scheme of CAN bus
- Unity性能优化------DrawCall
- Notice on printing and distributing the Interim Measures for the administration of green manufacturing pilot demonstration of Shenzhen Bureau of industry and information technology
猜你喜欢

Dialog manager Chapter 3: create controls

IJCAI 2022 outstanding papers were published, and 298 Chinese mainland authors won the first place in two items

LeetCode 74. 搜索二维矩阵 二分/medium

Adaptation verification new occupation is coming! Huayun data participated in the preparation of the national vocational skill standard for information system adaptation verifiers

光电隔离电路设计方案(六款基于光耦、AD210AN的光电隔离电路图)
Principle of MOS tube to prevent reverse connection of power supply

华为鸿蒙模拟器去除顶部导航栏方法

Kubernetes CNI classification / operation mechanism

基于stm32的数字示波器设计方案

Leetcode interview question 17.21. water volume double pointer of histogram, monotonic stack /hard
随机推荐
LeetCode 74. 搜索二维矩阵 二分/medium
Huayun data creates a perfect information technology and innovation talent training system to help the high-quality development of information technology and innovation industry
Method of removing top navigation bar in Huawei Hongmeng simulator
Dialog manager Chapter 3: create controls
Leetcode 456.132 mode monotone stack /medium
The design method of integral operation circuit is introduced in detail
Basic usage of kotlin
Leetcode 191. number of 1 bits bit operation /easy
2022-07-27 Daily: IJCAI 2022 outstanding papers were published, and 298 Chinese mainland authors won the first place in two items
Selenium 报错:session not created: This version of ChromeDriver only supports Chrome version 81
网络设备硬核技术内幕 路由器篇 6 汤普金森漫游网络世界(中)
谷歌团队推出新Transformer,优化全景分割方案|CVPR 2022
仪表放大器和运算放大器优缺点对比
Cap theory and base theory
Unity's simplest object pool implementation
分布式锁
STM32F10x_硬件I2C读写EEPROM(标准外设库版本)
Network equipment hard core technology insider router Chapter 3 Jia Baoyu sleepwalking in Taixu Fantasy (middle)
Unity最简洁的对象池实现
MySQL 面试40连问,面试官你再问下去我可要翻脸了