首頁(yè)常見(jiàn)問(wèn)題正文

Spark的數(shù)據(jù)本地性有哪幾種?

更新時(shí)間:2023-10-09 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  Spark的數(shù)據(jù)本地性指的是數(shù)據(jù)與計(jì)算任務(wù)的位置關(guān)系。Spark的數(shù)據(jù)本地性有下面幾種:

  1.PROCESS_LOCAL(進(jìn)程本地性):

  數(shù)據(jù)的位置與計(jì)算任務(wù)在同一個(gè)JVM進(jìn)程中。這是最好的數(shù)據(jù)本地性級(jí)別,因?yàn)樗苊饬司W(wǎng)絡(luò)傳輸?shù)拈_(kāi)銷。

  2.NODE_LOCAL(節(jié)點(diǎn)本地性):

  數(shù)據(jù)的位置與計(jì)算任務(wù)在同一個(gè)節(jié)點(diǎn)上,但可能不在同一個(gè)JVM進(jìn)程中。雖然這比PROCESS_LOCAL稍差,因?yàn)閿?shù)據(jù)需要在同一節(jié)點(diǎn)內(nèi)的不同進(jìn)程之間傳輸,但它仍然避免了跨節(jié)點(diǎn)網(wǎng)絡(luò)傳輸?shù)拈_(kāi)銷。

  3.NO_PREF(無(wú)偏好):

  對(duì)數(shù)據(jù)的位置沒(méi)有任何偏好,Spark調(diào)度器可以在任何地方調(diào)度計(jì)算任務(wù)。這是最差的數(shù)據(jù)本地性級(jí)別,因?yàn)閿?shù)據(jù)需要在網(wǎng)絡(luò)中傳輸,從而增加開(kāi)銷。

  4.RACK_LOCAL(機(jī)架本地性):

  數(shù)據(jù)的位置與計(jì)算任務(wù)在同一個(gè)機(jī)架內(nèi),但可能在不同的節(jié)點(diǎn)上。這比NODE_LOCAL稍差,因?yàn)閿?shù)據(jù)需要在同一機(jī)架內(nèi)的不同節(jié)點(diǎn)之間傳輸。

  5.ANY(任意):

  對(duì)數(shù)據(jù)的位置沒(méi)有任何限制,Spark調(diào)度器可以在任何地方調(diào)度計(jì)算任務(wù)。這比RACK_LOCAL稍差,因?yàn)閿?shù)據(jù)可能在廣泛的網(wǎng)絡(luò)中傳輸。

  通常情況下,Spark會(huì)盡量利用好的數(shù)據(jù)本地性來(lái)減少網(wǎng)絡(luò)傳輸開(kāi)銷,從而提高性能。但是,當(dāng)數(shù)據(jù)本地性達(dá)不到要求時(shí),Spark也會(huì)根據(jù)實(shí)際情況選擇次優(yōu)的策略。

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!