您好,登錄后才能下訂單哦!
這篇文章主要講解了“Hadoop集群技術(shù)與Spark集群技術(shù)有哪些區(qū)別”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Hadoop集群技術(shù)與Spark集群技術(shù)有哪些區(qū)別”吧!
Hadoop:分布式批處理計(jì)算,強(qiáng)調(diào)批處理,常用于數(shù)據(jù)挖掘、分析。
Spark:是一個(gè)基于內(nèi)存計(jì)算的開源的集群計(jì)算系統(tǒng),目的是讓數(shù)據(jù)分析更加快速, Spark 是一種與 Hadoop 相似的開源集群計(jì)算環(huán)境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 Spark 在某些工作負(fù)載方面表現(xiàn)得更加優(yōu)越,換句話說,Spark 啟用了內(nèi)存分布數(shù)據(jù)集,除了能夠提供交互式查詢外,它還可以優(yōu)化迭代工作負(fù)載。
Spark 是在 Scala 語言中實(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)行。通過名為Mesos的第三方集群框架可以支持此行為。Spark 由加州大學(xué)伯克利分校 AMP 實(shí)驗(yàn)室 (Algorithms,Machines,and People Lab) 開發(fā),可用來構(gòu)建大型的、低延遲的數(shù)據(jù)分析應(yīng)用程序。
雖然 Spark 與 Hadoop 有相似之處,但它提供了具有有用差異的一個(gè)新的集群計(jì)算框架。首先,Spark 是為集群計(jì)算中的特定類型的工作負(fù)載而設(shè)計(jì),即那些在并行操作之間重用工作數(shù)據(jù)集(比如機(jī)器學(xué)習(xí)算法)的工作負(fù)載。為了優(yōu)化這些類型的工作負(fù)載,Spark 引進(jìn)了內(nèi)存集群計(jì)算的概念,可在內(nèi)存集群計(jì)算中將數(shù)據(jù)集緩存在內(nèi)存中,以縮短訪問延遲.
在大數(shù)據(jù)處理方面相信大家對(duì)hadoop已經(jīng)耳熟能詳,基于GoogleMap/Reduce來實(shí)現(xiàn)的Hadoop為開發(fā)者提供了map、reduce原語,使并行批處理程序變得非常地簡(jiǎn)單和優(yōu)美。Spark提供的數(shù)據(jù)集操作類型有很多種,不像Hadoop只提供了Map和Reduce兩種操作。比如map,filter, flatMap,sample, groupByKey, reduceByKey, union,join, cogroup,mapValues, sort,partionBy等多種操作類型,他們把這些操作稱為Transformations。同時(shí)還提供Count,collect, reduce, lookup, save等多種actions。這些多種多樣的數(shù)據(jù)集操作類型,給上層應(yīng)用者提供了方便。各個(gè)處理節(jié)點(diǎn)之間的通信模型不再像Hadoop那樣就是唯一的Data Shuffle一種模式。用戶可以命名,物化,控制中間結(jié)果的分區(qū)等??梢哉f編程模型比Hadoop更靈活.
Hadoop和Spark均是大數(shù)據(jù)框架,都提供了一些執(zhí)行常見大數(shù)據(jù)任務(wù)的工具。但確切地說,它們所執(zhí)行的任務(wù)并不相同,彼此也并不排斥。雖然在特定的情況下,Spark據(jù)稱要比Hadoop快100倍,但它本身沒有一個(gè)分布式存儲(chǔ)系統(tǒng)。而分布式存儲(chǔ)是如今許多大數(shù)據(jù)項(xiàng)目的基礎(chǔ)。它可以將PB級(jí)的數(shù)據(jù)集存儲(chǔ)在幾乎無限數(shù)量的普通計(jì)算機(jī)的硬盤上,并提供了良好的可擴(kuò)展性,只需要隨著數(shù)據(jù)集的增大增加硬盤。因此,Spark需要一個(gè)第三方的分布式存儲(chǔ)。也正是因?yàn)檫@個(gè)原因,許多大數(shù)據(jù)項(xiàng)目都將Spark安裝在Hadoop之上。這樣,Spark的高級(jí)分析應(yīng)用程序就可以使用存儲(chǔ)在HDFS中的數(shù)據(jù)了。
與Hadoop相比,Spark真正的優(yōu)勢(shì)在于速度。Spark的大部分操作都是在內(nèi)存中,而Hadoop的MapReduce系統(tǒng)會(huì)在每次操作之后將所有數(shù)據(jù)寫回到物理存儲(chǔ)介質(zhì)上。這是為了確保在出現(xiàn)問題時(shí)能夠完全恢復(fù),但Spark的彈性分布式數(shù)據(jù)存儲(chǔ)也能實(shí)現(xiàn)這一點(diǎn)。
另外,在高級(jí)數(shù)據(jù)處理(如實(shí)時(shí)流處理和機(jī)器學(xué)習(xí))方面,Spark的功能要?jiǎng)龠^Hadoop。在Bernard看來,這一點(diǎn)連同其速度優(yōu)勢(shì)是Spark越來越受歡迎的真正原因。實(shí)時(shí)處理意味著可以在數(shù)據(jù)捕獲的瞬間將其提交給分析型應(yīng)用程序,并立即獲得反饋。在各種各樣的大數(shù)據(jù)應(yīng)用程序中,這種處理的用途越來越多,比如,零售商使用的推薦引擎、制造業(yè)中的工業(yè)機(jī)械性能監(jiān)控。Spark平臺(tái)的速度和流數(shù)據(jù)處理能力也非常適合機(jī)器學(xué)習(xí)算法。這類算法可以自我學(xué)習(xí)和改進(jìn),直到找到問題的理想解決方案。這種技術(shù)是最先進(jìn)制造系統(tǒng)(如預(yù)測(cè)零件何時(shí)損壞)和無人駕駛汽車的核心。Spark有自己的機(jī)器學(xué)習(xí)庫MLib,而Hadoop系統(tǒng)則需要借助第三方機(jī)器學(xué)習(xí)庫,如Apache Mahout。
實(shí)際上,雖然Spark和Hadoop存在一些功能上的重疊,但它們都不是商業(yè)產(chǎn)品,并不存在真正的競(jìng)爭(zhēng)關(guān)系,而通過為這類免費(fèi)系統(tǒng)提供技術(shù)支持贏利的公司往往同時(shí)提供兩種服務(wù)。例如,Cloudera就既提供Spark服務(wù)也提供Hadoop服務(wù),并會(huì)根據(jù)客戶的需要提供最合適的建議。
感謝各位的閱讀,以上就是“Hadoop集群技術(shù)與Spark集群技術(shù)有哪些區(qū)別”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Hadoop集群技術(shù)與Spark集群技術(shù)有哪些區(qū)別這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。