Spark應用程序由一個司機過程和一套遺囑執行人流程。驅動進程運行你的main()函數,位於集群中的一個節點上,負責三件事:維護Spark應用程序的信息;響應的:響應用戶的程序或輸入的;以及跨執行程序(臨時定義)分析、分發和調度工作。驅動進程是絕對必要的——它是Spark應用程序的核心,在應用程序的生命周期內維護所有相關信息。的執行人負責實際執行驅動程序分配給它們的工作。這意味著,每個執行程序隻負責兩件事:執行驅動程序分配給它的代碼,並將該執行程序上的計算狀態報告給驅動程序節點。集群管理器控製物理機器,並為Spark Applications分配資源。這可以是幾個核心集群管理器之一:Spark的獨立集群管理器、YARN或Mesos。這意味著集群中可以同時運行多個Spark應用程序。我們將在本書的第四部分:生產應用中更深入地討論集群管理器。在前麵的插圖中,我們看到左邊是我們的驅動程序,右邊是四個執行程序。在這個圖中,我們去掉了集群節點的概念。用戶可以通過配置指定每個節點上應該有多少個執行程序。(glossary-cta)