Spark 編程指南

2022-02-14 10:46 更新

概論

在高層中,每個(gè) Spark 應(yīng)用程序都由一個(gè)驅(qū)動(dòng)程序(driver programe)構(gòu)成,驅(qū)動(dòng)程序在集群上運(yùn)行用戶的 ?main ?函數(shù)來執(zhí)行各種各樣的并行操作(parallel operations)。Spark 的主要抽象是提供一個(gè)彈性分布式數(shù)據(jù)集(RDD),RDD 是指能橫跨集群所有節(jié)點(diǎn)進(jìn)行并行計(jì)算的分區(qū)元素集合。RDDs 從 Hadoop 的文件系統(tǒng)中的一個(gè)文件中創(chuàng)建而來(或其他 Hadoop 支持的文件系統(tǒng)),或者從一個(gè)已有的 Scala 集合轉(zhuǎn)換得到。用戶可以要求 Spark 將 RDD 持久化(persist)到內(nèi)存中,來讓它在并行計(jì)算中高效地重用。最后,RDDs 能在節(jié)點(diǎn)失敗中自動(dòng)地恢復(fù)過來。

Spark 的第二個(gè)抽象是共享變量(shared variables),共享變量能被運(yùn)行在并行計(jì)算中。默認(rèn)情況下,當(dāng) Spark 運(yùn)行一個(gè)并行函數(shù)時(shí),這個(gè)并行函數(shù)會(huì)作為一個(gè)任務(wù)集在不同的節(jié)點(diǎn)上運(yùn)行,它會(huì)把函數(shù)里使用的每個(gè)變量都復(fù)制搬運(yùn)到每個(gè)任務(wù)中。有時(shí),一個(gè)變量需要被共享到交叉任務(wù)中或驅(qū)動(dòng)程序和任務(wù)之間。Spark 支持 2 種類型的共享變量:廣播變量(broadcast variables),用來在所有節(jié)點(diǎn)的內(nèi)存中緩存一個(gè)值;累加器(accumulators),僅僅只能執(zhí)行“添加(added)”操作,例如:記數(shù)器(counters)和求和(sums)。

這個(gè)指南會(huì)在 Spark 支持的所有語言中演示它的每一個(gè)特征。非常簡(jiǎn)單地開始一個(gè) Spark 交互式 shell - ?bin/spark-shell ?開始一個(gè) Scala shell,或 ?bin/pyspark? 開始一個(gè) Python shell。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)