共计 2864 个字符,预计需要花费 8 分钟才能阅读完成。
作者 | 顾荣
Photo Creidt @ 轻零
导读:为了解决大数据、AI 等数据密集型利用在云原生计算存储拆散场景下,存在的数据拜访延时高、联结剖析难、多维治理杂等痛点问题,南京大学 PASALab、阿里巴巴、Alluxio 在 2020 年 9 月份联结发动了开源我的项目 Fluid。
近期 Fluid 0.4 版本正式公布,次要新增了以下四项重要性能,别离是:
- 通过 DataLoad 自定义资源,提供简略易用且可定制的数据预热能力
- 加强海量小文件数据集的撑持能力,扩大 Fluid 对 AI 利用的反对场景
- 凋谢 HDFS 文件系统兼容接口,反对 Spark 等框架的数据拜访
- 反对多数据集单节点混合部署,适应生产环境中的共享集群环境
Fluid 我的项目地址:https://github.com/fluid-cloudnative/fluid
与 Fluid 0.3 相似,上述性能的开发需要同样来自泛滥社区用户的生产理论反馈,此外,Fluid v0.4 还进行了一些 bug 修复和文档更新,欢送应用体验 Fluid v0.4!感激为此版本做出奉献的社区小伙伴,在接下来的版本性能迭代中,咱们会持续宽泛关注和驳回社区倡议,推动 Fluid 我的项目的倒退,期待听到大家更多的反馈!下文是本次新版本公布性能的进一步介绍。
反对被动的数据预热
在进行 AI 利用的模型训练时,数据预热是一种常见的优化伎俩。数据预热是指在利用运行前,将利用所须要的数据事后从近程存储系统中拉取到本地的计算集群,供之后利用运行时应用。数据预热通过一种程序的、有规定的并行数据读取模式,防止了数据密集型利用间接生产近程存储系统数据时,因为随机数据读取造成的许多不必要的通信开销。
因而,在 Fluid 0.4 版本中,咱们实现了一个新的 Kubernetes 自定义资源 – DataLoad,以 Kubernetes 资源的形式为用户提供了申明式的 API 接口,以控制数据预热的相干行为。DataLoad 自定义资源的一个简略示例如下所示:
apiVersion: data.fluid.io/v1alpha1
kind: DataLoad
metadata:
name: imagenet-dataload
spec:
dataset:
name: imagenet
namespace: default
另外,通过大量的额定配置,DataLoad 还可实现子目录加载、缓存正本数量管制、元数据同步等许多可定制的性能,更多与 DataLoad 应用相干的细节请参考 Github 上的示例文档。
无关 DataLoad 应用与优化成果的演示视频如下:http://cloud.video.taobao.com/play/u/2987821887/p/1/e/6/t/1/287213603893.mp4
加强海量小文件数据集的撑持能力
Fluid 是云原生环境下数据密集型利用的高效撑持平台,因而咱们从头至尾都在亲密关注着 Fluid 提供的数据集撑持能力在不同场景下的适用性。在 Fluid 0.4 版本之前,Fluid 曾经提供了诸如形象、治理、减速、可观测性等一系列数据集撑持能力,然而,依据社区成员的应用反馈,上述能力在海量小文件场景下的反对还是十分高级。
思考到海量小文件数据集在实在生产环境,尤其是 AI 利用场景的普遍性,咱们对海量小文件带来的问题进行了深刻的探索,提出了如 异步元数据加载查问、流式数据处理等 解决方案,这些解决方案目前均已集成至 Fluid 0.4 版本中,以加强 Fluid 对海量小文件数据集的撑持能力。
以下是 Fluid 应用 Alluxio Runtime 在 400 万小文件场景下的优化后的局部性能比照评估后果:
海量小文件的存储管理是许多存储系统都会遇到的辣手难题,在后续的版本中,咱们会持续关注这个场景以及它所带来的问题。
不便 Spark 等大数据计算框架提供数据拜访反对
除了 AI 利用外,Fluid 0.4 同样反对 Spark 等大数据利用在其上运行。通过向用户裸露 Alluxio 分布式缓存引擎的 Hadoop 文件系统兼容接口 (HCFS),使得 Hadoop MapReduce, Apache Spark 等大数据计算框架编写的数据分析利用,可能在不批改利用代码的状况下,间接运行于 Fluid 之上,并享受到由 Fluid 提供的分布式缓存减速等能力。
更多对于通过 HCFS 接口拜访数据的细节,请参考 Github 上的示例文档。
多数据集单节点混合部署
在实在的生产环境中,用户会在 Kubernetes 集群中的 GPU 节点上训练多个工作应用多个数据集,在 Fluid 0.4 版本之前,单节点无奈同时进行多个数据集的混合部署,因而,如果多个用户同时冀望在同一个节点拜访各自所需的数据集,会呈现某个用户的数据集无奈创立的状况。
在 Fluid 0.4 版本中,咱们为 Fluid 减少了多数据集单节点混合部署的能力,这意味着,只有该节点上的资源足够,来自不同用户的多个数据集部署抵触的问题将不再产生,该能力将使得 Fluid 更加适应理论生产环境的需要。另一方面,混合部署可能无效利用闲暇资源,减少集群中各个节点的集群资源利用率,进一步提高 Fluid 带来的老本收益。
无关多数据集单节点混合部署的简略介绍,可参考 Github 上的示例文档。
致谢
- 徐之浩(南京大学 PASALab)对于反对小文件场景和数据预热性能的奉献
- 谢远东(云知声)对于多数据集单节点混合部署性能开发和场景验证
- 仇伶玮(中国电信)对于 Fluid 架构拆分的奉献,他将 runtime 和 dataset 控制器拆分,反对将来两个组件的并行演进
总结
Fluid 0.4 版本将持续致力于解决社区用户在理论生产环境中反馈的问题和需要,扩大 Fluid 在各场景的适用性,晋升用户体验:
- 首先,对海量小文件数据集撑持能力的优化使 Fluid 可能更好地应答不同的应用场景;
- 其次,全新的 DataLoad 自定义资源为用户提供了一种简略的数据预热解决方案;
- 再者,对 Spark 等大数据利用数据拜访的反对使得 Fluid 可能为不同品种的数据密集型利用提供撑持能力;
- 最初,多数据集的混合部署使得 Fluid 更能适应理论生产环境的需要。
如果您有任何疑难或倡议,欢送退出钉钉交换群参加和探讨:https://img.alicdn.com/tfs/TB1Cm4ciNvbeK8jSZPfXXariXXa-452-550.png
作者简介
顾荣 博士,南京大学计算机系副研究员,钻研方向大数据处理系统,已在 TPDS、ICDE、JPDC、IPDPS、ICPP 等畛域前沿期刊会议发表论文 20 余篇,主持国家自然科学基金面上我的项目 / 青年我的项目、中国博士后科学基金特地赞助我的项目多项,研究成果落地利用于阿里巴巴、百度、字节跳动、中国石化、华泰证券等公司和开源我的项目 Apache Spark、Alluxio,获 2018 年度江苏省科学技术一等奖、2019 年度江苏省计算机学会青年科技奖,负责中国计算机学会系统软件专委会委员 / 大数据专委会通信委员、江苏省计算机学会大数据专委会秘书长、Fluid 开源我的项目 co-founder、Alluxio 开源我的项目 PMC 成员。