2019-12-09 Spark的了解

https://ww.cnblogs.com/qingyunzong/p/8886338.html

Spark簡(jiǎn)介

Apache Spark是用于大規(guī)模數(shù)據(jù)處理的統(tǒng)一分析引擎;
是一個(gè)實(shí)現(xiàn)快速通用的集群計(jì)算平臺(tái),是由加州大學(xué)伯克利分校AMP實(shí)驗(yàn)室 開發(fā)的通用內(nèi)存并行計(jì)算框架,用來構(gòu)建大型的、低延遲的數(shù)據(jù)分析應(yīng)用程序。
它擴(kuò)展了廣泛使用的MapReduce計(jì)算模型。高效的支撐更多計(jì)算模式,包括交互式查詢和流處理。
spark的一個(gè)主要特點(diǎn)是能夠在內(nèi)存中進(jìn)行計(jì)算,及時(shí)依賴磁盤進(jìn)行復(fù)雜的運(yùn)算,Spark依然比MapReduce更加高效。

Spark的優(yōu)點(diǎn)

中間結(jié)果輸出::基于MapReduce的計(jì)算引擎通常會(huì)將中間結(jié)果輸出到磁盤上,進(jìn)行存儲(chǔ)和容錯(cuò)。出于任務(wù)管道承接的,考慮,當(dāng)一些查詢翻譯到MapReduce任務(wù)時(shí),往往會(huì)產(chǎn)生多個(gè)Stage,而這些串聯(lián)的Stage又依賴于底層文件系統(tǒng)(如HDFS)來存儲(chǔ)每一個(gè)Stage的輸出結(jié)果。
Spark是MapReduce的替代方案,而且兼容HDFS、Hive,可融入Hadoop的生態(tài)系統(tǒng),以彌補(bǔ)MapReduce的不足。

Spark四大特性

1、高效性:相比Hadooop,運(yùn)行速度提升100倍。

Apache Spark使用最先進(jìn)的DAG(有向無環(huán)圖)調(diào)度程序,查詢優(yōu)化程序和物理執(zhí)行引擎,實(shí)現(xiàn)批量和流式數(shù)據(jù)的高性能。

2、易用性:Spark支持Java、Python和Scala的API,還支持超過80種高級(jí)算法,使用戶可以快速構(gòu)建不同的應(yīng)用。而且Spark支持交互式的Python和Scala的shell,可以非常方便地在這些shell中使用Spark集群來驗(yàn)證解決問題的方法。
df = spark.read.json("logs.json")
df.where("age > 21").select("name.first").show()
'''Spark's Python DataFrame API
Read JSON files with automatic schema inference'''

3、通用性:Spark提供了統(tǒng)一的解決方案。Spark可以用于批處理、交互式查詢(Spark SQL)、實(shí)時(shí)流處理(Spark Streaming)、機(jī)器學(xué)習(xí)(Spark MLlib)和圖計(jì)算(GraphX)。這些不同類型的處理都可以在同一個(gè)應(yīng)用中無縫使用。Spark統(tǒng)一的解決方案非常具有吸引力,畢竟任何公司都想用統(tǒng)一的平臺(tái)去處理遇到的問題,減少開發(fā)和維護(hù)的人力成本和部署平臺(tái)的物力成本。

4、兼容性:Spark可以非常方便地與其他的開源產(chǎn)品進(jìn)行融合。比如,Spark可以使用Hadoop的YARN和Apache Mesos作為它的資源管理和調(diào)度器,并且可以處理所有Hadoop支持的數(shù)據(jù),包括HDFS、HBase和Cassandra等。這對(duì)于已經(jīng)部署Hadoop集群的用戶特別重要,因?yàn)椴恍枰鋈魏螖?shù)據(jù)遷移就可以使用Spark的強(qiáng)大處理能力。Spark也可以不依賴于第三方的資源管理和調(diào)度器,它實(shí)現(xiàn)了Standalone作為其內(nèi)置的資源管理和調(diào)度框架,這樣進(jìn)一步降低了Spark的使用門檻,使得所有人都可以非常容易地部署和使用Spark。此外,Spark還提供了在EC2上部署Standalone的Spark集群的工具。

Spark構(gòu)成

SparkCore:

將分布式數(shù)據(jù)抽象為彈性分布式數(shù)據(jù)集(RDD),實(shí)現(xiàn)了應(yīng)用任務(wù)調(diào)度、RPC、序列化和壓縮,并為運(yùn)行在其上的上層組件提供API。

SparkSql:

Spark Sql 是Spark來操作結(jié)構(gòu)化數(shù)據(jù)的程序包,可以讓我使用SQL語句的方式來查詢數(shù)據(jù),Spark支持 多種數(shù)據(jù)源,包含Hive表,parquest以及JSON等內(nèi)容。

SparkStreaming:

是Spark提供的實(shí)時(shí)數(shù)據(jù)進(jìn)行流式計(jì)算的組件。

MLlib:

提供常用機(jī)器學(xué)習(xí)算法的實(shí)現(xiàn)庫。

GraphX:

提供一個(gè)分布式圖計(jì)算框架,能高效進(jìn)行圖計(jì)算。

BlinkDB:

用于在海量數(shù)據(jù)上進(jìn)行交互式SQL的近似查詢引擎。

Tachyon:

以內(nèi)存為中心高容錯(cuò)的的分布式文件系統(tǒng)。


Spark架構(gòu)圖


Cluster Manager:在standalone模式中即為Master主節(jié)點(diǎn),控制整個(gè)集群,監(jiān)控worker。在YARN模式中為資源管理器
Worker節(jié)點(diǎn):從節(jié)點(diǎn),負(fù)責(zé)控制計(jì)算節(jié)點(diǎn),啟動(dòng)Executor或者Driver。
Driver: 運(yùn)行Application 的main()函數(shù)
Executor:執(zhí)行器,是為某個(gè)Application運(yùn)行在worker node上的一個(gè)進(jìn)程

Spark的linux安裝

https://blog.csdn.net/weixin_33754065/article/details/91464979

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容