溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何快速給Hadoop集群加上彈性

發(fā)布時(shí)間:2021-12-09 14:48:27 來源:億速云 閱讀:248 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容介紹了“如何快速給Hadoop集群加上彈性”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

1. 背景介紹

大數(shù)據(jù)時(shí)代早期,Apache Hadoop是構(gòu)建具有海量存儲(chǔ)能力數(shù)據(jù)倉庫的首選方案,許多企業(yè)用戶采用在云上購買ECS,自建Hadoop集群來存儲(chǔ)和處理數(shù)據(jù)。Apache Spark作為一個(gè)內(nèi)存計(jì)算框架,具有流處理、批處理,圖計(jì)算,機(jī)器學(xué)習(xí),SQL查詢等多種能力,社區(qū)活躍度高,并且Spark天然支持Hadoop數(shù)據(jù)源,可以完美的融入Hadoop生態(tài),提供高效的計(jì)算能力。Hadoop+Spark成為大數(shù)據(jù)領(lǐng)域的明星,被廣泛用于離線大數(shù)據(jù)的挖掘。

云上的Hadoop集群通常是以ECS加云盤(或本地盤)配合一系列開源組件組成。隨著業(yè)務(wù)的增長,對(duì)計(jì)算能力的需求不斷地提升,尤其是在業(yè)務(wù)高峰期,數(shù)據(jù)大量涌入,為保證服務(wù)的穩(wěn)定性和及時(shí)性,需要及時(shí)的增加節(jié)點(diǎn)來滿足業(yè)務(wù)需求。業(yè)務(wù)低峰期時(shí),希望能及時(shí)的回收多余的計(jì)算資源,避免資源的浪費(fèi)。這就要求Hadoop集群具有一定的彈性能力,能根據(jù)業(yè)務(wù)量及時(shí)地?cái)U(kuò)(縮)容相應(yīng)的計(jì)算資源。彈性能力是云計(jì)算的趨勢(shì),可以給用戶帶來更低成本的計(jì)算。但是如何快捷穩(wěn)定地給已有的計(jì)算集群增加彈性是一個(gè)讓用戶頭痛的問題。

2. 傳統(tǒng)彈性方案的問題

由于歷史原因,用戶的很多數(shù)據(jù)和業(yè)務(wù)放在自建Hadoop集群之上。隨著業(yè)務(wù)發(fā)展,或者業(yè)務(wù)高峰期到來,對(duì)集群計(jì)算力需求增加,通常用戶會(huì)采取擴(kuò)容Hadoop集群節(jié)點(diǎn),以增加可用計(jì)算資源池。雖然擴(kuò)容機(jī)器可以一定程度的滿足計(jì)算力的需求,但是會(huì)遇到以下的幾個(gè)痛點(diǎn)。

·       擴(kuò)容慢: 通常一個(gè)比較大的集群擴(kuò)容,為了避免對(duì)已有線上業(yè)務(wù)的影響,需要選擇在業(yè)務(wù)低峰期擴(kuò)容,且擴(kuò)容時(shí),由于需要在新的節(jié)點(diǎn)上部署各個(gè)組件,時(shí)間短則十幾分鐘,多則數(shù)小時(shí),很難應(yīng)對(duì)業(yè)務(wù)的變化。

·       縮容難: 由于業(yè)務(wù)高峰期只是一段時(shí)間,我們真正需要額外計(jì)算資源的時(shí)間也就只有一段時(shí)間,或者多出來的業(yè)務(wù)并不是每時(shí)每刻的都在執(zhí)行,而是按照一定的時(shí)間間隔去執(zhí)行。如果不及時(shí)縮容,就造成了計(jì)算的不飽和,帶了對(duì)計(jì)算資源的浪費(fèi),增加了企業(yè)的成本開銷。而擴(kuò)容出來的節(jié)點(diǎn),由于已經(jīng)部署上了許多組件,縮容前需要預(yù)先退出這些組件,步驟繁瑣,容易出錯(cuò)。

·       彈不出: 用戶進(jìn)行擴(kuò)容時(shí),按照ECS粒度,買一批ECS節(jié)點(diǎn)加入到現(xiàn)有計(jì)算集群的資源池。購買的ECS規(guī)格往往較大,受云資源碎片化的影響,有時(shí)很難滿足用戶對(duì)一批大規(guī)格ECS資源的請(qǐng)求,導(dǎo)致計(jì)算資源彈不出,無法完成對(duì)集群的擴(kuò)容。

3. DLA Spark快速彈性方案

DLA團(tuán)隊(duì)將Serverless、云原生、Spark技術(shù)優(yōu)勢(shì)深度整合到一起,提供Serverless Spark產(chǎn)品,可以無縫連接用戶Hadoop集群,快捷穩(wěn)定地為傳統(tǒng)Hadoop集群增加彈性算力。下面我們將介紹DLA Serverless Spark是如何解決用戶上述痛點(diǎn)問題的。

·       免運(yùn)維的虛擬計(jì)算集群

如何快速給Hadoop集群加上彈性

上圖是傳統(tǒng)的Hadoop集群中的Spark與DLASpark的架構(gòu)對(duì)比。圖中左邊部分是傳統(tǒng)Spark集群,由多個(gè)ECS組成,集群內(nèi)部擁有一套完整的Spark管控,計(jì)算進(jìn)程和管控進(jìn)程部署在各個(gè)ECS上,每個(gè)集群的計(jì)算資源池相對(duì)固定,如果需要更多的計(jì)算資源則需要擴(kuò)容更多的計(jì)算節(jié)點(diǎn),需要縮容則需要關(guān)閉對(duì)應(yīng)ECS上的服務(wù),然后釋放ECS資源。

圖中右邊是DLA Spark,相對(duì)于傳統(tǒng)的集群模式,DLA Spark抽象出一個(gè)虛擬集群的概念,虛擬集群并沒有實(shí)際的計(jì)算資源,它只是承載用戶對(duì)作業(yè)進(jìn)行控制的一些配置,包括計(jì)算資源的配置、作業(yè)通用參數(shù)的配置等。創(chuàng)建虛擬集群不需要任何費(fèi)用,用戶簡(jiǎn)單地選擇虛擬集群內(nèi)存和CPU的上限后,即可快速的創(chuàng)建一個(gè)虛擬集群,并往虛擬集群提交作業(yè)。DLA Spark是多租戶化的,每個(gè)用戶可擁有多個(gè)自己的虛擬集群,無需用戶進(jìn)行運(yùn)維。

·       計(jì)算進(jìn)程級(jí)別的彈性粒度

DLA Spark基于AliyunKubernetes云原生技術(shù)深度定制, 實(shí)現(xiàn)了計(jì)算進(jìn)程級(jí)別的彈性粒度,可更高效地應(yīng)對(duì)云資源碎片化問題。用戶通過作業(yè)指定的資源規(guī)格彈性拉起計(jì)算進(jìn)程,計(jì)算進(jìn)程運(yùn)行安全容器中。安全容器是基于阿里云的底座ECS&ACK&ECI,與阿里云IAAS資源大池打通,本Region跨可用區(qū)資源調(diào)度,保障計(jì)算資源的供給, 支持1分鐘內(nèi)彈300個(gè)安全容器。

·       快速擴(kuò)縮容

由于DLASpark虛擬集群化的設(shè)計(jì),計(jì)算進(jìn)程在作業(yè)啟動(dòng)過程中動(dòng)態(tài)拉起,用戶可以很方便地對(duì)虛擬集群的規(guī)格進(jìn)行擴(kuò)縮容,只需要在控制臺(tái)上進(jìn)行資源配置即可。值得注意的是,虛擬集群中的計(jì)算進(jìn)程使用完畢后就會(huì)自動(dòng)釋放,無需用戶關(guān)心計(jì)算資源的生命周期。虛擬集群是按量付費(fèi),即只有作業(yè)真正的提交到虛擬集群運(yùn)行之后,才開始按照資源使用時(shí)間計(jì)費(fèi),作業(yè)運(yùn)行完畢即停止收費(fèi),不存在對(duì)計(jì)算資源的浪費(fèi)。

·       無縫打通用戶Hadoop集群

如何快速給Hadoop集群加上彈性

如上圖所示,DLA Spark可以通過掛載用戶VPC空間下的彈性網(wǎng)卡,無縫對(duì)接用戶自建Hadoop集群。DLA Spark的Driver和Executor運(yùn)行在安全容器中,該容器實(shí)例動(dòng)態(tài)掛載用戶VPC空間下的虛擬網(wǎng)卡,來訪問用戶VPC下的服務(wù)(如 HBase,Hive,HDFS等)。掛載了彈性網(wǎng)卡的容器實(shí)例就如同運(yùn)行在用戶自建Hadoop集群中的ECS實(shí)例一樣,網(wǎng)絡(luò)帶寬同樣是VPC內(nèi)網(wǎng)帶寬。虛擬網(wǎng)卡的生命周期跟Spark進(jìn)程的生命周期一致,作業(yè)結(jié)束后,所有網(wǎng)卡也會(huì)相應(yīng)釋放。

值得一提的是,彈性網(wǎng)卡,是一種免費(fèi)的技術(shù),用戶使用彈性網(wǎng)卡訪問Hadoop集群數(shù)據(jù)不需要花費(fèi)額外的費(fèi)用。打通用戶Hadoop集群配置簡(jiǎn)單,用戶運(yùn)行作業(yè)時(shí),如需為Serverless Spark計(jì)算進(jìn)程掛載虛擬網(wǎng)卡,只需要在作業(yè)配置中配置上屬于該VPC的安全組和虛擬交換機(jī)即可。更方便地,如果用戶某個(gè)ECS本來就可以訪問目標(biāo)數(shù)據(jù),那么讓DLA Spark配置該ECS所在的安全組和虛擬交換機(jī)即可。

4. DLA Spark的性價(jià)比優(yōu)勢(shì)

·       性能相當(dāng),資源利用率高

如何快速給Hadoop集群加上彈性

如上圖,我們通過運(yùn)行典型的ETL場(chǎng)景,1TB數(shù)據(jù)TeraSort,來開箱測(cè)試社區(qū)版Spark和DLA Serverless Spark的性能,需要說明的是,本測(cè)試中DLA Serverless Spark通過彈性網(wǎng)卡直接讀寫用戶Hadoop集群的數(shù)據(jù),社區(qū)版Spark部署在與Hadoop集群相同的ECS上。從上圖中可以看到,兩者性能基本持平。

由于DLASpark是按照計(jì)算進(jìn)程拉起的,運(yùn)行在安全容器中,用戶只需要關(guān)心作業(yè)進(jìn)程的規(guī)格和個(gè)數(shù)即可,拉起的資源全部用于DLA Spark的運(yùn)行。而自建Hadoop集群由于是ECS級(jí)別的,需要預(yù)留一定資源用于運(yùn)行NodeManager等組件,會(huì)存在一定的資源冗余。我們可以看到自建Hadoop集群要滿足Driver 需要4核16G,20個(gè)2核8G的Executor的配置需要購買6臺(tái)8核32G的ECS。因此相比之下DLA Spark的資源利用率更高。

·       快速彈性,節(jié)省用戶成本

如何快速給Hadoop集群加上彈性

一般而言,用戶的業(yè)務(wù)量是隨著時(shí)間變化的,當(dāng)自建Hadoop集群計(jì)算資源不足時(shí),用戶可以提交作業(yè)到虛擬集群中,快速拉起DLASpark進(jìn)行計(jì)算,當(dāng)業(yè)務(wù)低谷時(shí),虛擬機(jī)群停止接收作業(yè),不收取任何費(fèi)用。我們還是以上述TeraSort為例,用戶自建集群包月,DLA Spark按量付費(fèi)的情況。DLA Saprk比起自建Hadoop集群,一天運(yùn)行十次TeraSort時(shí),成本可節(jié)約72%,一天運(yùn)行三十次TeraSort時(shí),成本可節(jié)約16%。用戶可以將自建Hadoop集群與DLA Spark混合使用,在性能不降低的情況下做到對(duì)計(jì)算資源的快速彈性伸縮,降低用戶計(jì)算成本。

“如何快速給Hadoop集群加上彈性”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI