Spark-core(核心)的基本介绍
一、Spark Core提供Spark最基礎(chǔ)與最核心的功能,主要包括以下功能:
(1)SparkContext:
通常而言,Driver Application的執(zhí)行與輸出都是通過SparkContext來完成的。在正式提交Application之前,首先需要初始化SparkContext。SparkContext隱藏了網(wǎng)絡(luò)通信、分布式部署、消息通信、存儲能力、計算能力、緩存、測量系統(tǒng)、文件服務(wù)、Web服務(wù)等內(nèi)容,應(yīng)用程序開發(fā)者只需要使用SparkContext提供的API完成功能開發(fā)。SparkContext內(nèi)置的DAGScheduler負責(zé)創(chuàng)建Job,將DAG中的RDD劃分到不同的Stage,提交Stage等功能。內(nèi)置的TaskScheduler負責(zé)資源的申請,任務(wù)的提交及請求集群對任務(wù)的調(diào)度等工作。
(2)存儲體系:
Spark優(yōu)先考慮使用各節(jié)點的內(nèi)存作為存儲,當(dāng)內(nèi)存不足時才會考慮使用磁盤,這極大地減少了磁盤IO,提升了任務(wù)執(zhí)行的效率,使得Spark適用于實時計算、流式計算等場景。此外,Spark還提供了以內(nèi)存為中心的高容錯的分布式文件系統(tǒng)Tachyon供用戶進行選擇。Tachyon能夠為Spark提供可靠的內(nèi)存級的文件共享服務(wù)。
(3)計算引擎:
計算引擎由SparkContext中的DAGScheduler、RDD以及具體節(jié)點上的Executor負責(zé)執(zhí)行的Map和Reduce任務(wù)組成。DAGScheduler和RDD雖然位于SparkContext內(nèi)部,但是在任務(wù)正式提交與執(zhí)行之前會將Job中的RDD組織成有向無環(huán)圖(DAG),并對Stage進行劃分,決定了任務(wù)執(zhí)行階段任務(wù)的數(shù)量、迭代計算、shuffle等過程。
(4)部署模式:
由于單節(jié)點不足以提供足夠的存儲和計算能力,所以作為大數(shù)據(jù)處理的Spark在SparkContext的TaskScheduler組件中提供了對Standalone部署模式的實現(xiàn)和Yarn、Mesos等分布式資源管理系統(tǒng)的支持。通過使用Standalone、Yarn、Mesos等部署模式為Task分配計算資源,提高任務(wù)的并發(fā)執(zhí)行效率。
二、Spark的幾大子框架包括:
(1)Spark SQL:
首先使用SQL語句解析器(SqlParser)將SQL轉(zhuǎn)換為語法樹(Tree),并且使用規(guī)則執(zhí)行器(RuleExecutor)將一系列規(guī)則(Rule)應(yīng)用到語法樹,最終生成物理執(zhí)行計劃并執(zhí)行。其中,規(guī)則執(zhí)行器包括語法分析器(Analyzer)和優(yōu)化器(Optimizer)。
(2)Spark Streaming:
用于流式計算。Spark Streaming支持Kafka、Flume、Twitter、MQTT、ZeroMQ、Kinesis和簡單的TCP套接字等多種數(shù)據(jù)輸入源。輸入流接收器(Receiver)負責(zé)接入數(shù)據(jù),是接入數(shù)據(jù)流的接口規(guī)范。Dstream是Spark Streaming中所有數(shù)據(jù)流的抽象,Dstream可以被組織為Dstream Graph。Dstream本質(zhì)上由一系列連續(xù)的RDD組成。
(3)GraphX:
Spark提供的分布式圖計算框架。GraphX主要遵循整體同步并行(bulk Synchronous parallel,BSP)計算模式下的Pregel模型實現(xiàn)。GraphX提供了對圖的抽象Graph,Graph由頂點(Vertex),邊(Edge)及繼承了Edge的EdgeTriplet三種結(jié)構(gòu)組成。GraphX目前已經(jīng)封裝了最短路徑,網(wǎng)頁排名,連接組件,三角關(guān)系統(tǒng)計等算法的實現(xiàn),用戶可以選擇使用。
(4)MLlib:
Spark提供的機器學(xué)習(xí)框架。機器學(xué)習(xí)是一門設(shè)計概率論、統(tǒng)計學(xué)、逼近論、凸分析、算法復(fù)雜度理論等多領(lǐng)域的交學(xué)科。MLlib目前已經(jīng)提供了基礎(chǔ)統(tǒng)計、分析、回歸、決策樹、隨機森林、樸素貝葉斯、保序回歸、協(xié)同過濾、聚類、維數(shù)縮減特征提取與轉(zhuǎn)型、頻繁模式挖掘、預(yù)言模型標記語言、管道等多種數(shù)理統(tǒng)計、概率論、數(shù)據(jù)挖掘方面的數(shù)學(xué)算法。
總結(jié)
以上是生活随笔為你收集整理的Spark-core(核心)的基本介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机网络资料篇(二)——快速理解网络协
- 下一篇: OpenCV与Qt:IplImage转换