Spark精华问答 | 为什么要学Spark?
戳藍(lán)字“CSDN云計算”關(guān)注我們哦!
為什么要學(xué)習(xí)Spark?作為一個用來實現(xiàn)快速而通用的集群計算的平臺。擴(kuò)展廣泛使用的MapReduce計算模型,而且高效地支持更多的計算模式,包括交互式查詢和流處理。Spark的一個重要特點就是能夠在內(nèi)存中計算,因而更快。即使在磁盤上進(jìn)行的復(fù)雜計算,Spark依然比MapReduce更加高效。優(yōu)勢如此明顯的Spark,是不是要好好學(xué)習(xí)一下呢?
1
Q:學(xué)了Spark有什么用呢?
A:首先說一下Spark的優(yōu)勢:
1、?更高的性能。因為數(shù)據(jù)被加載到集群主機(jī)的分布式內(nèi)存中。數(shù)據(jù)可以被快速的轉(zhuǎn)換迭代,并緩存用以后續(xù)的頻繁訪問需求。在數(shù)據(jù)全部加載到內(nèi)存的情況下,Spark可以比Hadoop快100倍,在內(nèi)存不夠存放所有數(shù)據(jù)的情況下快hadoop10倍。
2、通過建立在Java、Scala、Python、SQL(應(yīng)對交互式查詢)的標(biāo)準(zhǔn)API以方便各行各業(yè)使用,同時還含有大量開箱即用的機(jī)器學(xué)習(xí)庫。?
3、與現(xiàn)有Hadoop 1和2.x(YARN)生態(tài)兼容,因此機(jī)構(gòu)可以無縫遷移。?
4、方便下載和安裝。方便的Shell(REPL: Read-Eval-Print-Loop)可以對API進(jìn)行交互式的學(xué)習(xí)。?
5、借助高等級的架構(gòu)提高生產(chǎn)力,從而可以講精力放到計算上。
所以總結(jié)一下就是簡單,快速,兼容性好,功能強(qiáng)大。不用再將注意力放在框架上,而是集中于業(yè)務(wù)邏輯,所以在大數(shù)據(jù)中Spark很受歡迎,學(xué)習(xí)Spark,符合市場需求。
Q:Spark的應(yīng)用場景有哪些?
A:Yahoo將Spark用在Audience Expansion中的應(yīng)用,進(jìn)行點擊預(yù)測和即席查詢等
淘寶技術(shù)團(tuán)隊使用了Spark來解決多次迭代的機(jī)器學(xué)習(xí)算法、高計算復(fù)雜度的算法等。應(yīng)用于內(nèi)容推薦、社區(qū)發(fā)現(xiàn)等
騰訊大數(shù)據(jù)精準(zhǔn)推薦借助Spark快速迭代的優(yōu)勢,實現(xiàn)了在“數(shù)據(jù)實時采集、算法實時訓(xùn)練、系統(tǒng)實時預(yù)測”的全流程實時并行高維算法,最終成功應(yīng)用于廣點通pCTR投放系統(tǒng)上。
優(yōu)酷土豆將Spark應(yīng)用于視頻推薦(圖計算)、廣告業(yè)務(wù),主要實現(xiàn)機(jī)器學(xué)習(xí)、圖計算等迭代計算。
Q:Hadoop和Spark比較
A:Hadoop這項大數(shù)據(jù)處理技術(shù)大概已有十年歷史,而且被看做是首選的大數(shù)據(jù)集合處理的解決方案。MapReduce是一路計算的優(yōu)秀解決方案,不過對于需要多路計算和算法的用例來說,并非十分高效。數(shù)據(jù)處理流程中的每一步都需要一個Map階段和一個Reduce階段,而且如果要利用這一解決方案,需要將所有用例都轉(zhuǎn)換成MapReduce模式。
而Spark則允許程序開發(fā)者使用有向無環(huán)圖(DAG)開發(fā)復(fù)雜的多步數(shù)據(jù)管道。而且還支持跨有向無環(huán)圖的內(nèi)存數(shù)據(jù)共享,以便不同的作業(yè)可以共同處理同一個數(shù)據(jù)。
Spark運(yùn)行在現(xiàn)有的Hadoop分布式文件系統(tǒng)基礎(chǔ)之上(HDFS)提供額外的增強(qiáng)功能。它支持將Spark應(yīng)用部署到現(xiàn)存的Hadoop v1集群(with SIMR – Spark-Inside-MapReduce)或Hadoop v2 YARN集群甚至是Apache Mesos之中。
Q:Spark的特性
A:Spark通過在數(shù)據(jù)處理過程中成本更低的洗牌(Shuffle)方式,將MapReduce提升到一個更高的層次。利用內(nèi)存數(shù)據(jù)存儲和接近實時的處理能力,Spark比其他的大數(shù)據(jù)處理技術(shù)的性能要快很多倍。
Spark還支持大數(shù)據(jù)查詢的延遲計算,這可以幫助優(yōu)化大數(shù)據(jù)處理流程中的處理步驟。Spark還提供高級的API以提升開發(fā)者的生產(chǎn)力,除此之外還為大數(shù)據(jù)解決方案提供一致的體系架構(gòu)模型。
Spark將中間結(jié)果保存在內(nèi)存中而不是將其寫入磁盤,當(dāng)需要多次處理同一數(shù)據(jù)集時,這一點特別實用。Spark的設(shè)計初衷就是既可以在內(nèi)存中又可以在磁盤上工作的執(zhí)行引擎。當(dāng)內(nèi)存中的數(shù)據(jù)不適用時,Spark操作符就會執(zhí)行外部操作。Spark可以用于處理大于集群內(nèi)存容量總和的數(shù)據(jù)集。
Spark會嘗試在內(nèi)存中存儲盡可能多的數(shù)據(jù)然后將其寫入磁盤。它可以將某個數(shù)據(jù)集的一部分存入內(nèi)存而剩余部分存入磁盤。開發(fā)者需要根據(jù)數(shù)據(jù)和用例評估對內(nèi)存的需求。Spark的性能優(yōu)勢得益于這種內(nèi)存中的數(shù)據(jù)存儲。
Q:Spark的其他特性包括
A:支持比Map和Reduce更多的函數(shù)。優(yōu)化任意操作算子圖(operator graphs)。可以幫助優(yōu)化整體數(shù)據(jù)處理流程的大數(shù)據(jù)查詢的延遲計算。提供簡明、一致的Scala,Java和Python API。提供交互式Scala和Python Shell。目前暫不支持Java。Spark是用Scala程序設(shè)計語言編寫而成,運(yùn)行于Java虛擬機(jī)(JVM)環(huán)境之上。目前支持如下程序設(shè)計語言
小伙伴們沖鴨,后臺留言區(qū)等著你!
關(guān)于Spark,今天你學(xué)到了什么?還有哪些不懂的?除此還對哪些話題感興趣?快來留言區(qū)打卡啦!留言方式:打開第XX天,答:……
同時歡迎大家搜集更多問題,投稿給我們!風(fēng)里雨里留言區(qū)里等你~
福利
1、掃描添加小編微信,備注“姓名+公司職位”,加入【云計算學(xué)習(xí)交流群】,和志同道合的朋友們共同打卡學(xué)習(xí)!
2、公眾號后臺回復(fù):白皮書,獲取IDC最新數(shù)據(jù)白皮書整理資料!
推薦閱讀:
微博宕機(jī)復(fù)盤:什么樣的技術(shù)架構(gòu),可支持80個明星并發(fā)出軌?
漫畫 | Kubernetes帶你一帆風(fēng)順去遠(yuǎn)航
Android 告急!
超酷炫!Facebook用深度學(xué)習(xí)和弱監(jiān)督學(xué)習(xí)繪制全球精準(zhǔn)道路圖
多地GitHub賬號使用受限;Python之父考慮重構(gòu)解釋器;62歲程序員埋邏輯炸彈 | 開發(fā)者周刊
3個核心差異, 告訴你為什么Libra永遠(yuǎn)成不了比特幣!
總結(jié)
以上是生活随笔為你收集整理的Spark精华问答 | 为什么要学Spark?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 股市熔断是哪一年
- 下一篇: 基金定投有年限限至吗 并不是时间越长越