1. 數(shù)據(jù)湖存儲架構(gòu)選型

        共 3676字,需瀏覽 8分鐘

         ·

        2021-04-28 23:42

        作者簡介
        鄭鍇,花名鐵杰,阿里巴巴高級技術(shù)專家,Apache Hadoop PMC。深耕分布式系統(tǒng)開發(fā)和開源大數(shù)據(jù)多年,目前專注于在阿里云上研發(fā)業(yè)界領(lǐng)先的 Hadoop/Spark 大數(shù)據(jù)平臺和數(shù)據(jù)湖解決方案產(chǎn)品。

        本文內(nèi)容來自由阿里云計算平臺事業(yè)部與阿里云開發(fā)者社區(qū)聯(lián)合主辦的大數(shù)據(jù)+AI meetup 2020第二站·上海講師鄭鍇的分享《數(shù)據(jù)湖存儲架構(gòu)選型》

        一、數(shù)據(jù)湖是個潮流

        簡單來講,數(shù)據(jù)湖的理念就是說從一個企業(yè)的視角來講,把整個數(shù)據(jù)集中的統(tǒng)一的存儲在一起,主要通過 BI 和 AI 的手段來計算分析原始的數(shù)據(jù)。數(shù)據(jù)的類型不光是結(jié)構(gòu)化、半結(jié)構(gòu)化的,還包括音視頻,這樣的一些材料。
        我們?yōu)槭裁匆跀?shù)據(jù)湖來做這樣的一個轉(zhuǎn)型呢,數(shù)據(jù)湖能夠給我們帶來什么樣的好處呢。
        第一,打破數(shù)據(jù)孤島。就是說原始的數(shù)據(jù)我們先不考慮怎么去處理它、分析它,甚至是說我們先不考慮它到底會不會解決很大的業(yè)務(wù)上面的問題,我們先把它放在一起,打破數(shù)據(jù)孤島,為后面的業(yè)務(wù)發(fā)展演化和計算,可能就提供了很好的一個機(jī)會。
        第二,基于統(tǒng)一的、集中的整個數(shù)據(jù)的收集,可以支持各種各樣的計算。
        第三,彈性。我們數(shù)據(jù)湖本身是有彈性的,然后支持的計算也是有彈性的。彈性可能在云上面帶來成本的很大的伸縮性的空間,為我們優(yōu)化存儲和計算的成本帶來了這樣一個可能。
        第四,管理。我們把數(shù)據(jù)放在一起,可以提供統(tǒng)一的、集中的這樣一個管理控制。
        熟悉 Hadoop 整個生態(tài)的話,過去經(jīng)常會談到一個非常大的、非常復(fù)雜的生態(tài)的大圖。那個圖里面涉及到非常多的組件,結(jié)構(gòu)關(guān)系非常復(fù)雜。而基于數(shù)據(jù)湖的架構(gòu),可以得到大大的簡化。
        如下圖所示,最下面是數(shù)據(jù)湖本身,基于這樣的一個數(shù)據(jù)湖存儲,我們可以有一個統(tǒng)一的元數(shù)據(jù)服務(wù),做數(shù)據(jù)湖的創(chuàng)建管理,然后圍繞數(shù)據(jù)湖做數(shù)據(jù)的治理開發(fā),和各種數(shù)據(jù)源的集成打通。但是這個并不是目的,最主要的作用還是說我們要做計算。數(shù)據(jù)湖的計算,簡單來講就是說我們有各種各樣的開源的 BI 的引擎,或者 AI 的引擎,每個引擎可能有自己的集群,然后基于數(shù)據(jù)湖來進(jìn)行相應(yīng)的計算場景的處理。然后滿足我們最上面的基于數(shù)據(jù)湖的各種應(yīng)用,比如說數(shù)據(jù)大屏,數(shù)據(jù)報表,數(shù)據(jù)挖掘,機(jī)器學(xué)習(xí)。

        二、湖存儲/加速:挑戰(zhàn)很大

        數(shù)據(jù)湖架構(gòu)里面,對于存儲的挑戰(zhàn)很大。
        第一,最大的一個因素是數(shù)據(jù)量的問題。按照數(shù)據(jù)湖的理念,我們要把所有的數(shù)據(jù)全部都放在一起,那么在數(shù)據(jù)的規(guī)模上來講是非常大的,數(shù)據(jù)規(guī)??梢耘蛎浀?PB、EB 級別。
        第二,文件的規(guī)模。從存儲系統(tǒng)的角度來講,文件的規(guī)模可以說也是非常大,要么就是層次非常深,要么就是非常扁平。扁平就是說一個目錄下可能會有幾百萬的文件數(shù),形成這樣一個超大的目錄。
        第三,成本。我要收集那么多的數(shù)據(jù),我要把全部原始的數(shù)據(jù)放在一起,成本上怎么去優(yōu)化。
        另外一個挑戰(zhàn)就是說,按照數(shù)據(jù)湖的架構(gòu),它背后的本質(zhì)是存儲和計算分離?,F(xiàn)在是專業(yè)化的分工,存儲的做存儲,計算的做計算,這個帶來非常大的研發(fā)效率的這樣一個提升。但是分離了之后,怎么滿足計算的吞吐,怎么滿足計算對性能的這樣一個需求,這也是帶來很大挑戰(zhàn)的一個原因。
        另外,在數(shù)據(jù)湖的整個的方案下面,要考慮到計算場景是非常豐富的,計算的環(huán)境也是錯綜復(fù)雜的。大數(shù)據(jù),我們要支持分析、交互式、實時計算。然后 AI 有自己的各種各樣的引擎來訓(xùn)練。
        然后是計算的場景,包括 EMR 、ECS 自建、云原生、混合云。這樣的一些環(huán)境可能都會涉及到,我們怎么提供一個統(tǒng)一、集中的存儲的解決方案,來滿足這樣一個豐富的計算場景和環(huán)境。
        假設(shè)我們能夠克服數(shù)據(jù)量上面的挑戰(zhàn),滿足各種計算的環(huán)境,也能夠提供緩存加速,也能夠滿足存儲的這樣一個性能?,F(xiàn)在架構(gòu)師決定了我們要做數(shù)據(jù)遷移,實施層面的挑戰(zhàn)是什么。我們要做大量數(shù)據(jù)的遷移,之后要做正確性的比對。另外,比如說, Hive 數(shù)倉,Spark 作業(yè),可能上千上萬的作業(yè)我們決定要遷移,遷移了之后要做結(jié)果的比對。遷移上來之后,可能我過去有一套成熟的治理、運(yùn)維的體系,在新的架構(gòu)下面,我怎么能夠盡量少改,能夠繼續(xù)得到支持。這是實施層面的挑戰(zhàn)。

        三、完美選項之 checklist

        數(shù)據(jù)湖架構(gòu)下面,從存儲、加速的視角,我們可以看到有這樣一些挑戰(zhàn),那么理想的選型是什么樣子的,要考慮到哪些因素,這里做了一個總結(jié)。
        • 第一, 基于對象存儲,大規(guī)模存儲能力。
        • 第二,大目錄元數(shù)據(jù)操作能力。
        • 第三,策略靈活的緩存加速能力。
        • 第四,和計算打通優(yōu)化的能力。
        • 第五,支持?jǐn)?shù)據(jù)湖新型表格存儲的能力。
        • 第六,歸檔/壓縮/安全存儲的能力。
        • 第七,全面的大數(shù)據(jù)+ AI 生態(tài)支持。
        • 第八,強(qiáng)大遷移能力,甚至是無縫遷移能力。
        以上就是作為一個理想的數(shù)據(jù)湖的存儲、加速方案,最好具備的一個 checklist 。考慮升級到數(shù)據(jù)湖架構(gòu)的這樣一些架構(gòu)師可以對照一下這個 checklist ,來做方案的選型。

        四、阿里云上的 JindoFS

        接下來看一下阿里云上面在做的 JindoFS 這樣一個方案具體是什么樣的情況。簡單來講我們在做三個事情。
        第一個事情就是說,我們是基于阿里云 OSS ,就是面向 Hadoop , Spark 和 AI 的生態(tài),做了這樣的一個 SDK ,然后是優(yōu)化版本的。我們知道 Hadoop 是具有 OSS 的支持的,我們?yōu)槭裁匆鲆粋€新的。簡單來講,就是說我們要做好優(yōu)化。首先,我們要做好元數(shù)據(jù)操作的優(yōu)化,特別是對于大目錄要做好優(yōu)化。另外一個就是 Rename 優(yōu)化。我們知道對象存儲一個關(guān)鍵的元數(shù)據(jù)操作就是目錄的 rename 操作,它是一個非常大的挑戰(zhàn),這是對象存儲的本質(zhì)決定的。因為對象存儲不是文件系統(tǒng),它其實沒有目錄的概念,它的目錄完全是模擬出來的。也就是說,你對一個目錄進(jìn)行操作,就必須要對成千上萬個對象相應(yīng)的進(jìn)行操作來模擬。甚至是說,在一些計算場景里面,是不是能夠做到跳過 rename 。另外一個是讀寫 IO 優(yōu)化,能不能夠充分的利用好對象存儲帶來的水平擴(kuò)展的這樣一個能力,來做好lO的優(yōu)化。最后, OSS 的多版本,或者 OSS 的歸檔,我們是不是能夠支持。以上是我們第一個層面的工作。
        第二個事情是為 OSS 存儲提供一個緩存加速的分布式系統(tǒng)。首先是數(shù)據(jù)的一致性,包括元數(shù)據(jù)的一致性和緩存數(shù)據(jù)的一致性。然后是磁盤緩存,包括寫時緩存,讀時緩存,以及磁盤的負(fù)載均衡。最后是水位清理,包括緩存塊 LRU 淘汰。
        第三個事情是說,我們也打造了一個基于 OSS 的存儲擴(kuò)展的系統(tǒng)。首先是管理元數(shù)據(jù),包括內(nèi)存緩存,細(xì)粒度鎖。其次是文件數(shù)據(jù)分塊存放, OSS 1備份,緩存1備份。然后是性能優(yōu)化,元數(shù)據(jù)操作普遍 > HDFS ,緩存讀 + OSS 讀 > HDFS 。最后是高擴(kuò)展,基于 OSS 的大規(guī)模水平擴(kuò)展。
        下面對照之前提到的 checklist ,看一下 JindoFS 的支持情況。
        • 第一,基于對象存儲,大規(guī)模存儲能力。支持,基于阿里云對象存儲 OSS , OSS 支持 EB 級海量存儲。

        • 第二,大目錄元數(shù)據(jù)操作能力。支持,JindoFS 在超大目錄數(shù)據(jù)加載、檢索、統(tǒng)計、rename 上具有幾倍的性能優(yōu)勢。

        • 第三, 緩存加速的能力。支持,JindoFS 支持在大數(shù)據(jù)分析場景、交互式查詢場、機(jī)器學(xué)習(xí)訓(xùn)練 場景和云原生應(yīng)用場景提供策略靈活的分布式緩存加速能力;緩存加速的性能提升大于 50% 的效果優(yōu)于開源方案。

        • 第四,和計算打通優(yōu)化的能力。支持,和 JindoFS co-design 的 JindoTable 提供對數(shù)倉表的緩存、計算加速、治理優(yōu)化和歸檔存儲支持。

        • 第五,支持?jǐn)?shù)據(jù)湖新型表格存儲的能力。支持,JindoFS 提供 Delta 、Hudi 和 Iceberg 所需要的存儲接口和事務(wù)支持語義,并支持 Flink 實時入湖。

        • 第六,歸檔/壓縮/安全存儲的能力。支持, JindoFS 在目錄、表、分區(qū)級別支持 OSS 歸檔;提供透明壓縮;支持 AK 免密保護(hù),Ranger 授權(quán)和審計擴(kuò)展功能。

        • 第七,全面的大數(shù)據(jù)+ AI 生態(tài)支持。支持,JindoFS 全面兼容和支持開源生態(tài),提供:Hadoop JindoFS SDK;Jindo Job Committer ; POSIX fuse 支持 JindoFuse ;TensorFlow FileSystem ;Flink connector ;Kite SDK 。

        • 第八,強(qiáng)大遷移能力甚至是無縫遷移的能力。部分支持,提供優(yōu)化的 JindoDistCp 工具,支持 Hadoop 數(shù)據(jù)源導(dǎo)入。
        嘗鮮!Flink1.12.2+Hudi0.9.0集成開發(fā)

        實操 | Flink1.12.1通過Table API / Flink SQL讀取HBase2.4.0

        一萬五千字詳解HTTP協(xié)議
        瀏覽 61
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
          
          

            1. 北条麻妃丝袜高跟啪啪 | www.黄色网址.com | 成人性生交大片免费看无遮挡aⅴ | 国产超碰人人做人人爱ⅴa | 黄色成人网站大全 |