原创 CacheManager運行原理流程圖和源碼詳解

一:CacheManager分析: 1,CacheManager管理的是緩存,而緩存可以是基於內存的緩存,也可以是基於磁盤的緩存; 2,CacheManager需要通過BlockManager來操作數據; 3.當Task運行的

原创 CheckPoint運行原理

一、Checkpoint到底是什麼? 1,Spark在生產環境下經常會面臨Tranformations的RDD非常多(例如一個Job中包含1萬個RDD)或者具體Tranformation產生的RDD本身計算特別複雜和耗時(例如

原创 Spark天堂之門

1, Spark程序在運行的時候分爲Driver和Executors兩部分; 2, Spark的程序編寫是基於SparkContext的,具體來說包含兩方面: a)Spark編程的核心基礎---RDD,是由SparkCont

原创 Spark RPC

一:Spark 1.6RPC解析 1,Spark 1.6推出RpcEnv,RPCEndpoint,PRCEndpointRef爲核心的新型架構下的RPC通信方式,就目前的實現而言,其底層依舊是Akka; 2,Akka是基於Acto

原创 Spark性能優化第二季

一:Task性能優化 1,慢任務(數據傾斜或機器故障)的性能優化:可以考慮減少每個partition處理的數據量,同時建議開啓spark.speculation; 2,儘量減少Shuffle,例如我們要減少groupByKey的操

原创 Spark Runtime內幕

一 再論spark集羣部署 1.從spark runtime的角度來講有五大核心對象:master,worker,executor,driver,coarseGrainedExecutorBackend; 2.Spark在做集羣分

原创 Task執行內幕與結果處理解密

1.當Driver中的CoarseGrainedSchedulerBackend給CoarseGrainedExecutorBackend發送LaunchTask之後,CoarseGrainedExecutorBackend在

原创 TaskScheduler內幕天機:Spark shell案例,TaskScheduler和SchedulerBackend、FIFO與FAIR、Task運行時本地性算法詳解

TaskSchedulerBackend與SchedulerBackend FIFO與FAIR兩種調度模式 Task數據本地性資源的分配 一、TaskScheduler運行過程(Spark-shell角度) 1.啓動Spar

原创 BlockManager初始化和註冊解密、BlockManagerMaster工作解密、BlockTransferService解密、本地數據讀寫解密、遠程數據讀寫解密

1. BlockManager的註冊和初始化 2. BlockManager裏面的重要函數詳細介紹 一:BlockManager初始化 1. BlockManager的實例對象調用initializes的時

原创 Spark性能優化第一季

一:Spark性能優化核心基石 1, Spark是採用Master-Slaves的模式進行資源管理和任務執行的管理: a) 資源管理:Master-Workers,在一臺機器上可以有多個Workers; b) 任務執行:Drive

原创 Stage劃分和Task最佳位置算法

1.Stage劃分算法解密 Spark Application中可以因爲不同的Action觸發衆多的Job,也就是說一個Application鍾可以有很多的Job,每個Job是由一個或者多個Stage構成的,後面的Stage依賴

原创 Master的註冊機制和狀態管理解密

一 、master對其他組件註冊的處理 1, master接受註冊的對象主要就是:driver,application,worker;需要補充說明executor不會註冊給master,executor是註冊給driver中的s

原创 Master HA

一:Master HA解析 1, 生產環境下一般採用ZooKeeper做HA,且建議爲3臺Master,ZooKeeper會自動化管理Masters的切換; 2, 採用ZooKeeper做HA的時候,ZooKeeper會負責保存整

原创 Spark Worker原理和源碼剖析解密

1.Spark源碼剖析 2.Worker啓動Driver源碼 3.Worker啓動Executor源碼 4.Worker與Master交互 一:worker啓動driver內幕和流程機制 1, Cluster中的Dr

原创 Spark資源調度

1.分配Driver(Cluster,只有在cluster模式在master才能爲dirver分配資源) 2.爲Application分配資源 3.兩種不同的資源分配方式 4.spark資源調度方式 一:任務調度與資源調度的