天天看點

《深入了解Spark:核心思想與源碼分析》——3.1節SparkContext概述

本節書摘來自華章社群《深入了解spark:核心思想與源碼分析》一書中的第3章,第3.1節sparkcontext概述,作者耿嘉安,更多章節内容可以通路雲栖社群“華章社群”公衆号檢視

3.1 sparkcontext概述

spark driver用于送出使用者應用程式,實際可以看作spark的用戶端。了解spark driver的初始化,有助于讀者了解使用者應用程式在用戶端的處理過程。

spark driver的初始化始終圍繞着sparkcontext的初始化。sparkcontext可以算得上是所有spark應用程式的發動機引擎,轎車要想跑起來,發動機首先要啟動。sparkcontext初始化完畢,才能向spark叢集送出任務。在平坦的公路上,發動機隻需以較低的轉速、較低的功率就可以遊刃有餘;在山區,你可能需要一台能夠提供大功率的發動機才能滿足你的需求。這些參數都是通過駕駛員操作油門、檔位等傳送給發動機的,而sparkcontext的配置參數則由sparkconf負責,sparkconf就是你的操作面闆。

sparkconf的構造很簡單,主要是通過concurrenthashmap來維護各種spark的配置屬性。sparkconf代碼結構見代碼清單3-1。spark的配置屬性都是以“spark.”開頭的字元串。

代碼清單3-1 sparkconf代碼結構

從上面校驗的代碼看到必須指定屬性spark.master 和spark.app.name,否則會抛出異常,結束初始化過程。spark.master用于設定部署模式,spark.app.name用于指定應用程式名稱。

繼續閱讀