大数据最火的Spark你确定不来了解一下吗?(1)
上一階段給大家分享的Scala,這一階段是Spark,學(xué)Spark的前提得先熟悉,并且熟練操作Scala,下面先給大家介紹一下Spark!!!!!!
文章目錄:
- Spark概述
- 1. Spark官方介紹
- 2. Spark特點
- 3. 激動人心的Spark發(fā)展史
- 4. Spark為什么會流行
- 5. Spark運行模式
Spark概述
1. Spark官方介紹
●Spark是什么
Apache Spark是用于大規(guī)模數(shù)據(jù)處理的統(tǒng)一分析引擎 Spark基于內(nèi)存計算,提高了在大數(shù)據(jù)環(huán)境下數(shù)據(jù)處理的實時性, 同時保證了高容錯性和高可伸縮性,允許用戶將Spark部署在大量硬件之上,形成集群。●官網(wǎng)
http://spark.apache.org
http://spark.apachecn.org
2. Spark特點
●快
與Hadoop的MapReduce相比,Spark基于內(nèi)存的運算要快100倍以上, 基于硬盤的運算也要快10倍以上。Spark實現(xiàn)了高效的DAG執(zhí)行引擎, 可以通過基于內(nèi)存來高效處理數(shù)據(jù)流。●易用(算法多)
MR只支持一種計算 算法,Spark支持多種算法。 Spark支持Java、Python、R和Scala的API,還支持超過80種高級算法, 使用戶可以快速構(gòu)建不同的應(yīng)用。而且Spark支持交互式的Python和Scala的shell, 可以非常方便地在這些shell中使用Spark集群來驗證解決問題的方法。●通用
Spark提供了統(tǒng)一的解決方案。Spark可以用于批處理、交互式查詢(Spark SQL)、 實時流處理(Spark Streaming)、機器學(xué)習(xí)(Spark MLlib)和圖計算(GraphX)。 這些不同類型的處理都可以在同一個應(yīng)用中無縫使用。Spark統(tǒng)一的解決方案非常具有吸引力, 畢竟任何公司都想用統(tǒng)一的平臺去處理遇到的問題,減少開發(fā)和維護(hù)的人力成本和部署平臺的物力成本。●兼容性
Spark可以非常方便地與其他的開源產(chǎn)品進(jìn)行融合。比如,Spark可以使用Hadoop的YARN和Apache Mesos作為它的資源管理和調(diào)度器, 并且可以處理所有Hadoop支持的數(shù)據(jù),包括HDFS、HBase和Cassandra等。 這對于已經(jīng)部署Hadoop集群的用戶特別重要,因為不需要做任何數(shù)據(jù)遷移就可以使用Spark的強大處理能力。 Spark也可以不依賴于第三方的資源管理和調(diào)度器,它實現(xiàn)了Standalone作為其內(nèi)置的資源管理和調(diào)度框架, 這樣進(jìn)一步降低了Spark的使用門檻,使得所有人都可以非常容易地部署和使用Spark。 此外,Spark還提供了在EC2上部署Standalone的Spark集群的工具。3. 激動人心的Spark發(fā)展史
大數(shù)據(jù)、人工智能( Artificial Intelligence )像當(dāng)年的石油、電力一樣, 正以前所未有的廣度和深度影響所有的行業(yè), 現(xiàn)在及未來公司的核心壁壘是數(shù)據(jù), 核心競爭力來自基于大數(shù)據(jù)的人工智能的競爭。
Spark是當(dāng)今大數(shù)據(jù)領(lǐng)域最活躍、最熱門、最高效的大數(shù)據(jù)通用計算平臺,
2009年誕生于美國加州大學(xué)伯克利分校AMP 實驗室,
2010年通過BSD許可協(xié)議開源發(fā)布,
2013年捐贈給Apache軟件基金會并切換開源協(xié)議到切換許可協(xié)議至 Apache2.0,
2014年2月,Spark 成為 Apache 的頂級項目
2014年11月, Spark的母公司Databricks團(tuán)隊使用Spark刷新數(shù)據(jù)排序世界記錄
Spark 成功構(gòu)建起了一體化、多元化的大數(shù)據(jù)處理體系。在任何規(guī)模的數(shù)據(jù)計算中, Spark 在性能和擴展性上都更具優(yōu)勢。
(1) Hadoop 之父Doug Cutting 指出:Use of MapReduce engine for Big Data projects will decline, replaced by Apache Spark (大數(shù)據(jù)項目的MapReduce 引擎的使用將下降,由Apache Spark 取代)
(2)Hadoop 商業(yè)發(fā)行版本的市場領(lǐng)導(dǎo)者Cloudera 、HortonWorks 、MapR 紛紛轉(zhuǎn)投Spark,并把Spark 作為大數(shù)據(jù)解決方案的首選和核心計算引擎。
2014 年的如此Benchmark 測試中, Spark 秒殺Hadoop ,在使用十分之一計算資源的情況下,相同數(shù)據(jù)的排序上, Spark 比Map Reduce 快3 倍! 在沒有官方PB 排序?qū)Ρ鹊那闆r下,首次將S park 推到了IPB 數(shù)據(jù)(十萬億條記錄) 的排序,在使用190 個節(jié)點的情況下,工作負(fù)載在4 小時內(nèi)完成, 同樣遠(yuǎn)超雅虎之前使用3800 臺主機耗時16 個小時的記錄。
2015年6月, Spark 最大的集群來自騰訊–8000 個節(jié)點, 單個Job 最大分別是阿里巴巴和Databricks–1PB ,震撼人心!同時,Spark的Contributor 比2014 年漲了3 倍,達(dá)到730 人:總代碼行數(shù)也比2014 年漲了2 倍多,達(dá)到40 萬行。
IBM 于2015 年6 月承諾大力推進(jìn)Apache Spark 項目, 并稱該項目為:以數(shù)據(jù)為主導(dǎo)的,未來十年最重要的新的開源項目。這-承諾的核心是將Spark 嵌入IBM 業(yè)內(nèi)領(lǐng)先的分析和商務(wù)平臺,并將Spark 作為一項服務(wù),在IBMB平臺上提供給客戶。IBM 還將投入超過3500 名研究和開發(fā)人員在全球10余個實驗室開展與Spark 相關(guān)的項目,并將為Spark 開源生態(tài)系統(tǒng)無償提供突破性的機器學(xué)習(xí)技術(shù)–IBM SystemML。同時,IBM 還將培養(yǎng)超過100 萬名Spark 數(shù)據(jù)科學(xué)家和數(shù)據(jù)工程師。
2016 年,在有“計算界奧運會”之稱的國際著名Sort Benchmark全球數(shù)據(jù)排序大賽中,由南京大學(xué)計算機科學(xué)與技術(shù)系PASA 大數(shù)據(jù)實驗室、阿里巴巴和Databricks 公司組成的參賽因隊NADSort,以144美元的成本完成lOOTB 標(biāo)準(zhǔn)數(shù)據(jù)集的排序處理,創(chuàng)下了每TB 數(shù)據(jù)排序1.44美元成本的最新世界紀(jì)錄,比2014 年奪得冠軍的加州大學(xué)圣地亞哥分校TritonSort團(tuán)隊每TB 數(shù)據(jù)4.51美元的成本降低了近70%,而這次比賽依舊使用Apache Spark 大數(shù)據(jù)計算平臺,在大規(guī)模并行排序算法以及Spark 系統(tǒng)底層進(jìn)行了大量的優(yōu)化,以盡可能提高排序計算性能并降低存儲資源開銷,確保最終贏得比賽。
在FullStack 理想的指引下,Spark 中的Spark SQL 、SparkStreaming 、MLLib 、GraphX 、R 五大子框架和庫之間可以無縫地共享數(shù)據(jù)和操作, 這不僅打造了Spark 在當(dāng)今大數(shù)據(jù)計算領(lǐng)域其他計算框架都無可匹敵的優(yōu)勢, 而且使得Spark 正在加速成為大數(shù)據(jù)處理中心首選通用計算平臺
4. Spark為什么會流行
● 4.1 原因1:優(yōu)秀的數(shù)據(jù)模型和計算抽象
Spark 產(chǎn)生之前,已經(jīng)有MapReduce這類非常成熟的計算系統(tǒng)存在了,并提供了高層次的API(map/reduce),把計算運行在集群中并提供容錯能力,從而實現(xiàn)分布式計算。
雖然MapReduce提供了對數(shù)據(jù)訪問和計算的抽象,但是對于數(shù)據(jù)的復(fù)用就是簡單的將中間數(shù)據(jù)寫到一個穩(wěn)定的文件系統(tǒng)中(例如HDFS),所以會產(chǎn)生數(shù)據(jù)的復(fù)制備份,磁盤的I/O以及數(shù)據(jù)的序列化,所以在遇到需要在多個計算之間復(fù)用中間結(jié)果的操作時效率就會非常的低。而這類操作是非常常見的,例如迭代式計算,交互式數(shù)據(jù)挖掘,圖計算等。
認(rèn)識到這個問題后,學(xué)術(shù)界的 AMPLab 提出了一個新的模型,叫做 RDD。RDD 是一個可以容錯且并行的數(shù)據(jù)結(jié)構(gòu)(其實可以理解成分布式的集合,操作起來和操作本地集合一樣簡單),它可以讓用戶顯式的將中間結(jié)果數(shù)據(jù)集保存在內(nèi)存中,并且通過控制數(shù)據(jù)集的分區(qū)來達(dá)到數(shù)據(jù)存放處理最優(yōu)化.同時 RDD也提供了豐富的 API (map、reduce、foreach、redeceByKey…)來操作數(shù)據(jù)集。后來 RDD被 AMPLab 在一個叫做 Spark 的框架中提供并開源.
簡而言之,Spark 借鑒了 MapReduce 思想發(fā)展而來,保留了其分布式并行計算的優(yōu)點并 改進(jìn)了其明顯的缺陷。讓中間數(shù)據(jù)存儲在內(nèi)存中提高了運行速度、并提供豐富的操作數(shù)據(jù)的API提高了開發(fā)速度。
● 4.2 原因2:完善的生態(tài)圈
目前,Spark已經(jīng)發(fā)展成為一個包含多個子項目的集合,其中包含SparkSQL、Spark Streaming、GraphX、MLlib等子項目
Spark Core:實現(xiàn)了 Spark 的基本功能,包含RDD、任務(wù)調(diào)度、內(nèi)存管理、錯誤恢復(fù)、與存儲系統(tǒng)交互等模塊。
Spark SQL:Spark 用來操作結(jié)構(gòu)化數(shù)據(jù) 的程序包。通過 Spark SQL,我們可以使用 SQL操作數(shù)據(jù)。
Spark Streaming:Spark 提供的對實時數(shù)據(jù)進(jìn)行流式計算的組件。提供了用來操作數(shù)據(jù)流的 API。
Spark MLlib:提供常見的機器學(xué)習(xí)(ML)功能的程序庫。包括分類、回歸、聚類、協(xié)同過濾等,還提供了模型評估、數(shù)據(jù)導(dǎo)入等額外的支持功能。
GraphX(圖計算):Spark中用于圖計算的API,性能良好,擁有豐富的功能和運算符,能在海量數(shù)據(jù)上自如地運行復(fù)雜的圖算法。
集群管理器:Spark 設(shè)計為可以高效地在一個計算節(jié)點到數(shù)千個計算節(jié)點之間伸縮計算。
● 4.3 擴展閱讀:Spark VS Hadoop
★注意:
盡管Spark相對于Hadoop而言具有較大優(yōu)勢,但Spark并不能完全替代Hadoop ,Spark主要用于替代Hadoop中的MapReduce計算模型。存儲依然可以使用HDFS,但是中間結(jié)果可以存放在內(nèi)存中;調(diào)度可以使用Spark內(nèi)置的,也可以使用更成熟的調(diào)度系統(tǒng)YARN 等
實際上,Spark已經(jīng)很好地融入了Hadoop生態(tài)圈,并成為其中的重要一員,它可以借助于YARN實現(xiàn)資源調(diào)度管理,借助于HDFS實現(xiàn)分布式存儲。
此外,Hadoop可以使用廉價的、異構(gòu)的機器來做分布式存儲與計算,但是,Spark對硬件的要求稍高一些,對內(nèi)存與CPU有一定的要求。
5. Spark運行模式
● Spark運行模式
1.local本地模式(單機)–開發(fā)測試使用
分為local單線程和local-cluster多線程
2.standalone獨立集群模式–開發(fā)測試使用
典型的Mater/slave模式
3.standalone-HA高可用模式–生產(chǎn)環(huán)境使用
基于standalone模式,使用zk搭建高可用,避免Master是有單點故障的
4.on yarn集群模式–生產(chǎn)環(huán)境使用
運行在 yarn 集群之上,由 yarn 負(fù)責(zé)資源管理,Spark 負(fù)責(zé)任務(wù)調(diào)度和計算,
好處:計算資源按需伸縮,集群利用率高,共享底層存儲,避免數(shù)據(jù)跨集群遷移。
FIFO
Fair
Capacity
5.on mesos集群模式–國內(nèi)使用較少
運行在 mesos 資源管理器框架之上,由 mesos 負(fù)責(zé)資源管理,Spark 負(fù)責(zé)任務(wù)調(diào)度和計算
6.on cloud集群模式–中小公司未來會更多的使用云服務(wù)
比如 AWS 的 EC2,使用這個模式能很方便的訪問 Amazon的 S3
介紹就到這里,下一篇給大家分享怎樣去搭建Spark環(huán)境!!!!!!
總結(jié)
以上是生活随笔為你收集整理的大数据最火的Spark你确定不来了解一下吗?(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机1500字论文,当我打开电脑_15
- 下一篇: 计算机组装与维护考试题a卷,计算机组装与