Spark學習筆記(一)Spark初識【特性、組成、應用】
本文實例講述了Spark基本特性、組成、應用。分享給大家供大家參考,具體如下:
一、官網介紹
1、什么是Spark
Apache Spark™是用于大規(guī)模數(shù)據處理的統(tǒng)一分析引擎。
從右側最后一條新聞看,Spark也用于AI人工智能
spark是一個實現(xiàn)快速通用的集群計算平臺。它是由加州大學伯克利分校AMP實驗室 開發(fā)的通用內存并行計算框架,用來構建大型的、低延遲的數(shù)據分析應用程序。它擴展了廣泛使用的MapReduce計算模型。高效的支撐更多計算模式,包括交互式查詢和流處理。spark的一個主要特點是能夠在內存中進行計算,及時依賴磁盤進行復雜的運算,Spark依然比MapReduce更加高效。
2、為什么要學Spark
中間結果輸出:基于MapReduce的計算引擎通常會將中間結果輸出到磁盤上,進行存儲和容錯。出于任務管道承接的,考慮,當一些查詢翻譯到MapReduce任務時,往往會產生多個Stage,而這些串聯(lián)的Stage又依賴于底層文件系統(tǒng)(如HDFS)來存儲每一個Stage的輸出結果。
Spark是MapReduce的替代方案,而且兼容HDFS、Hive,可融入Hadoop的生態(tài)系統(tǒng),以彌補MapReduce的不足。
二、Spark的四大特性
1、高效性
運行速度提高100倍。
Apache Spark使用最先進的DAG調度程序,查詢優(yōu)化程序和物理執(zhí)行引擎,實現(xiàn)批量和流式數(shù)據的高性能。
2、易用性
Spark支持Java、Python和Scala的API,還支持超過80種高級算法,使用戶可以快速構建不同的應用。而且Spark支持交互式的Python和Scala的shell,可以非常方便地在這些shell中使用Spark集群來驗證解決問題的方法。
3、通用性
Spark提供了統(tǒng)一的解決方案。Spark可以用于批處理、交互式查詢(Spark SQL)、實時流處理(Spark Streaming)、機器學習(Spark MLlib)和圖計算(GraphX)。這些不同類型的處理都可以在同一個應用中無縫使用。Spark統(tǒng)一的解決方案非常具有吸引力,畢竟任何公司都想用統(tǒng)一的平臺去處理遇到的問題,減少開發(fā)和維護的人力成本和部署平臺的物力成本。
4、兼容性
Spark可以非常方便地與其他的開源產品進行融合。比如,Spark可以使用Hadoop的YARN和Apache Mesos作為它的資源管理和調度器,器,并且可以處理所有Hadoop支持的數(shù)據,包括HDFS、HBase和Cassandra等。這對于已經部署Hadoop集群的用戶特別重要,因為不需要做任何數(shù)據遷移就可以使用Spark的強大處理能力。Spark也可以不依賴于第三方的資源管理和調度器,它實現(xiàn)了Standalone作為其內置的資源管理和調度框架,這樣進一步降低了Spark的使用門檻,使得所有人都可以非常容易地部署和使用Spark。此外,Spark還提供了在EC2上部署Standalone的Spark集群的工具。
Mesos:Spark可以運行在Mesos里面(Mesos 類似于yarn的一個資源調度框架)
standalone:Spark自己可以給自己分配資源(master,worker)
YARN:Spark可以運行在yarn上面
Kubernetes:Spark接收 Kubernetes的資源調度
三、Spark的組成
Spark組成(BDAS):全稱伯克利數(shù)據分析棧,通過大規(guī)模集成算法、機器、人之間展現(xiàn)大數(shù)據應用的一個平臺。也是處理大數(shù)據、云計算、通信的技術解決方案。
它的主要組件有:
SparkCore:將分布式數(shù)據抽象為彈性分布式數(shù)據集(RDD),實現(xiàn)了應用任務調度、RPC、序列化和壓縮,并為運行在其上的上層組件提供API。
SparkSQL:Spark Sql 是Spark來操作結構化數(shù)據的程序包,可以讓我使用SQL語句的方式來查詢數(shù)據,Spark支持 多種數(shù)據源,包含Hive表,parquest以及JSON等內容。
SparkStreaming: 是Spark提供的實時數(shù)據進行流式計算的組件。
MLlib:提供常用機器學習算法的實現(xiàn)庫。
GraphX:提供一個分布式圖計算框架,能高效進行圖計算。
BlinkDB:用于在海量數(shù)據上進行交互式SQL的近似查詢引擎。
Tachyon:以內存為中心高容錯的的分布式文件系統(tǒng)。
四、應用場景
Yahoo將Spark用在Audience Expansion中的應用,進行點擊預測和即席查詢等 淘寶技術團隊使用了Spark來解決多次迭代的機器學習算法、高計算復雜度的算法等。應用于內容推薦、社區(qū)發(fā)現(xiàn)等
騰訊大數(shù)據精準推薦借助Spark快速迭代的優(yōu)勢,實現(xiàn)了在“數(shù)據實時采集、算法實時訓練、系統(tǒng)實時預測”的全流程實時并行高維算法,最終成功應用于廣點通pCTR投放系統(tǒng)上。
優(yōu)酷土豆將Spark應用于視頻推薦(圖計算)、廣告業(yè)務,主要實現(xiàn)機器學習、圖計算等迭代計算。
更多關于java算法相關內容感興趣的讀者可查看本站專題:《Java數(shù)據結構與算法教程》、《Java操作DOM節(jié)點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設計有所幫助。
相關文章
Spring源碼之事件監(jiān)聽機制詳解(@EventListener實現(xiàn)方式)
這篇文章主要介紹了Spring源碼之事件監(jiān)聽機制(@EventListener實現(xiàn)方式),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08Jpa 實現(xiàn)自動更新表中的創(chuàng)建日期和修改時間
這篇文章主要介紹了Jpa 實現(xiàn)自動更新表中的創(chuàng)建日期和修改時間,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01Netty分布式ByteBuf使用directArena分配緩沖區(qū)過程解析
這篇文章主要介紹了Netty分布式ByteBuf使用directArena分配緩沖區(qū)過程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-03-03SpringBoot實現(xiàn)在一個模塊中引入另一個模塊
這篇文章主要介紹了SpringBoot實現(xiàn)在一個模塊中引入另一個模塊的方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10java實現(xiàn)二叉樹的創(chuàng)建及5種遍歷方法(總結)
下面小編就為大家?guī)硪黄猨ava實現(xiàn)二叉樹的創(chuàng)建及5種遍歷方法(總結)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04