简介: 如何驱动大数据、AI 利用在云原生场景下高效运行是一个既有理论意义又具利用价值的重要挑战性问题,为系统化解决相干问题,学术界和工业界密切合作,南京大学 PASALab 副研究员顾荣博士、阿里云容器服务高级技术专家车漾、Alluxio 我的项目开创成员范斌博士联结推动发动了 Fluid 开源合作项目。
作者 | 顾荣、车漾、范斌
得益于容器化带来的高效部署、麻利迭代,以及云计算在资源老本和弹性扩大方面的人造劣势,以 Kubernetes 为代表的云原生编排框架吸引着越来越多的 AI 与大数据利用在其上部署和运行。然而,云原生计算基金会(CNCF)全景图中始终缺失一款原生组件,以帮忙这些数据密集型利用在云原生场景下高效、平安、便捷地拜访数据。
如何驱动大数据、AI 利用在云原生场景下高效运行是一个既有理论意义又具利用价值的重要挑战性问题:
- 一方面,解决该问题需思考简单场景下利用协同编排、调度优化、数据缓存等一系列实践与技术难题;
- 另一方面,该问题的解决可能无力地推动广大云服务场景下的大数据、AI 落地利用。
为系统化解决相干问题,学术界和工业界密切合作,南京大学 PASALab 副研究员顾荣博士、阿里云容器服务高级技术专家车漾、Alluxio 我的项目开创成员范斌博士联结推动发动了 Fluid 开源合作项目。
Fluid 是什么?
Fluid 是一款开源的云原生基础架构我的项目。在计算和存储拆散的大背景驱动下,Fluid 的指标是为 AI 与大数据云原生利用提供一层高效便捷的数据抽象,将数据从存储形象进去,以便达到:
- 通过 数据亲和性调度 和分布式缓存引擎减速,实现数据和计算之间的交融,从而减速计算对数据的拜访;
- 将数据独立于存储进行治理,并且通过 Kubernetes 的命名空间进行资源隔离,实现数据的平安隔离;
- 将来自不同存储的数据联结起来进行运算,从而有机会突破不同存储的差异性带来的数据孤岛效应。
通过 Kubernetes 服务提供的数据层形象,能够让数据像流体一样在诸如 HDFS、OSS、Ceph 等存储源和 Kubernetes 下层云原生利用计算之间灵便高效地挪动、复制、驱赶、转换和治理。而具体数据操作对用户通明,用户不用再放心拜访远端数据的效率、治理数据源的便捷性,以及如何帮忙 Kuberntes 做出运维调度决策等问题。用户只需以最天然的 Kubernetes 原生数据卷形式间接拜访形象进去的数据,残余工作和底层细节全副交给 Fluid 解决。
Fluid 我的项目以后次要关注数据集编排和利用编排这两个重要场景。数据集编排能够将指定数据集的数据缓存到指定个性的 Kubernetes 节点;而利用编排将指定该利用调度到能够或曾经存储了指定数据集的节点上。这两者还能够组合造成协同编排场景,即协同思考数据集和利用需要进行节点资源调度。
为什么云原生须要 Fluid?
云原生环境与更早呈现的大数据处理框架在设计理念和机制上存在人造一致。深受 Google 三篇论文 GFS、MapReduce、BigTable 影响的 Hadoop 大数据生态,从诞生之初即崇奉和实际“挪动计算而不是数据”的理念。因而以 Spark,Hive,MapReduce 为代表的数据密集型计算框架及其利用为缩小数据传输,其设计更多地思考数据本地化架构。但随着时代的变迁,为兼顾资源扩大的灵活性与应用老本,计算和存储拆散的架构在更新兴的云原生环境中大行其道。因而云原生环境里须要相似 Fluid 这样的一款组件来补充大数据框架拥抱云原生带来的数据本地性缺失。
此外,在云原生环境中,利用通常以无状态(Stateless)微服务化形式部署,并不以数据处理为核心;而数据密集型框架和利用通常以数据抽象为核心,发展相干计算作业和工作的调配执行。当数据密集型框架融入云原生环境后,也须要像 Fluid 这样以数据抽象为核心的调度和调配框架来协同工作。
针对 Kubernetes 不足对利用数据的智能感知和调度优化的问题,及以 Alluxio 为例的数据编排引擎存在难以间接管控云原生基础架构层的局限,Fluid 提出数据利用协同编排、智能感知、联结优化等一系列翻新办法,并且造成一套云原生场景下数据密集型利用的高效撑持平台。
具体的架构参见下图:
演示
咱们提供了视频的 Demo,为您展现如何通过 Fluid 晋升云上 AI 模型训练的速度。在这个 Demo 中,应用同样的 ResNet50 测试代码,Fluid 减速和原生的 ossfs 间接拜访相比,不管在每秒钟的训练速度,和训练总时长相比都有显著的劣势,训练耗时缩短了 69%。
点击链接,即可查看视频 Demo:https://v.qq.com/x/page/t31488r2p2q.html
疾速体验 Fluid
Fluid 须要运行在 Kubernetes v1.14 及以上版本,并且须要反对 CSI 存储。Fluid Operator 的部署和治理是通过 Kubernetes 平台上的包管理工具 Helm v3 实现的。运行 Fluid 前请确保 Helm 曾经正确装置在 Kubernetes 集群里。你能够参照文档,装置和应用 Fluid。
欢送退出与反馈
Fluid 让 Kubernetes 真正具备分布式数据缓存的根底能力,开源只是一个终点,须要大家的独特参加。大家在应用过程发现 bug 或须要的 feature,都能够间接在 GitHub 下面提 issue 或 PR,一起参加探讨。
另外咱们有一个钉钉群,手机端钉钉点击超链即可退出,欢迎您的参加和探讨!
作者简介
顾荣 南京大学计算机系副研究员,钻研方向大数据处理系统,已在 TPDS、ICDE、Parallel Computing、JPDC、IPDPS、ICPP 等畛域前沿期刊会议发表论文 20 余篇,成绩落地利用于中国石化、百度、字节跳动等公司和开源我的项目 Apache Spark,获 2018 年度江苏省科学技术一等奖、2019 年度江苏省计算机学会青年科技奖,入选中国计算机学会系统软件专委会委员 / 大数据专委会通信委员、江苏省计算机学会大数据专委会秘书长;
车漾 阿里云高级技术专家,从事 Kubernetes 和容器相干产品的开发。尤其关注利用云原生技术构建机器学习平台零碎,是 GPU 共享调度的次要作者和维护者;
范斌 Alluxio 开源我的项目的治理委员会成员(PMC Member)和源码维护者(Maintianer)。退出 Alluxio 我的项目之前, 范斌就任于谷歌, 从事下一代大规模分布式存储系统的钻研与开发。他于 2013 年取得卡内基梅隆大学(Carnegie Mellon University) 计算机系博士学位,博士期间从事分布式系统的设计与实现,是 Cuckoo Filter 的作者。