Spark入门-了解Spark核心概念
在本文中我們將從Spark集群角度和程序應用的角度來對相關概念進行了解
一. 站在集群角度
1.1 Master
Spark 特有資源調度系統的 Leader。掌管著整個集群的資源信息,類似于 Yarn 框架中的 ResourceManager,主要功能:
1.2 Worker
Spark 特有資源調度系統的 Slave,有多個。每個 Slave 掌管著所在節點的資源信息,類似于 Yarn 框架中的 NodeManager,主要功能:
二. 站在應用程序角度
2.1 driver program(驅動程序)
每個 Spark 應用都由一個驅動器程序(driver program)來發起集群上的各種并行操作。驅動器程序包含應用的 main 函數,并且定義了集群上的分布式數據集,還對這些分布式數據集應用了相關操作。
??驅動程序包含 Spark 應用程序中的主函數, 定義了分布式數據集以應用在集群中.
驅動器程序通過一個 SparkContext 對象來訪問 Spark。這個對象代表對計算集群的一個連接。
使用Scala初始化SparkContext
import org.apache.spark.SparkConf import org.apache.spark.SparkContext import org.apache.spark.SparkContext._val conf = new SparkConf().setAppName("wordCount") val sc = new SparkContext(conf)2.2 executor(執行器)
SparkContext對象一旦成功連接到集群管理器, 就可以獲取到集群中每個節點上的執行器(executor).
??執行器是一個進程(進程名: ExecutorBackend, 運行在 Worker 節點上), 用來執行計算和為應用程序存儲數據.
??然后, Spark 會發送應用程序代碼(比如:jar包)到每個執行器. 最后, SparkContext對象發送任務到執行器開始執行程序.
2.3 RDDs(Resilient Distributed Dataset) 彈性分布式數據集
一旦擁有了SparkContext對象, 就可以使用它來創建 RDD 了. 在前面的例子中, 我們調用sc.textFile(…)來創建了一個 RDD, 表示文件中的每一行文本. 我們可以對這些文本行運行各種各樣的操作.
2.4 cluster managers(集群管理器)
為了在一個 Spark 集群上運行計算, SparkContext對象可以連接到幾種集群管理器(Spark’s own standalone cluster manager, Mesos or YARN).
??集群管理器負責跨應用程序分配資源.
總結
以上是生活随笔為你收集整理的Spark入门-了解Spark核心概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RESETLOGS
- 下一篇: 日常问题——hadoop启动后发现nam