react網(wǎng)站開發(fā)介紹東莞seo項目優(yōu)化方法
什么是“彈性”?
一般對于分布式系統(tǒng),“彈性”指的是可以根據(jù)計算規(guī)模進(jìn)行動態(tài)伸縮的特性。當(dāng)計算量增長時,可以動態(tài)增加資源來滿足計算需求,而當(dāng)計算量減少時,又可以降低資源配置來節(jié)約成本。
參考:什么是彈性伸縮ess_彈性伸縮(ESS)-阿里云幫助中心
我們在看一下RDD定義:Resilient Distributed Datasets,譯為彈性分布式數(shù)據(jù)集,是一種基于集群內(nèi)存計算的一種抽象。?
所以從定義上看,RDD也是基于分布式系統(tǒng)的,主要是通過集群的內(nèi)存資源來進(jìn)行數(shù)據(jù)緩存與計算的,所以RDD的彈性是基于數(shù)據(jù)量的變化,可以動態(tài)的增加或者減少相應(yīng)的資源(比如內(nèi)存)來滿足計算需求。
RDD的彈性體現(xiàn)
RDD的Partition和Partitioner是彈性的基礎(chǔ)
Map端input split決定了Map端的分區(qū)數(shù),分區(qū)數(shù)進(jìn)一步?jīng)Q定了map階段task的數(shù)量,Shuffle的Map階段才使用的分區(qū)器partitioner,又決定了reduce階段task的數(shù)量。
分區(qū)的動態(tài)可調(diào)是彈性的體現(xiàn)
可以根據(jù)數(shù)據(jù)量的大小,通過repartition、coalesce算子來增加或者減少分區(qū)數(shù),來決定Task數(shù)的多少。
對應(yīng)的計算資源調(diào)整,可以通過提交任務(wù)時的參數(shù)來調(diào)整,也可以設(shè)置成動態(tài)調(diào)整方式。
容錯屬不屬于彈性?
容錯是用來保障穩(wěn)定性的,劃分到“高可用”更合適,跟彈性沒有太大關(guān)系。
比如:根據(jù)血緣對RDD進(jìn)行出錯后的恢復(fù),Stage、Task失敗的重試等。
主從架構(gòu)屬不屬于彈性?
比如BlockManagerMaster和BlockManager是主從架構(gòu)的,這個屬于分布式系統(tǒng)的基本架構(gòu)設(shè)計,屬于系統(tǒng)層面的彈性,不屬于RDD層面的彈性。