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