真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SparkCore的核心理論增強(qiáng)-創(chuàng)新互聯(lián)

1. spark的核心概念

 (1)Application

   表示應(yīng)用程序,包含一個(gè) Driver Program 和若干 Executor。(編寫的spark代碼)

在同德等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站制作、成都做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需設(shè)計(jì)網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),成都全網(wǎng)營(yíng)銷,外貿(mào)網(wǎng)站建設(shè),同德網(wǎng)站建設(shè)費(fèi)用合理。

 (2)Driver program

   Spark 中的 Driver 即運(yùn)行上述 Application 的 main()函數(shù)并且創(chuàng)建 SparkContext,其中創(chuàng)建 SparkContext 的目的是為了準(zhǔn)備 Spark 應(yīng)用程序的運(yùn)行環(huán)境。由 SparkContext 負(fù)責(zé)與 ClusterManager 通信,進(jìn)行資源的申請(qǐng),任務(wù)的分配和監(jiān)控等。程序執(zhí) 行完畢后關(guān)閉 SparkContext。

 (3)Cluster Manager

   在 Standalone 模式中即為 Master(主節(jié)點(diǎn)),控制整個(gè)集群,監(jiān)控 Worker。 在 YARN 模式中為資源管理器(resourcemanager)。

 (4)Spark Context

   整個(gè)應(yīng)用的上下文,控制應(yīng)用程序的生命周期,負(fù)責(zé)調(diào)度各個(gè)運(yùn)算資源, 協(xié)調(diào)各個(gè) Worker 上的 Executor。初始化的時(shí)候,會(huì)初始化 DAGScheduler 和 TaskScheduler 兩個(gè)核心組件。

 (5)RDD

   Spark 的基本計(jì)算單元,一組 RDD 可形成執(zhí)行的有向無環(huán)圖 RDD Graph。

 (6)DAGScheduler

   將application拆分成多個(gè)job,對(duì)于每一個(gè)job構(gòu)建成一個(gè)DAG,將這個(gè)DAG劃分成多個(gè)stage,最終把stage提交給TaskScheduler。

 (7)TaskScheduler

  將DAGScheduler提交過來的stage,拆分成多個(gè)task集合,然后將 TaskSet 提交給 Worker(集群)運(yùn)行,每個(gè) Executor 運(yùn)行什么 Task 就 是在此處分配的。

 (8)Worker

  集群中可以運(yùn)行 Application 代碼的節(jié)點(diǎn)。在 Standalone 模式中指的是通過 slave 文件配置的 worker 節(jié)點(diǎn),在 Spark on Yarn 模式中指的就是 NodeManager 節(jié)點(diǎn)。(即運(yùn)行Executor的節(jié)點(diǎn))

 (9)Executor

  某個(gè) Application 運(yùn)行在 Worker 節(jié)點(diǎn)上的一個(gè)進(jìn)程,該進(jìn)程負(fù)責(zé)運(yùn)行某些 task, 并且負(fù)責(zé)將數(shù)據(jù)存在內(nèi)存或者磁盤上。在 Spark on Yarn 模式下,其進(jìn)程名稱為 CoarseGrainedExecutorBackend,一個(gè) CoarseGrainedExecutorBackend 進(jìn)程有且僅有一個(gè) executor 對(duì)象,它負(fù)責(zé)將 Task 包裝成 taskRunner,并從線程池中抽取出一個(gè)空閑線程運(yùn)行 Task, 這樣,每個(gè) CoarseGrainedExecutorBackend 能并行運(yùn)行 Task 的數(shù)據(jù)就取決于分配給它的 CPU 的個(gè)數(shù)。

 (10)Stage

  每個(gè) Job 會(huì)被拆分很多組 Task,每組作為一個(gè) TaskSet,其名稱為 Stage

 (11)Job

包含多個(gè) Task 組成的并行計(jì)算,是由 Action 行為觸發(fā)的,觸發(fā)一次action,就是一個(gè)job

 (12)SparkEnv

  線程級(jí)別的上下文,存儲(chǔ)運(yùn)行時(shí)的重要組件的引用。SparkEnv 內(nèi)創(chuàng)建并包含 如下一些重要組件的引用:
   MapOutPutTracker:負(fù)責(zé) Shuffle 元信息的存儲(chǔ)。
   BroadcastManager:負(fù)責(zé)廣播變量的控制與元信息的存儲(chǔ)。
   MapOutPutTracker:負(fù)責(zé)存儲(chǔ)管理、創(chuàng)建和查找塊.
   MetricsSystem:監(jiān)控運(yùn)行時(shí)性能指標(biāo)信息。
   SparkConf:負(fù)責(zé)存儲(chǔ)配置信息。

2. spark的任務(wù)運(yùn)行流程

 (1)基本運(yùn)行流程:

Spark Core 的核心理論增強(qiáng)
第一步(構(gòu)建DAG):使用算子操作RDD進(jìn)行各種transformation 操作,最后通過action算子觸發(fā)spark的作業(yè)提交。提交后,spark會(huì)根據(jù)轉(zhuǎn)化過程中所產(chǎn)生的RDD之間依賴關(guān)系構(gòu)建DAG有向無環(huán)圖。
第二步(DAG的切割):DAG 切割主要根據(jù) RDD 的依賴是否為寬依賴來決定切割節(jié)點(diǎn),當(dāng)遇到寬依賴就將任務(wù)劃分 為一個(gè)新的調(diào)度階段(Stage)。每個(gè) Stage 中包含一個(gè)或多個(gè) Task。這些 Task 將形成任務(wù)集 (TaskSet),提交給底層調(diào)度器進(jìn)行調(diào)度運(yùn)行。
第三步(任務(wù)調(diào)度):每一個(gè) Spark 任務(wù)調(diào)度器只為一個(gè) SparkContext 實(shí)例服務(wù)。當(dāng)任務(wù)調(diào)度器收到任務(wù)集后負(fù)責(zé) 把任務(wù)集以 Task 任務(wù)的形式分發(fā)至 Worker 節(jié)點(diǎn)的 Executor 進(jìn)程中執(zhí)行,如果某個(gè)任務(wù)失敗, 任務(wù)調(diào)度器負(fù)責(zé)重新分配該任務(wù)的計(jì)算。
第四步(執(zhí)行任務(wù)):當(dāng) Executor 收到發(fā)送過來的任務(wù)后,將以多線程(會(huì)在啟動(dòng) executor 的時(shí)候就初始化好了 一個(gè)線程池)的方式執(zhí)行任務(wù)的計(jì)算,每個(gè)線程負(fù)責(zé)一個(gè)任務(wù),任務(wù)結(jié)束后會(huì)根據(jù)任務(wù)的類 型選擇相應(yīng)的返回方式將結(jié)果返回給任務(wù)調(diào)度器。(cluster manager)。

 (2)大體運(yùn)行流程:

Spark Core 的核心理論增強(qiáng)

  • 初始化sparkcontext,sparkcontext向資源管理器注冊(cè)并申請(qǐng)運(yùn)行executor資源
  • 資源管理器分配executor資源并啟動(dòng),Executor 運(yùn)行情況將 隨著心跳發(fā)送到資源管理器上
  • Executor向driver反向注冊(cè),告知driver資源準(zhǔn)備完畢,可以執(zhí)行任務(wù)
  • sparkcontext構(gòu)建RDD,然后通過DAGscheduler將RDD切分成多個(gè)stage,然后分裝成為taskset交給task schdeluder。
  • taskscheduler向worker中的executor發(fā)送task 執(zhí)行相應(yīng)的任務(wù)。

    補(bǔ)充:spark on yarn 中的client/cluster的區(qū)別?
    spark on yarn -- cluster
    Spark Core 的核心理論增強(qiáng)
    spark on yarn -- client
    Spark Core 的核心理論增強(qiáng)
    注意:在spark作業(yè)運(yùn)行的過程中,一般情況下,會(huì)有大量的數(shù)據(jù)在driver和集群中進(jìn)行交互,所有如果使用client模式,則會(huì)在程序運(yùn)行的過程中,造成大量的網(wǎng)絡(luò)數(shù)據(jù)傳輸,造成網(wǎng)絡(luò)流量的激增,而基于cluster模式,因?yàn)閐river和appmaster在一個(gè)節(jié)點(diǎn)上,driver本身就在集群中,所以數(shù)據(jù)的傳輸也是在集群內(nèi)部中完成,網(wǎng)絡(luò)傳輸壓力相對(duì)較小。

      (3)詳細(xì)運(yùn)行流程:

    Spark Core 的核心理論增強(qiáng)
    根據(jù)上圖的信息:
       - 啟動(dòng)spark集群,通過spark-shell啟動(dòng)spark集群中的相應(yīng)的master和worker。master是集群的管理者,清楚集群中的從節(jié)點(diǎn)的個(gè)數(shù)、從節(jié)點(diǎn)的資源情況,以及從節(jié)點(diǎn)是否存活。
       - worker節(jié)點(diǎn)的注冊(cè),當(dāng)worker進(jìn)程啟動(dòng)之后,向master進(jìn)程發(fā)送注冊(cè)消息,所以worker是一個(gè)基于AKKA actor的事件驅(qū)動(dòng)模型,master同樣也是。worker注冊(cè)成功之后,也會(huì)向master發(fā)送心跳,監(jiān)聽主節(jié)點(diǎn)是否存在,以及匯報(bào)心跳。
       -driver提交作業(yè):driver向spark集群提交作業(yè),就是向master提交作業(yè),注冊(cè)spark應(yīng)用需要的資源,說白了就是向master申請(qǐng)應(yīng)用程序運(yùn)行的資源。
       - master分配資源:當(dāng)driver提交作業(yè)請(qǐng)求之后,mater接收到相應(yīng)的請(qǐng)求,會(huì)向worker節(jié)點(diǎn)指派相應(yīng)的作業(yè)任務(wù),就是在worker節(jié)點(diǎn)中啟動(dòng)相應(yīng)的executor進(jìn)程,executor維護(hù)一個(gè)線程池,線程池中的線程是真正去執(zhí)行task任務(wù)。
       - worker啟動(dòng)executor:當(dāng)worker節(jié)點(diǎn)接收到master啟動(dòng)executor之后,會(huì)相應(yīng)的啟動(dòng)一個(gè)或者多個(gè)executor,并向master匯報(bào)啟動(dòng)成功信息,表示可以接收任務(wù)。
       - 向 driver的反向注冊(cè):當(dāng)worker節(jié)點(diǎn)啟動(dòng)executor成功之后,會(huì)向driver反向注冊(cè),告訴driver哪些executor可以接收任務(wù),執(zhí)行spark任務(wù)。
       - driver接收worker的注冊(cè):driver接收到worker的注冊(cè)信息之后,就初始化相應(yīng)的 executor_info信息,根據(jù)worker發(fā)送過來的executorid,可以確定,哪些executor對(duì)自己服務(wù)。
       - driver初始化sparkcontext:sparkcontext構(gòu)建RDD,然后通過DAGscheduler將RDD切分成多個(gè)stage,然后分裝成為taskset交給task schdeluder。
       - taskscheduler向worker中的executor發(fā)送task執(zhí)行相應(yīng)的任務(wù)
       - executor執(zhí)行任務(wù):當(dāng)executor進(jìn)程接收到了driver發(fā)送過來的taskset之后,進(jìn)行反序列化然后將這些task分裝到一個(gè)叫taskrunner的線程中,然后放入到本地的線程池中調(diào)度相應(yīng)的作業(yè)執(zhí)行。當(dāng)執(zhí)行完畢之后,將所得到的結(jié)果進(jìn)行落地(返回給driver/打印輸出/保存到本地/保存到hdfs...)

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


網(wǎng)站名稱:SparkCore的核心理論增強(qiáng)-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://weahome.cn/article/ghhps.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部