天天看點

JindoFS概述:雲原生的大資料計算存儲分離方案JindoFS概述:雲原生的大資料計算存儲分離方案

作者:誠曆,阿裡巴巴計算平台事業部 EMR 技術專家,Apache Sentry PMC,Apache Commons Committer,目前從事開源大資料存儲和優化方面的工作。

JindoFS概述:雲原生的大資料計算存儲分離方案

JindoFS 之前

在 JindoFS 之前,雲上客戶主要使用 HDFS 和 OSS/S3 作為大資料存儲。HDFS 是 Hadoop 原生的存儲系統,10 年來,HDFS 已經成為大資料生态的存儲标準,但是我們也可以看到 HDFS 雖然不斷優化,但是 JVM 的瓶頸也始終無法突破,社群後來重新設計了 OZone。OSS/S3 作為雲上對象存儲的代表,也在大資料生态進行了适配,但是由于對象存儲設計上的特點,中繼資料相關操作無法達到 HDFS 一樣的效率;對象存儲給客戶的帶寬不斷增加,但是也是有限的,一些時候較難完全滿足使用者大資料使用上的需求。

Jindo 的由來

EMR Jindo 是阿裡雲基于 Apache Spark / Apache Hadoop 在雲上定制的分布式計算和存儲引擎。Jindo 原是内部的研發代号,取自筋鬥(雲)的諧音,EMR Jindo 在開源基礎上做了大量優化和擴充,深度內建和連接配接了衆多阿裡雲基礎服務。阿裡雲 EMR (E-MapReduce) 在 TPC 官方送出的 TPCDS 成績,也是使用 Jindo 送出的。

http://www.tpc.org/tpcds/results/tpcds_perf_results.asp?resulttype=all

JindoFS

EMR Jindo 有計算和存儲兩大部分,存儲的部分叫 JindoFS。JindoFS 是阿裡雲針對雲上存儲定制的自研大資料存儲服務,完全相容 Hadoop 檔案系統接口,給客戶帶來更加靈活、高效的計算存儲方案,目前已驗證支援阿裡雲 EMR 中所有的計算服務和引擎:Spark、Flink、Hive、MapReduce、Presto、Impala 等。Jindo FS 有兩種使用模式,塊存儲模式和緩存模式。下面我們來分析下,JindoFS 是如何來解決大資料上的存儲問題的。

JindoFS概述:雲原生的大資料計算存儲分離方案JindoFS概述:雲原生的大資料計算存儲分離方案

塊存儲模式

計算和存儲分離是業界的趨勢,OSS 這樣的雲上存儲能力是無限大的,成本上非常有優勢,如何利用 OSS 提供的無限存儲能力,同時又高效地操作檔案系統的中繼資料。JindoFS 塊存儲模式提供了一套完整的雲原生解決方案。

JindoFS概述:雲原生的大資料計算存儲分離方案JindoFS概述:雲原生的大資料計算存儲分離方案

JindoFS 的塊存儲模式,在中繼資料上使用 JindoNameService 服務管理 Jindo 檔案系統中繼資料,中繼資料操作的性能和體驗上可以對标 HDFS NameNode。同時,JindoStorageService 保障了資料可以始終有一份存在 OSS 上,即使資料節點被釋放,資料也可以随時從 OSS 上拉取,成本上也可以做到更加靈活。

JindoFS 的塊存儲模式,也支援多種存儲政策,比如,本地存兩份,OSS上存一份;本地存兩份,OSS上不存儲;本地不存,OSS上存一份等等。使用者可以充分利用不同的存儲政策根據業務或者資料冷熱進行使用。

塊存儲使用了全新的 jfs:// 格式,原始 HDFS/OSS 資料通過 distcp 方式即可完成資料導入,同時,JindoFS 提供了 SDK,在 EMR 叢集外部,使用者也可以讀寫 Jindo FS。

緩存模式

緩存模式,正如“緩存”本身的含義,通過緩存的方式,在本地叢集基于 JindoFS 的存儲能力建構了一個分布式緩存服務,遠端的資料可以儲存在本地叢集,使遠端資料變成“本地化”。簡單地描述 JindoFS 緩存模式解決的問題

就是“OSS / 遠端HDFS 已經有了大量資料,每次讀資料的時候網絡帶寬經常被打滿,Jindo FS 就可以通過緩存模式優化網絡帶寬的限制。”

“原來的檔案路徑是 oss://bucket1/file1 或 hdfs://namenode/file2,不想改作業的路徑可以嗎?”。是的,不需要修改。EMR 對 OSS 進行了适配(後續會支援遠端 HDFS 的場景),可以通過配置的方式使用緩存模式。緩存對于上層的作業做到了完全無感。

但是緩存模式也不是萬能的,為了保證多端資料一緻性,rename 這種操作一定要同步重新整理到遠端的 OSS / HDFS,特别是 OSS 的Rename 操作比較耗時,緩存模式對 rename這種檔案中繼資料操作暫時不能優化。

總結

在 2019 年的雲栖大會上,EMR Jindo 的技術存儲分離方案得到很大的關注,視訊直達連結

【雲上大資料的一種高性能資料湖存儲方案】 【EMR打造高效雲原生資料分析引擎】

後續我們也會在雲栖社群和釘釘群分享更多的 Jindo 技術幹貨,歡迎有興趣的同學加入 《Apache Spark技術交流社群》進行交流和技術分享。

相關文章

【JindoFS - 雲上大資料高性能資料湖存儲方案】
JindoFS概述:雲原生的大資料計算存儲分離方案JindoFS概述:雲原生的大資料計算存儲分離方案

繼續閱讀