天天看點

靜态模式和統一模式_2|學習筆記

開發者學堂課程【大資料實時計算架構 Spark 快速入門:靜态模式和統一模式_2】學習筆記,與課程緊密聯系,讓使用者快速學習知識。

課程位址:

https://developer.aliyun.com/learning/course/100/detail/1735

靜态模式和統一模式_2

例子:

在叢集上執行某個任務時,作業的處理被劃分為幾個階段,每個階段又被劃分為任務。每個任務都是單獨安排的。

可以将作為執行器工作的每個 JVMs 視為一個任務執行槽池,每個執行器将給您spark.executor.core / spark.task.cpus 為你的任務提供執行槽位,總計為spark.executor.instances executor。這是一個例子。

叢集有 12 個節點運作 YARN 節點管理器,每個 64GB RAM 和 32 個 CPU 核心(16個實體核心超線程)。

這樣,在每個節點上,你可以啟動 2 個 executor,每個 executor 有 26GB 的RAM (留下一些 RAM 給系統程序,YARN NM 和 DataNode),每個 executor 有 12 個核心用于任務(留下一些核心給系統程序,YARN NM 和 DataNode)。

是以總的來說,你的叢集将處理 12 台機器,每台機器 2 個執行器*每個執行器 12 個核/每個任務 1 個核 288 個任務槽。這意味着您的 Spark 叢集将能夠并行運作288 個任務,進而利用該叢集上的幾乎所有資源。

1.6 對記憶體的改進:

靜态模式和統一模式_2|學習筆記

固定保留 300MB,預設總共 1024MB,1024MB-300MB 是 spark 使用的記憶體,User Memory 是 spark 的 25%,Spark Memory 是 75%,Storage Memory 和Execution Memory 各占一半。

各種配置:

spark,menory.useLegacyMode.

是否啟用 Spark 1.5 及之前使用的遺留記憶體管理模式。遺留模式将堆空間劃分為fixed-size 的區域,如果應用程式沒有調優,可能将導緻過度溢出。以下已棄用的記憶體片段配置不會被讀取,除非啟用 spark.shuffle, memoryFraction spark.storage.memoryFraction

spark.storage.unrollFraction

除此之外的等等配置,可在官網可見。

繼續閱讀