Running Spark

Spark

RDD.png
MAINSPARK COMPONENTS.png

MapReduce's shortcomings

盡管Hadoop是當今大數(shù)據(jù)革命的基礎(chǔ),并且得到了積極的使用和維護,但它仍然存在缺點,它們主要與MapReduce組件有關(guān)。 MapReduce作業(yè)結(jié)果需要存儲在HDFS中才能被其他作業(yè)使用。 出于這個原因,MapReduce在迭代算法中本身就很糟糕。

此外,許多類型的問題都不容易適應(yīng)MapReduce的兩步范式,并且將每個問題分解為一系列這兩個操作可能很困難。

Spark集群是一組互連的進程,通常在不同的機器上以分布式方式運行。
Spark運行的主要集群類型是YARN,Mesos和Spark獨立。
另外兩個運行時選項,本地模式local mode和本地集群模式local cluster mode,盡管設(shè)置Spark的最簡單,最快捷的方法主要用于測試目的。 local mode是在單個計算機上運行的偽集群(pseudo-cluster),本地集群模式是Spark獨立集群(spark standalone cluster),也僅限于單個計算機。

描述適用于所有Spark集群類型的Spark運行時體系結(jié)構(gòu)的常見元素。
例如,驅(qū)動程序(driver)和執(zhí)行程序(executor process)進程以及Spark上下文(spark context)和調(diào)度程序(scheduker objects)對象對所有Spark運行時模式都是通用的。
作業(yè)(jobs scheduling)和資源調(diào)度(resource scheduling)在所有集群類型上的功能也類似,Spark Web UI的用法和配置也用于監(jiān)視Spark作業(yè)的執(zhí)行。(monitor the exexution of spark's jobs)

spark-cluster-deploy

executor和driver進程的物理位置取決于集群類型及其配置。 例如,其中一些進程可以共享一臺物理機器,或者它們都可以運行在不同的物理機器上。 上圖僅顯示了集群部署模式中的邏輯組件。

CLIENT-PROCESS COMPONENT

client process啟動驅(qū)動程序(driver program)。 client process可以是用于運行應(yīng)用程序的spark-submit腳本,spark-shell腳本或使用Spark API的自定義應(yīng)用程序。
client process為Spark應(yīng)用程序準備class path和所有configuration選項。 它還將應(yīng)用程序參數(shù)(如果有)傳遞給在driver中運行的應(yīng)用程序。

THE DRIVER COMPONENT

driver program 安排并見識spark application的執(zhí)行,每個Spark應(yīng)用程序總有一個driver,driver和其子組件(spark context and scheduler)主要負責

  • 從cluster managers 請求cpu資源和內(nèi)存
  • 將應(yīng)用程序按邏輯分解為階段(stages)和任務(wù)(tasks)
  • 將tasks發(fā)送給executor
  • 收集結(jié)果

cluster-deploy mode


spark-cluster-deploy.png

在cluster-deploy模式下,driver進程在集群中作為單獨的JVM進程運行,并且管理集群資源(主要是JVM堆內(nèi)存)。

client-deploy mode


spark-client-deploy.png

在client-deploy模式下,driver在客戶端的JVM進程中運行,并與集群管理的執(zhí)行程序進行通信。

THE EXECUTORS

executor是jvm進程,接受來自driver的tasks,執(zhí)行這tasks,并將結(jié)果返回給driver

上兩張圖的示例driver只使用兩個executor,可以更多,這里只是示例

每個executor有多個任務(wù)槽,用于并行執(zhí)行tasks,可以將任務(wù)槽的數(shù)量設(shè)置為cpu內(nèi)核數(shù)量的2~3倍,task實現(xiàn)為線程,不必與機器上的物理CPU內(nèi)核數(shù)相對應(yīng)

CREATION OF THE SPARK CONTEXT

一旦driver啟動,它將啟動并配置SparkContext實例,運行spark-shell時,shell就是driver,shell的上下文已經(jīng)預(yù)先配置并可用作sc變量,通過

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 書上說全世界都不知道誰在等誰,管春在等毛毛。而我在等你。
    山前別相見閱讀 162評論 0 0

友情鏈接更多精彩內(nèi)容