spark是一個(gè)用于大規(guī)模數(shù)據(jù)處理的統(tǒng)一計(jì)算引擎。適用于各種各樣原先需要多種不同的分布式平臺處理的場景,包括批處理、迭代計(jì)算、交互式查詢、流處理。通過統(tǒng)一的框架將各種處理流程整合到一起。
創(chuàng)新互聯(lián)專注于改則網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供改則營銷型網(wǎng)站建設(shè),改則網(wǎng)站制作、改則網(wǎng)頁設(shè)計(jì)、改則網(wǎng)站官網(wǎng)定制、微信小程序服務(wù),打造改則網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供改則網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。spark特性
spark通過使用先進(jìn)的DAG調(diào)度器、查詢優(yōu)化器和物理執(zhí)行引擎,可以高性能地進(jìn)行批量及流式處理。使用邏輯回歸算法進(jìn)行迭代計(jì)算,spark比hadoop速度快100多倍。
spark支持多種編程語言,比如Java、Scala、Python、R及SQL。
spark提供了超過80多個(gè)高級算子操作,可以很便捷地構(gòu)建并行計(jì)算應(yīng)用。
spark構(gòu)建了一個(gè)完善的生態(tài)棧,將批量計(jì)算、交互式計(jì)算、流式計(jì)算、機(jī)器學(xué)習(xí)及圖計(jì)算整合到一個(gè)統(tǒng)一的框架體系中。
spark可以運(yùn)行在standalone、YARN、Mesos、Kubernetes及EC2多種調(diào)度平臺上。
另外,spark可以接入多種數(shù)據(jù)源,比如HDFS、Alluxio、HBase、Cassandra、Hive及本地文件。
spark生態(tài)棧
Spark Core
Spark Core實(shí)現(xiàn)了Spark的基本功能,包括任務(wù)調(diào)度、內(nèi)存管理、錯(cuò)誤恢復(fù)、與存儲系統(tǒng)交互等模塊。Spark Core還包含了對彈性分布式數(shù)據(jù)集(resilient distributed dataset,簡稱RDD)的API定義。RDD表示分布在多個(gè)計(jì)算節(jié)點(diǎn)上并行操作的元素集合,是Spark的核心抽象模型。
Spark SQL
Spark SQL是Spark用來處理結(jié)構(gòu)化數(shù)據(jù)的子框架。Spark SQL支持多種數(shù)據(jù)源,比如Hive表、Parquet及JSON等。Spark SQL可使用SQL或Hive的SQL方言(HQL)查詢數(shù)據(jù),還支持將SQL和RDD相互轉(zhuǎn)換。
Spark Streaming
Spark Streaming是Spark提供的對實(shí)時(shí)數(shù)據(jù)進(jìn)行流式計(jì)算的組件。Spark Streaming提供了操作數(shù)據(jù)流的API,同時(shí)還提供了高級別的容錯(cuò)性、吞吐量及可伸縮性。
MLlib
MLlib是一個(gè)提供常見機(jī)器學(xué)習(xí)(ML)功能的程序庫。MLlib提供了很多種機(jī)器學(xué)習(xí)算法,包括分類、回歸、聚類、協(xié)同過濾等,還提供了模型評估、數(shù)據(jù)導(dǎo)入及更底層的機(jī)器學(xué)習(xí)原語(包括通用的梯度下降優(yōu)化算法)。
Graphx
Graphx是用來操作圖(比如社交網(wǎng)絡(luò)的朋友關(guān)系圖)的程序庫,可進(jìn)行并行的圖計(jì)算。Graphx擴(kuò)展了RDD API,能用來創(chuàng)建一個(gè)頂點(diǎn)和邊都包含任意屬性的有向圖。Graphx支持對圖的各種操作(比如進(jìn)行圖分隔的subgraph和操作所有頂點(diǎn)的mapVertices),及一些常用算法(比如PageRank和三角計(jì)數(shù))。
集群管理器
Spark設(shè)計(jì)為可高效地在一個(gè)計(jì)算節(jié)點(diǎn)到數(shù)千個(gè)計(jì)算節(jié)點(diǎn)之間伸縮計(jì)算,所以為了獲取大靈活性,spark支持在各種集群管理器上運(yùn)行,包括Hadoop YARN、Apache Mesos及Spark自帶的獨(dú)立調(diào)度器等。
spark用戶及用途
spark的使用者主要分為兩大目標(biāo)人群:數(shù)據(jù)分析師和工程師。這兩大人群使用spark的典型用例不一致,大致分為兩類:數(shù)據(jù)分析和數(shù)據(jù)處理。
數(shù)據(jù)分析
數(shù)據(jù)分析師就是主要負(fù)責(zé)分析數(shù)據(jù)并建模的人。他們具備SQL、統(tǒng)計(jì)、預(yù)測建模(機(jī)器學(xué)習(xí))等方面技能,有一定使用Python、Matlab或R編程的能力。
Spark通過一系列組件支持?jǐn)?shù)據(jù)分析任務(wù)。Spark shell提供python和scala接口來進(jìn)行交互式數(shù)據(jù)分析。Spark SQL提供獨(dú)立的SQL shell來使用SQL探索數(shù)據(jù),也可以通過標(biāo)準(zhǔn)的Spark程序或Spark shell進(jìn)行SQL查詢。MLlib程序庫進(jìn)行機(jī)器學(xué)習(xí)和數(shù)據(jù)分析。Spark還支持調(diào)用R或Matlab外部程序。
數(shù)據(jù)處理
工程師就是使用Spark開發(fā)數(shù)據(jù)處理應(yīng)用的軟件開發(fā)者。他們具備軟件工程概念(封裝、接口設(shè)計(jì)及面向?qū)ο笏枷耄苁褂霉こ碳夹g(shù)設(shè)計(jì)軟件系統(tǒng)。
Spark為開發(fā)用于集群并行執(zhí)行的程序提供了捷徑。不需要開發(fā)者關(guān)注分布式問題、網(wǎng)絡(luò)通信及程序容錯(cuò)性。為工程師提供足夠的接口實(shí)現(xiàn)常見的任務(wù)及對應(yīng)用監(jiān)控、審查和性能調(diào)優(yōu)。
spark簡史
2009?,Spark誕生于UCBerkeley的AMP實(shí)驗(yàn)室
2010?,Spark正式對外開源
2012-10-15,Spark?0.6.0發(fā)布。
大范圍的性能改進(jìn),增加了一些新特性,并對Standalone部署模式進(jìn)行了簡化
2013-02-27,Spark?0.7.0發(fā)布
增加了更多關(guān)鍵特性,例如:Python API、Spark Streaming的alpha版本等
2013-06-21,Spark接受進(jìn)入Apache孵化器
2013-09-17,Spark?0.8.0發(fā)布
支持Scala2.9/YARN2.2/Standalone部署模式下調(diào)度的高可用性,shuffle優(yōu)化等
2014-01-24,Spark?0.9.0發(fā)布
增加了GraphX,機(jī)器學(xué)習(xí)新特性,流式計(jì)算新特性,核心引擎優(yōu)化(外部聚合、加強(qiáng)對YARN的支持)等
2014-05-26,Spark?1.0.0發(fā)布
增加了Spark SQL、MLlib、GraphX和Spark Streaming都增加了新特性并進(jìn)行了優(yōu)化。Spark核心引擎還增加了對安全YARN集群的支持
2014-09-03,Spark?1.1.0發(fā)布
Spark核心API及Streaming,Python,SQL,GraphX和MLlib的bug修復(fù)
2014-12-10,Spark?1.2.0發(fā)布
Spark核心API及Streaming,Python,SQL,GraphX和MLlib的bug修復(fù)
2015-03-06,Spark?1.3.0發(fā)布
該版本發(fā)布的大亮點(diǎn)是新引入的DataFrame?API,對于結(jié)構(gòu)型的DataSet,它提供了更方便更強(qiáng)大的操作運(yùn)算。。除了DataFrame之外,還值得關(guān)注的一點(diǎn)是Spark?SQL成為了正式版本,這意味著它將更加的穩(wěn)定,更加的全面。
2015-06-03,Spark?1.4.0發(fā)布
該版本將 R API 引入 Spark,同時(shí)提升了 Spark 的核心引擎和 MLlib ,以及 Spark?Streaming 的可用性
2015-09-09,Spark?1.5.0發(fā)布
Spark 1.5.0是1.x線上的第6個(gè)發(fā)行版。這個(gè)版本共處理了來自230+contributors和80+機(jī)構(gòu)的1400+個(gè)patches。
Spark 1.5的許多改變都是圍繞在提升Spark的性能、可用性以及操作穩(wěn)定性。
Spark 1.5.0焦點(diǎn)在Tungsten項(xiàng)目,它主要是通過對低層次的組建進(jìn)行優(yōu)化從而提升Spark的性能。
Spark 1.5版本為Streaming增加了operational特性,比如支持backpressure。另外比較重要的更新就是新增加了一些機(jī)器學(xué)習(xí)算法和工具,并擴(kuò)展了Spark R的相關(guān)API。
2015-12-22,Spark?1.6.0發(fā)布
該版本含了超過1000個(gè)patches,在這里主要展示三個(gè)方面的主題:新的Dataset?API,性能提升(讀取Parquet 50%的性能提升,自動(dòng)內(nèi)存管理,streaming state management十倍的性能提升),以及大量新的機(jī)器學(xué)習(xí)和統(tǒng)計(jì)分析算法。
在Spark1.3.0引入DataFrame,它可以提供high-level functions讓Spark更好地處理數(shù)據(jù)結(jié)構(gòu)和計(jì)算。這讓Catalyst optimizer 和Tungsten execution engine自動(dòng)加速大數(shù)據(jù)分析。發(fā)布DataFrame之后開發(fā)者收到了很多反饋,其中一個(gè)主要的是大家反映缺乏編譯時(shí)類型安全。為了解決這個(gè)問題,Spark采用新的Dataset API (DataFrame API的類型擴(kuò)展)。Dataset API擴(kuò)展DataFrame API支持靜態(tài)類型和運(yùn)行已經(jīng)存在的Scala或Java語言的用戶自定義函數(shù)。對比傳統(tǒng)的RDD API,Dataset API提供更好的內(nèi)存管理,特別是在長任務(wù)中有更好的性能提升。
2016-07-20,Spark?2.0.0發(fā)布
該版本主要更新APIs,支持SQL 2003,支持R UDF ,增強(qiáng)其性能。300個(gè)開發(fā)者貢獻(xiàn)了2500補(bǔ)丁程序
2016-12-16,Spark?2.1.0發(fā)布
這是 2.x 版本線的第二個(gè)發(fā)行版。此發(fā)行版在為Structured Streaming進(jìn)入生產(chǎn)環(huán)境做出了重大突破,Structured Streaming 現(xiàn)在支持了event time watermarks了并且支持Kafka0.10
此外,此版本更側(cè)重于可用性,穩(wěn)定性和優(yōu)雅(polish),并解決了1200多個(gè)tickets
2017-07-01,Spark?2.2.0發(fā)布
這是 2.x 系列的第三個(gè)版本。此版本移除了?Structured Streaming 的實(shí)驗(yàn)標(biāo)記(experimental tag),意味著已可以放心在線上使用。
該版本的更新內(nèi)容主要針對的是系統(tǒng)的可用性、穩(wěn)定性以及代碼潤色。包括:
2018-02-23,Spark?2.3.0發(fā)布
這是 2.x 系列中的第四個(gè)版本。此版本增加了對 Structured Streaming 中的 Continuous Processing 以及全新的 Kubernetes Scheduler 后端的支持
其他主要更新包括新的 DataSource 和 Structured Streaming v2 API,以及一些 PySpark 性能增強(qiáng)。
此外,此版本繼續(xù)改進(jìn)項(xiàng)目的可用性、穩(wěn)定性,并持續(xù)潤色代碼。
忠于技術(shù),熱愛分享。歡迎關(guān)注公眾號:java大數(shù)據(jù)編程,了解更多技術(shù)內(nèi)容。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。