0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

以Lambda為例參考,分析該如何做好一個大數(shù)據(jù)平臺架構(gòu)?

如意 ? 來源:今日頭條 ? 作者:CRM研究社 ? 2020-09-16 16:28 ? 次閱讀

一、Lambda架構(gòu)需求

Lambda架構(gòu)背后的需求是由于MR架構(gòu)的延遲問題。MR雖然實現(xiàn)了分布式、可擴展數(shù)據(jù)處理系統(tǒng)的目的,但是在處理數(shù)據(jù)時延遲比較嚴(yán)重。實際上如果內(nèi)存和CPU足夠強大,MR也可以實現(xiàn)近實時運算,但實際業(yè)務(wù)環(huán)境并非如此,因此我們需要權(quán)衡,選擇實時處理和批處理所需要數(shù)據(jù)量和恰當(dāng)?shù)馁Y源。

2012年Storm的作者Nathan Marz提出的Lambda數(shù)據(jù)處理框架。Lambda架構(gòu)的目標(biāo)是設(shè)計出一個能滿足實時大數(shù)據(jù)系統(tǒng)關(guān)鍵特性的架構(gòu),包括有:高容錯、低延時和可擴展等。Lambda架構(gòu)整合離線計算和實時計算,融合不可變性(Immunability),讀寫分離和復(fù)雜性隔離等一系列架構(gòu)原則,可集成Hadoop,Kafka,Storm,Spark,Hbase等各類大數(shù)據(jù)組件。

二、Lambda架構(gòu)的關(guān)鍵

橫向擴容

可擴展性意味著為滿足日益增長的用戶服務(wù)需求,同時不用對底層架構(gòu)或者代碼,可以通過現(xiàn)有機器添加內(nèi)存或者磁盤資源來實現(xiàn)(垂直擴展),或者可以通過在集群中添加機器實現(xiàn)(水平擴展)。無論是實時或者批處理,都應(yīng)該能夠不停服務(wù)的情況下,可以實施水平擴展。

故障容錯

系統(tǒng)需要妥善處理故障,確保系統(tǒng)在某些組件發(fā)生故障的情況下,整個系統(tǒng)服務(wù)的可用性??赡懿糠纸M件故障會導(dǎo)致集群中部分節(jié)點宕機,影響了整理的SLA,但是系統(tǒng)還是可以相應(yīng)的,系統(tǒng)不能有單點故障。

低延遲

很多應(yīng)用對于讀和寫操作的延時要求非常高,要求對更新和查詢的響應(yīng)是低延時的。

可擴展

系統(tǒng)需要足夠靈活,能夠?qū)崿F(xiàn)新增和修改需求,又不需要重構(gòu)整個系統(tǒng)。實時處理和批處理隔離開,能夠靈活修改需求。

易維護

開發(fā)部署不能夠太復(fù)雜。

三、Lambda架構(gòu)的分層

以Lambda為例參考,分析該如何做好一個大數(shù)據(jù)平臺架構(gòu)?

在Lambda架構(gòu)中新數(shù)據(jù)到達時,會被同時分派到批處理層和快速處理層。一旦數(shù)據(jù)到達批處理層,按照常規(guī)批處理時間間隔,每次都從頭開始重新計算并生成批處理視圖。類似地,只要新數(shù)據(jù)到達快速處理層,快速處理層就會使用新數(shù)據(jù)生成快速視圖。在查詢到達服務(wù)層時,它會合并快速視圖和批處理視圖來生成適當(dāng)?shù)牟樵兘Y(jié)果。生成批處理視圖后,快速視圖將被丟棄,除非有新數(shù)據(jù)抵達,否則只需要查詢批處理視圖,因為此時批處理層中擁有所有的數(shù)據(jù)。

Lambda架構(gòu)定義主要層以及每個組件之間的集成。注意分為以下層:

數(shù)據(jù)源

數(shù)據(jù)源指外部的數(shù)據(jù)庫、消息隊列、文件等,可以開發(fā)數(shù)據(jù)消費層,隱藏來自不同訪問數(shù)據(jù)的復(fù)雜性,定義好數(shù)據(jù)格式。

數(shù)據(jù)消費層

負責(zé)封裝不能數(shù)據(jù)源獲取數(shù)據(jù)的復(fù)雜性,將其轉(zhuǎn)換可由批處理或者流處理進一步使用同一的格式進行消費。

批處理層

這是Lambda架構(gòu)核心層之一,批處理接受數(shù)據(jù),持久化到用戶定義好的數(shù)據(jù)結(jié)構(gòu)中,維護著主數(shù)據(jù)。數(shù)據(jù)結(jié)構(gòu)一般不做改變,只是追加數(shù)據(jù)。批處理還負責(zé)創(chuàng)建和維護批處理視圖。比如我們常做的Hive ETL ,統(tǒng)計一些數(shù)據(jù),最后將結(jié)果保存在hive表中,或者數(shù)據(jù)庫中,就屬于批處理層。

實時層

這是Lambda另一個核心層。批處理在很多場景下能夠滿足需求,但是隨著業(yè)務(wù)需求“苛刻性”,他們希望能夠及時看到數(shù)據(jù),而不是等到第二天才看指標(biāo)變化和分析結(jié)果。所以引入了實時處理。實時層解決了一個問題,即只存儲可立即向用戶提供的一組數(shù)據(jù),這樣就不需要對全量數(shù)據(jù)進行處理,大大提供處理效率。比如流處理僅僅存儲最近5分鐘的數(shù)據(jù),處理計算并形成結(jié)果,這就是我們用spark streaming中要有的時間窗口。

服務(wù)層

這是Lambda架構(gòu)的最后一層,服務(wù)層的職責(zé)是獲取批處理和流處理的結(jié)果,向用戶提供統(tǒng)一查詢視圖服務(wù)。

四、Lambda架構(gòu)總結(jié)

Lambda數(shù)據(jù)架構(gòu)曾經(jīng)成為每一個公司大數(shù)據(jù)平臺必備的架構(gòu),它解決了一個公司大數(shù)據(jù)批量離線處理和實時數(shù)據(jù)處理的需求。

數(shù)據(jù)從底層的數(shù)據(jù)源開始,經(jīng)過各種各樣的格式進入大數(shù)據(jù)平臺,在大數(shù)據(jù)平臺中經(jīng)過Kafka、Flume等數(shù)據(jù)組件進行收集,然后分成兩條線進行計算。一條線是進入流式計算平臺(例如 Storm、Flink或者Spark Streaming),去計算實時的一些指標(biāo);另一條線進入批量數(shù)據(jù)處理離線計算平臺(例如Mapreduce、Hive,Spark SQL),去計算T+1的相關(guān)業(yè)務(wù)指標(biāo),這些指標(biāo)需要隔日才能看見。

Lambda架構(gòu)經(jīng)歷多年的發(fā)展,非常穩(wěn)定,對于實時計算部分的計算成本可控,批量處理可以用晚上的時間來整體批量計算,這樣把實時計算和離線計算高峰分開,這種架構(gòu)支撐了數(shù)據(jù)行業(yè)的早期發(fā)展,但是它也有一些致命缺點:

實時與批量計算結(jié)果不一致

因為批量和實時計算走的是兩個計算框架和計算程序,算出的結(jié)果往往不同,經(jīng)??吹揭粋€數(shù)字當(dāng)天看是一個數(shù)據(jù),第二天看昨天的數(shù)據(jù)反而發(fā)生了變化。

批處理的健壯性

隨著數(shù)據(jù)量級越來越大,經(jīng)常發(fā)現(xiàn)夜間只有4、5個小時的時間窗口,已經(jīng)無法完成白天20多個小時累計的數(shù)據(jù),保證早上上班前準(zhǔn)時出數(shù)據(jù)已成為每個大數(shù)據(jù)團隊頭疼的問題,同時做個任務(wù)并行執(zhí)行對于大數(shù)據(jù)集群的穩(wěn)定性也是巨大的考驗,經(jīng)常會有任務(wù)因為資源不足沒有定時啟動或者報錯。

開發(fā)和維護的復(fù)雜

Lambda 架構(gòu)中對同樣的業(yè)務(wù)邏輯進行兩次編程:一次為批量計算的ETL系統(tǒng),一次為流式計算的Streaming系統(tǒng)。針對同一個業(yè)務(wù)問題產(chǎn)生了兩個代碼庫,各有不同的漏洞。

存儲增長快

數(shù)據(jù)倉庫的設(shè)計不合理,會產(chǎn)生大量的中間結(jié)果表,造成數(shù)據(jù)急速膨脹,加大服務(wù)器存儲壓力。比如我們經(jīng)常糾結(jié)于數(shù)據(jù)倉庫到底怎么分層,是直接ODS層到應(yīng)用呢?還是ODS層要景觀DWS、DW等,最后才到應(yīng)用呢?

Lambda架構(gòu)雖然有缺點,但是在很多公司依然適用,有時候我們沒有那么大的業(yè)務(wù)量,實時業(yè)務(wù)需求并沒有那么明顯,用著Lambda架構(gòu)依然很爽。對于超大數(shù)據(jù)量的業(yè)務(wù)或者實時業(yè)務(wù)同樣多的情況,可以探索改良Lambda,業(yè)內(nèi)也提出了Kappa架構(gòu),感興趣的小伙伴可以搜索學(xué)習(xí)下。
責(zé)編AJX

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 平臺
    +關(guān)注

    關(guān)注

    1

    文章

    200

    瀏覽量

    24043
  • 大數(shù)據(jù)
    +關(guān)注

    關(guān)注

    64

    文章

    8952

    瀏覽量

    139514
  • Lambda
    +關(guān)注

    關(guān)注

    0

    文章

    30

    瀏覽量

    10119
收藏 0人收藏

    評論

    相關(guān)推薦
    熱點推薦

    深控數(shù)據(jù)平臺V1.0發(fā)布!IoT之力重塑工廠“數(shù)據(jù)脈絡(luò)”

    自主研發(fā)的“深控數(shù)據(jù)平臺V1.0”(軟著登記號:XXXXXXXX),IoT技術(shù)核心,打造“全域感知-智能分析-精準(zhǔn)控制”的
    的頭像 發(fā)表于 05-28 14:56 ?122次閱讀

    光伏電站無人機巡檢系統(tǒng)平臺的設(shè)計架構(gòu)

    電站中不同的運維管理需求。 根據(jù)光伏電站的運維管理工作內(nèi)容,光伏電站無人機巡檢系統(tǒng)平臺從多個層面建設(shè)系統(tǒng)平臺架構(gòu),能夠全方位、智能化的實現(xiàn)電站的運維管理。其設(shè)計架構(gòu)包含設(shè)備層、數(shù)據(jù)采集
    的頭像 發(fā)表于 05-07 11:23 ?174次閱讀
    光伏電站無人機巡檢系統(tǒng)<b class='flag-5'>平臺</b>的設(shè)計<b class='flag-5'>架構(gòu)</b>

    物聯(lián)網(wǎng)平臺解決方案:實現(xiàn)設(shè)備智能管理與數(shù)據(jù)安全

    的設(shè)計與實施對于推動物聯(lián)網(wǎng)技術(shù)的廣泛普及和深度應(yīng)用至關(guān)重要。 、關(guān)鍵要素 1.平臺架構(gòu)設(shè)計:平臺需兼顧靈活性、可擴展性和安全性。典型的
    的頭像 發(fā)表于 03-14 16:35 ?413次閱讀

    SAR ADC如何做好布線布局?

    SAR ADC如何做好布線布局?
    發(fā)表于 12-17 08:27

    智能網(wǎng)聯(lián)汽車云控系統(tǒng)第1部分:系統(tǒng)組成及基礎(chǔ)平臺架構(gòu)

    智能網(wǎng)聯(lián)汽車云控系統(tǒng) 第1部分 系統(tǒng)組成及基礎(chǔ)平臺架構(gòu)
    發(fā)表于 11-18 14:44 ?7次下載

    raid 在大數(shù)據(jù)分析中的應(yīng)用

    的具體應(yīng)用: 、提高性能 并行讀寫 :RAID技術(shù)通過并行讀寫多個磁盤,可以顯著提高數(shù)據(jù)的讀寫速度。在大數(shù)據(jù)分析環(huán)境中,數(shù)據(jù)讀寫速度是影響分析
    的頭像 發(fā)表于 11-12 09:44 ?631次閱讀

    亞馬遜云科技推出Amazon Lambda SnapStart功能

    亞馬遜云科技推出Amazon Lambda SnapStart,大幅提升Java Lambda函數(shù)啟動性能   北京,2024年10月29日 —— 亞馬遜云科技近日宣布,與光環(huán)新網(wǎng)和西云數(shù)據(jù)
    的頭像 發(fā)表于 10-30 10:59 ?622次閱讀

    云計算在大數(shù)據(jù)分析中的應(yīng)用

    云計算在大數(shù)據(jù)分析中的應(yīng)用廣泛且深入,它為用戶提供了存儲、計算、分析和預(yù)測的強大能力。以下是對云計算在大數(shù)據(jù)分析中應(yīng)用的介紹: 、存儲和處理海量數(shù)
    的頭像 發(fā)表于 10-24 09:18 ?1010次閱讀

    IP 地址大數(shù)據(jù)分析如何進行網(wǎng)絡(luò)優(yōu)化?

    、大數(shù)據(jù)分析在網(wǎng)絡(luò)優(yōu)化中的作用 1.流量分析 大數(shù)據(jù)分析可以對網(wǎng)絡(luò)中的流量進行實時監(jiān)測和分析,了解網(wǎng)絡(luò)的使用情況和流量趨勢。通過對流量
    的頭像 發(fā)表于 10-09 15:32 ?509次閱讀
    IP 地址<b class='flag-5'>大數(shù)據(jù)分析</b>如何進行網(wǎng)絡(luò)優(yōu)化?

    運放在采用雙電源供電時,如何做好電源的濾波?

    運放在采用雙電源供電時,如何做好電源的濾波。直搞不清如何選擇濾波電容的容值大小,耐壓值和電源電壓的關(guān)系。 如下圖中,我采用的是±15V給OPA4170供電,濾波電容采用的是10uF/25V
    發(fā)表于 09-12 08:02

    SK電訊將與Lambda合作打造AI數(shù)據(jù)中心

    韓國領(lǐng)先的電信巨頭SK電訊(SK Telecom)宣布了項重要合作計劃,將與美國知名的云GPU服務(wù)提供商Lambda攜手,于2024年12月在首爾共同推出先進的人工智能(AI)
    的頭像 發(fā)表于 08-23 17:29 ?1539次閱讀

    如何做好大功率環(huán)形電感選型工作

    電子發(fā)燒友網(wǎng)站提供《如何做好大功率環(huán)形電感選型工作.docx》資料免費下載
    發(fā)表于 07-04 17:08 ?1次下載

    大數(shù)據(jù)分析平臺網(wǎng)站

    大數(shù)據(jù)分析平臺種用于處理和分析大規(guī)模數(shù)據(jù)集的系統(tǒng),旨在從海量數(shù)據(jù)中提取有價值的信息和洞察。以
    的頭像 發(fā)表于 06-28 15:46 ?1286次閱讀

    電磁頻譜數(shù)據(jù)綜合管理平臺

    智慧華盛恒輝電磁頻譜數(shù)據(jù)綜合管理平臺集成了多種技術(shù)和工具,用于實現(xiàn)無線電頻譜資源實時監(jiān)測、分析、管理和決策支持的復(fù)雜系統(tǒng)。以下是對
    的頭像 發(fā)表于 06-25 14:57 ?760次閱讀

    請問使用lwip創(chuàng)建socket,如何做到非阻塞的接收發(fā)送數(shù)據(jù)

    請問使用lwip創(chuàng)建socket,如何做到非阻塞的接收發(fā)送數(shù)據(jù)
    發(fā)表于 06-19 06:02

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品