Fluid 0.4 新版本正式发布:支持数据预热,优化小文件场景
作者 | 顧榮
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: imagenetnamespace: 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 成員。
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Fluid 0.4 新版本正式发布:支持数据预热,优化小文件场景的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开放下载 | 和 4000+Java 开
- 下一篇: 2019 年 CNCF 中国云原生调查报