Apache Spark 介紹
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
Apache Spark 是專為大規(guī)模數(shù)據(jù)處理而設(shè)計(jì)的快速通用的計(jì)算引擎。Spark是UC Berkeley AMP lab (加州大學(xué)伯克利分校的AMP實(shí)驗(yàn)室)所開(kāi)源的類Hadoop MapReduce的通用并行框架,Spark,擁有Hadoop MapReduce所具有的優(yōu)點(diǎn);但不同于MapReduce的是——Job中間輸出結(jié)果可以保存在內(nèi)存中,從而不再需要讀寫(xiě)HDFS,因此Spark能更好地適用于數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等需要迭代的MapReduce的算法。 Spark 是一種與 Hadoop 相似的開(kāi)源集群計(jì)算環(huán)境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 Spark 在某些工作負(fù)載方面表現(xiàn)得更加優(yōu)越,換句話說(shuō),Spark 啟用了內(nèi)存分布數(shù)據(jù)集,除了能夠提供交互式查詢外,它還可以優(yōu)化迭代工作負(fù)載。 Spark 是在 Scala 語(yǔ)言中實(shí)現(xiàn)的,它將 Scala 用作其應(yīng)用程序框架。與 Hadoop 不同,Spark 和 Scala 能夠緊密集成,其中的 Scala 可以像操作本地集合對(duì)象一樣輕松地操作分布式數(shù)據(jù)集。 盡管創(chuàng)建 Spark 是為了支持分布式數(shù)據(jù)集上的迭代作業(yè),但是實(shí)際上它是對(duì) Hadoop 的補(bǔ)充,可以在 Hadoop 文件系統(tǒng)中并行運(yùn)行。通過(guò)名為 Mesos 的第三方集群框架可以支持此行為。Spark 由加州大學(xué)伯克利分校 AMP 實(shí)驗(yàn)室 (Algorithms, Machines, and People Lab) 開(kāi)發(fā),可用來(lái)構(gòu)建大型的、低延遲的數(shù)據(jù)分析應(yīng)用程序。 目錄 1、基本介紹 2、特點(diǎn)介紹 3、性能特點(diǎn) 4、基本原理 5、計(jì)算方法 1、基本介紹 Apache Spark是專為大規(guī)模數(shù)據(jù)處理而設(shè)計(jì)的快速通用的計(jì)算引擎 [2]。形成一個(gè)高速發(fā)展應(yīng)用廣泛的生態(tài)系統(tǒng)。 2、特點(diǎn)介紹 Spark 主要有三個(gè)特點(diǎn) [3]: 首先,高級(jí) API 剝離了對(duì)集群本身的關(guān)注,Spark 應(yīng)用開(kāi)發(fā)者可以專注于應(yīng)用所要做的計(jì)算本身。 其次,Spark 很快,支持交互式計(jì)算和復(fù)雜算法。 最后,Spark 是一個(gè)通用引擎,可用它來(lái)完成各種各樣的運(yùn)算,包括 SQL 查詢、文本處理、機(jī)器學(xué)習(xí)等,而在 Spark 出現(xiàn)之前,我們一般需要學(xué)習(xí)各種各樣的引擎來(lái)分別處理這些需求。 3、性能特點(diǎn) 更快的速度 內(nèi)存計(jì)算下,Spark 比 Hadoop 快100倍。 易用性 Spark 提供了80多個(gè)高級(jí)運(yùn)算符。 通用性 Spark 提供了大量的庫(kù),包括Spark Core、Spark SQL、Spark Streaming、MLlib、GraphX。 開(kāi)發(fā)者可以在同一個(gè)應(yīng)用程序中無(wú)縫組合使用這些庫(kù)。 支持多種資源管理器 Spark 支持 Hadoop YARN,Apache Mesos,及其自帶的獨(dú)立集群管理器 Spark生態(tài)系統(tǒng) Shark:Shark基本上就是在Spark的框架基礎(chǔ)上提供和Hive一樣的HiveQL命令接口,為了最大程度的保持和Hive的兼容性,Spark使用了Hive的API來(lái)實(shí)現(xiàn)query Parsing和 Logic Plan generation,最后的PhysicalPlan execution階段用Spark代替HadoopMapReduce。通過(guò)配置Shark參數(shù),Shark可以自動(dòng)在內(nèi)存中緩存特定的RDD,實(shí)現(xiàn)數(shù)據(jù)重用,進(jìn)而加快特定數(shù)據(jù)集的檢索。同時(shí),Spark通過(guò)UDF用戶自定義函數(shù)實(shí)現(xiàn)特定的數(shù)據(jù)分析學(xué)習(xí)算法,使得SQL數(shù)據(jù)查詢和運(yùn)算分析能結(jié)合在一起,最大化RDD的重復(fù)使用。 SparkR:SparkR是一個(gè)為R提供了輕量級(jí)的Spark前端的R包。 SparkR提供了一個(gè)分布式的data frame數(shù)據(jù)結(jié)構(gòu),解決了 R中的data frame只能在單機(jī)中使用的瓶頸,它和R中的data frame 一樣支持許多操作,比如select,filter,aggregate等等。(類似dplyr包中的功能)這很好的解決了R的大數(shù)據(jù)級(jí)瓶頸問(wèn)題。 SparkR也支持分布式的機(jī)器學(xué)習(xí)算法,比如使用MLib機(jī)器學(xué)習(xí)庫(kù)。 [4]SparkR為Spark引入了R語(yǔ)言社區(qū)的活力,吸引了大量的數(shù)據(jù)科學(xué)家開(kāi)始在Spark平臺(tái)上直接開(kāi)始數(shù)據(jù)分析之旅。 [5] 4、基本原理 Spark Streaming:構(gòu)建在Spark上處理Stream數(shù)據(jù)的框架,基本的原理是將Stream數(shù)據(jù)分成小的時(shí)間片段(幾秒),以類似batch批量處理的方式來(lái)處理這小部分?jǐn)?shù)據(jù)。Spark Streaming構(gòu)建在Spark上,一方面是因?yàn)镾park的低延遲執(zhí)行引擎(100ms+),雖然比不上專門(mén)的流式數(shù)據(jù)處理軟件,也可以用于實(shí)時(shí)計(jì)算,另一方面相比基于Record的其它處理框架(如Storm),一部分窄依賴的RDD數(shù)據(jù)集可以從源數(shù)據(jù)重新計(jì)算達(dá)到容錯(cuò)處理目的。此外小批量處理的方式使得它可以同時(shí)兼容批量和實(shí)時(shí)數(shù)據(jù)處理的邏輯和算法。方便了一些需要?dú)v史數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)聯(lián)合分析的特定應(yīng)用場(chǎng)合。 5、計(jì)算方法 Bagel: Pregel on Spark,可以用Spark進(jìn)行圖計(jì)算,這是個(gè)非常有用的小項(xiàng)目。Bagel自帶了一個(gè)例子,實(shí)現(xiàn)了Google的PageRank算法。 當(dāng)下Spark已不止步于實(shí)時(shí)計(jì)算,目標(biāo)直指通用大數(shù)據(jù)處理平臺(tái),而終止Spark,開(kāi)啟SparkSQL或許已經(jīng)初見(jiàn)端倪。 大數(shù)據(jù)機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘的并行化算法研究成為大數(shù)據(jù)領(lǐng)域一個(gè)較為重要的研究熱點(diǎn)。早幾年國(guó)內(nèi)外研究者和業(yè)界比較關(guān)注的是在 Hadoop 平臺(tái)上的并行化算法設(shè)計(jì)。然而, HadoopMapReduce 平臺(tái)由于網(wǎng)絡(luò)和磁盤(pán)讀寫(xiě)開(kāi)銷大,難以高效地實(shí)現(xiàn)需要大量迭代計(jì)算的機(jī)器學(xué)習(xí)并行化算法。隨著 UC Berkeley AMPLab 推出的新一代大數(shù)據(jù)平臺(tái) Spark 系統(tǒng)的出現(xiàn)和逐步發(fā)展成熟,近年來(lái)國(guó)內(nèi)外開(kāi)始關(guān)注在 Spark 平臺(tái)上如何實(shí)現(xiàn)各種機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘并行化算法設(shè)計(jì)。為了方便一般應(yīng)用領(lǐng)域的數(shù)據(jù)分析人員使用所熟悉的 R 語(yǔ)言在 Spark 平臺(tái)上完成數(shù)據(jù)分析,Spark 提供了一個(gè)稱為 SparkR 的編程接口,使得一般應(yīng)用領(lǐng)域的數(shù)據(jù)分析人員可以在 R 語(yǔ)言的環(huán)境里方便地使用 Spark 的并行化編程接口和強(qiáng)大計(jì)算能力。 [6] Spark是什么? 說(shuō)起大數(shù)據(jù),想必大家不陌生,這幾乎貫穿了我們的生活,而大數(shù)據(jù)作用到的一個(gè)技術(shù)就是Spark,Spark是由加州大學(xué)伯克利分校的AMP實(shí)驗(yàn)室開(kāi)發(fā)的用來(lái)處理的統(tǒng)一分析引擎,它的以構(gòu)建大型的,低延遲的數(shù)據(jù)分析系統(tǒng),它的主要特點(diǎn)就是可以在內(nèi)存中計(jì)算,依靠磁盤(pán)去處理復(fù)雜的算法。 大數(shù)據(jù)工作流程是什么樣的? 大數(shù)據(jù),顧名思義就是處理數(shù)據(jù)的技術(shù),把他看做一個(gè)醫(yī)院,這時(shí)的Master就好像是門(mén)診,它把用戶按照不同得病因分給不同的醫(yī)科部門(mén)(worker),這時(shí)的病人需要治療(APP),但是這個(gè)流程不可能只用一種藥物(job),這時(shí)的流程就需要主治醫(yī)師處理,而它的技能就好 你知道大數(shù)據(jù)的數(shù)據(jù)引擎Spark有哪些組建么? 那些高科技用到了Spark? 人工智能的核心就起大數(shù)據(jù),通過(guò)大數(shù)據(jù)分析來(lái)決定執(zhí)行那一步,Spark被用在了大數(shù)據(jù)領(lǐng)域,因?yàn)槠淠軌蛱幚泶罅康臄?shù)據(jù),依靠磁盤(pán)并能進(jìn)行了復(fù)雜的運(yùn)算,這些的特點(diǎn),正是為人工智能提供了核心大腦,Spark這么強(qiáng)大,你有什么想法,歡迎評(píng)論留言! 什么是spark? Spark是一種快速、通用、可擴(kuò)展的大數(shù)據(jù)分析引擎,它2009年誕生于加州大學(xué)伯克利分校AMPLab,2013年6月成為Apache培養(yǎng)項(xiàng)目,2014年2月成為Apache頂級(jí)項(xiàng)目。目前,Spark生態(tài)系統(tǒng)已經(jīng)發(fā)展成為一個(gè)包含多個(gè)子項(xiàng)目的集合,其中包含Spar spark的作業(yè)? spark有兩個(gè)基礎(chǔ)作用 1中間結(jié)果的輸出:基于MapReduce的計(jì)算引擎通常會(huì)將中間結(jié)果輸出到磁盤(pán)上,進(jìn)行存儲(chǔ)和容錯(cuò)。出于任務(wù)管道承接的考慮,當(dāng)一些查詢翻譯到MapReduce任務(wù)時(shí),往往會(huì)產(chǎn)生多個(gè)Stage,而這些串聯(lián)的Stage又依賴于底層文件系統(tǒng)來(lái)存 參考資料 1Spark 3.0.0發(fā)布.spark官網(wǎng).2020-08-07 [引用日期2020-08-07] 2spark.a(chǎn)pache [引用日期2017-02-11] 3Holden Karau.Spark快速大數(shù)據(jù)分析.人民郵電出版社.2015-09-01 4[原]海納百川 有容乃大:SparkR與Docker的機(jī)器學(xué)習(xí)實(shí)戰(zhàn).Segmentfault [引用日期2016-03-23] 5[譯]打造大數(shù)據(jù)產(chǎn)品:Shiny的Spark之旅.SegmentFault [引用日期2016-02-20] 6劉志強(qiáng)等:基于 SparkR 的分類算法并行化研究.chinacloud [引用日期2016-03-27] 該文章在 2024/12/11 9:47:08 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |