大數據時代早期,Apache HDFS 是構建具備海量存儲能力數據倉庫的首選方案。隨着雲計算、大數據、AI 等技術的發展,全部雲廠商都在不斷完善自家的對象存儲,來更好地適配 Apache Hadoop/Spark 大數據以及各類 AI 生態。因爲對象存儲有海量、安全、低成本、高可靠、易集成等優點,各類 IoT 設備、網站數據都把各類形式的原始文件存儲在對象存儲上,利用對象存儲加強和拓展大數據 AI 也成爲了業界共識,Apache Hadoop 社區也推出了原生的對象存儲「Ozone」。從 HDFS 到對象存儲,從數據倉庫到數據湖,把全部的數據都放在一個統一的存儲中,也能夠更加高效地進行分析和處理。後端
對於雲上的客戶來講,如何構建本身的數據湖,早期的技術選型很是重要,隨着數據量的不斷增長,後續進行架構升級和數據遷移的成本也會增長。在雲上使用 HDFS 構建大規模存儲系統,已經暴露出來很多問題。HDFS 是 Hadoop 原生的存儲系統,通過 10 年來的發展,HDFS 已經成爲大數據生態的存儲標準,但咱們也看到 HDFS 雖然不斷優化,可是 NameNode 單點瓶頸,JVM 瓶頸仍然影響着集羣的擴展,從 1 PB到 100+ PB,須要不斷的進行調優、集羣拆分來,HDFS 能夠支持到 EB 級別,可是投入很高的運維成本,來解決慢啓動,心跳風暴,節點擴容、節點遷移,數據平衡等問題。緩存
雲原生的大數據存儲方案,基於阿里雲 OSS 構建數據湖是最合適的選擇。OSS 是阿里雲上的對象存儲服務,有着高性能、無限容量、高安全、高可用、低成本等優點,JindoFS 針對大數據生態對 OSS 進行了適配,緩存加速,甚至提供專門的文件元數據服務,知足上雲客戶的各類分析計算需求。所以在阿里雲上,JindoFS + OSS 成爲客戶採起數據湖架構遷移上雲的最佳實踐。安全
Jindo 是阿里雲基於 Apache Spark / Apache Hadoop 在雲上定製的分佈式計算和存儲引擎。Jindo 原是阿里雲 開源大數據團隊的內部研發代號,取自筋斗(雲)的諧音,Jindo 在開源基礎上作了大量優化和擴展,深度集成和鏈接了衆多阿里雲基礎服務。架構
JindoFS 是阿里雲針對雲上存儲自研的大數據緩存加速服務,JindoFS 的設計理念是雲原生:彈性、高效、穩定和低成本。JindoFS 徹底兼容 Hadoop 文件系統接口,給客戶帶來更加靈活、高效的數據湖加速方案,徹底兼容阿里雲 EMR 中全部的計算服務和引擎:Spark、Flink、Hive、MapReduce、Presto、Impala 等。JindoFS 有兩種使用模式,塊存儲模式(BLOCK)和緩存模式(CACHE)。下面咱們介紹下如何在 EMR 中配置和使用 JindoFS 以及不一樣模式對應的場景。框架
JindoFS 主要包含兩個服務組件:元數據服務(NamespaceService) 和存儲服務 (StorageService):運維
下圖是 JindoFS 架構圖:元數據服務 NamespaceService 部署在獨立的節點,對於生產環境推薦部署三臺(Raft)來實現服務高可用;存儲服務 StorageService 部署在集羣的計算節點,管理節點上的閒置存儲資源(本地盤/SSD/內存等),爲JindoFS 提供分佈式緩存能力。機器學習
JindoFS 的元數據服務叫 JindoNamespaceService,內部基於 K-V 結構存儲元數據,相對於傳統的內存結構有着操做高效,易管理,易恢復等優點。分佈式
JindoFS 的數據緩存服務叫 JindoStorageService,本地 StorageService 主要提供高性能緩存加速,因此運維上能夠基於這樣的設定大大簡化。oop
JindoFS 的元數據存儲在 Master 節點的 NamespaceService (高可用部署)上,性能和體驗上對標 HDFS;Core節點的 StorageService 將一份數據塊存儲在 OSS 上,本地數據塊能夠隨着節點資源進行快速的彈性伸縮。多集羣之間也能夠相互打通。性能
爲了支持數據湖多種使用場景,一套 JindoFS 部署同時提供兩種 OSS 使用方式,存儲模式(Block)和緩存模式(Cache)。
基於JindoFS + OSS 來構建數據湖相比於其餘數據湖方案同時具備性能和成本優點。
下面咱們重點來看存儲成本。存儲成本指的是存放數據後產生的存儲費用,使用 OSS 是按量付費的,相比基於本地盤建立的 HDFS 集羣有更好的成本優點,下面來計算和對比一下兩者成本:
因爲本地盤機型爲總體價格,須要以下進行換算,預估存儲成本以下:
(參考連接:https://www.aliyun.com/price/product#/ecs/detail )
考慮到實際使用 HDFS 會有3副本以及必定的預留空間,咱們以 HDFS 3 副本、 80% 使用率進行成本計算:
OSS 數據存儲(標準型單價)= 0.12元/GB/每個月
(參考連接:https://www.aliyun.com/price/product#/oss/detail )
咱們能夠看到使用 JindoFS 加速方案構建數據湖,要節省 25% 的存儲成本。同時 OSS 是按量計費,即計算存儲分離,當計算和存儲比例存在差別時,好比存儲資源高速增加,計算資源增長較小時,成本優點會更加明顯。
對 OSS 數據進行緩存加速,須要額外使用計算節點上部分磁盤空間,帶來必定成本。這部分紅本,通常取決於熱數據或者要緩存數據的大小,跟要存儲的數據總量關係不大。增長這部分紅本,能夠換取計算效率的提高和計算資源的節省,總體效果能夠根據實際場景進行評估。
數據湖是開放的,須要對接各類計算引擎。目前 JindoFS 已經明確支持 Spark、Flink、Hive、MapReduce、Presto 和 Impala 組件。同時,JindoFS 爲了支持更好地使用數據湖,還提供 JindoTable 對結構化數據進行優化和查詢加速;提供 JindoDistCp 來支持 HDFS 離線數據往 OSS 遷移;支持 JindoFuse 方便數據湖上加速機器學習訓練。
原文連接本文爲阿里雲原創內容,未經容許不得轉載。