Fluid + JindoFS 对海量小文件的训练加速 | 学习笔记

简介: 快速学习Fluid + JindoFS 对海量小文件的训练加速。

开发者学堂课程【数据湖 JindoFS + OSS 实操干货36讲Fluid + JindoFS 对海量小文件的训练加速】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/833/detail/13978


Fluid + JindoFS 对海量小文件的训练加速

 

内容介绍

一、海量小文件难题

二、Fluid JindoRuntime 小文件优化

三、使用JindoRuntime 加速小文件

四、演示

 

一、海量小文件难题

现状:AI训练场景经常需要处理海量小文件

1.HadoopHDFS

RPC 频繁,NameNode 压力大

●延时高          

2.S3 OSS:延时高;高频访问稳定性。

3.对缓存系统的诉求

➢低延时,高QPS

➢ 稳定可靠的访问性能

➢能够支撑海量文件数


二、Fluid JindoRuntime 小文件优化

(1)高效的元数据缓存

➢基于 KV-Store 的元数据组织形式,可支持海量文件数,并且不会占用过多内存资源

➢高效的元数据查询,并且通过热点缓存进一步加速点查性能

➢元数据服务( Namespace Service) 能够提供低延时、高 QPS 的访问性能

Fuse 客户端缓存

(2)高效的数据组织及索引

➢针对小文件数据块实现高性能磁盘存储及索引机制

➢一致性哈希实现数据块的分布式缓存索引,缩短小文件读取的链路

 

三、使用 JindoRuntime 加速小文件

JindoRuntime加速小文件基本步骤:

下裁并安装Fluid :

https://github.com/aliyun/alibabacloud-

jindodata/blob/master/docs/jindo _fluid/jindo _fluid_ jindofs_ hdfs_ introduce.md

➢创建 Dataset

➢创建 JindoRuntime

➢缓存预加载 DataLoad

➢执行 AI 训练作业

小文件加速效果

《速度提升18!微博海量深度学习模型训练效率跃升的秘密》https://www.infoq.cn/article/FClx4Cco6b1jomi6UZSy

相比于 HDFS 接口

14卡可以得到5倍的加速    

28卡可以得到9倍的加速

312卡可以得到18倍的加速

模拟训练总时长由原来的389小时(16 )缩短到了16小时.

 

四、演示

环境要求

1. Kubernetes version> 1.14,支持CSI

2. Golang 1.12+

3. Helm 3

4. Fluid 0.6.0

➢文档链接: https://github.com/aliyun/alibabacloud-

jindofs/blob/master/docs/jindo_fluid/jindo_fluid _overview.md

ISSUE: https://github.com/aliyun/alibabacloud-jindofs/issues

Fluid JindoRuntime使用文档

●快速入门

●安装文档

●加速 OSS上 数据

●加速 HDFS .上数据

●加速 S3 上数据

●使用参数加密

●数据亲和性调度

Master节 点亲和性部署

●多 Maste r 节点部署

Fuse 客户端节点亲和性部署

●数据容忍污点调度

Fuse 客户端全局部署

Dataset 手动扩缩容

●使用 Placement 在同一 个集群上部署多个 dataset.数据源 mount 到根目录下

●数据预加载

●数据缓存和元数据缓存

●问题诊断及处理

 

相关文章
|
Dragonfly 缓存 Kubernetes
Dragonfly 在 Kubernetes 多集群环境下分发文件和镜像
Dragonfly 在 Kubernetes 多集群环境下分发文件和镜像
Dragonfly 在 Kubernetes 多集群环境下分发文件和镜像
|
弹性计算 编解码 Cloud Native
IP报文在阿里云上的神奇之旅系列一:同地域内云上通信
一个IP报文如何跨越万水千山达到目的地?本文将以阿里云为例,带领大家一起探索同地域内云上通信的全过程,完整展现云上同地域内各种场景的IP报文之旅,深入理解云网络技术、产品和通信。
1450 2
IP报文在阿里云上的神奇之旅系列一:同地域内云上通信
|
Kubernetes Cloud Native 架构师
阿里研究员谷朴:警惕软件复杂度困局
对于大型的软件系统如互联网分布式应用或企业级软件,为何我们常常会陷入复杂度陷阱?如何识别复杂度增长的因素?在代码开发以及演进的过程中需要遵循哪些原则?本文将分享阿里研究员谷朴关于软件复杂度的思考:什么是复杂度、复杂度是如何产生的以及解决的思路。较长,同学们可收藏后再看。
阿里研究员谷朴:警惕软件复杂度困局
|
监控 调度 开发工具
IO神器blktrace使用介绍
## 前言 1. blktrace的作者正是block io的maintainer,开发此工具,可以更好的追踪IO的过程。 2. blktrace 结合btt可以统计一个IO是在调度队列停留的时间长,还是在硬件上消耗的时间长,利用这个工具可以协助分析和优化问题。 ## blktrace的原理 一个I/O请求的处理过程,可以梳理为这样一张简单的图: ![](http://image
19862 0
|
7月前
|
存储 缓存 中间件
中间件对 Pinia 状态管理的性能有什么影响?
中间件对 Pinia 状态管理的性能有什么影响?
209 65
|
应用服务中间件 nginx Docker
使用 Python Flask 创建简易文件上传服务
在平时工作中,文件上传是一项常见的需求,例如将应用异常时通过脚本生成的dump文件收集起来进行分析,但实现起来却可能相当复杂。幸运的是,Flask框架提供了一种简单而高效的方式来处理文件上传,代码不到100行。在本文中,我们将探讨如何使用Flask实现文件上传功能,编写Dockerfile将应用程序通过docker部署。
|
人工智能
【强大的cursor_不懂就问AI工具做开发的AI助手技巧分享——一定要去试试!!!】
【强大的cursor_不懂就问AI工具做开发的AI助手技巧分享——一定要去试试!!!】
|
XML 监控 大数据
基于Guava布隆过滤器优化海量字符串去重策略
**Guava Bloom Filter实践:** 在大数据场景下,利用布隆过滤器进行高效字符串去重。Guava提供易用的BloomFilter实现,通过添加Guava依赖,设定预期元素数和误报率来创建过滤器。尽管可能产生误报,但不会漏报,常用于初期快速判断。添加元素,使用`mightContain`查询,若可能存在,再用精确数据结构确认。优化涉及选择哈希函数、调整误报率和避免重复添加。
|
Kubernetes 网络协议 应用服务中间件
K8s中Pod4中DNS解析策略
K8s中Pod4中DNS解析策略
298 1