這篇文章主要講解了“Spark的運(yùn)行基本流程及其特點(diǎn)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Spark的運(yùn)行基本流程及其特點(diǎn)”吧!
成都創(chuàng)新互聯(lián)公司專(zhuān)注于廬山企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城網(wǎng)站制作。廬山網(wǎng)站建設(shè)公司,為廬山等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站制作,專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)
1、Spark 運(yùn)行基本流程:
(1)構(gòu)建 Spark Application 的運(yùn)行環(huán)境(啟動(dòng) SparkContext),SparkContext 向資源管理器(可以是 Standalone、Mesos 或 YARN)注冊(cè)并申請(qǐng)運(yùn)行 Executor 資源。
(2)資源管理器分配 Executor 資源并啟動(dòng) Executor,Executor 運(yùn)行情況將隨著心跳發(fā)送到資源管理器上。
(3)SparkContext 構(gòu)建成 DAG 圖,將 DAG 圖分解成 Stage,并把 Taskset發(fā)送給 Task Scheduler。Executor 向 SparkContext 申請(qǐng) Task,Task Scheduler 將Task 發(fā)放給 Executor 運(yùn)行同時(shí) SparkContext 將應(yīng)用程序代碼發(fā)放給 Executor。
(4)Task 在 Executor 上運(yùn)行,運(yùn)行完畢釋放所有資源。
2、Spark 運(yùn)行架構(gòu)的特點(diǎn):
(1)每個(gè) Application 獲取專(zhuān)屬的 executor 進(jìn)程,該進(jìn)程在 Application 期間一直駐留,并以多線程方式運(yùn)行 tasks。
(2)Spark 任務(wù)與資源管理器無(wú)關(guān),只要能夠獲取 executor 進(jìn)程,并能保持相互通信就可以了。
(3)提交 SparkContext 的 Client 應(yīng)該靠近 Worker 節(jié)點(diǎn)(運(yùn)行 Executor 的節(jié)點(diǎn)),最好是在同一個(gè) Rack 里,因?yàn)?Spark 程序運(yùn)行過(guò)程中SparkContext 和Executor 之間有大量的信息交換;如果想在遠(yuǎn)程集群中運(yùn)行,最好使用 RPC 將SparkContext 提交給集群,不要遠(yuǎn)離 Worker 運(yùn)行 SparkContext。
(4)Task 采用了數(shù)據(jù)本地性和推測(cè)執(zhí)行的優(yōu)化機(jī)制。
感謝各位的閱讀,以上就是“Spark的運(yùn)行基本流程及其特點(diǎn)”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Spark的運(yùn)行基本流程及其特點(diǎn)這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!