欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

大數(shù)據(jù)框架之Hadoop和Spark的異同

2018-03-13 11:50:05 7801瀏覽

面對(duì)Hadoop與Spark孰優(yōu)孰劣這個(gè)問(wèn)題,最準(zhǔn)確的觀點(diǎn)就是,設(shè)計(jì)人員旨在讓Hadoop和Spark在同一個(gè)團(tuán)隊(duì)里面協(xié)同運(yùn)行。



直接比較Hadoop和Spark有難度,因?yàn)樗鼈兲幚淼脑S多任務(wù)都一樣,但是在一些方面又并不相互重疊。

比如說(shuō),Spark沒(méi)有文件管理功能,因而必須依賴(lài)Hadoop分布式文件系統(tǒng)(HDFS)或另外某種解決方案。將HadoopMapReduce與Spark作一番比較來(lái)得更明智,因?yàn)樗鼈冏鳛閿?shù)據(jù)處理引擎更具有可比性。

過(guò)去幾年,隨著數(shù)據(jù)科學(xué)趨于成熟,也日益需要用一種不同的方法來(lái)處理大數(shù)據(jù)。Hadoop在一些業(yè)務(wù)應(yīng)用領(lǐng)域的表現(xiàn)比后起之秀Spark更勝一籌,不過(guò)Spark在大數(shù)據(jù)領(lǐng)域有其一席之地,這歸功于它具有速度快、易于使用的優(yōu)點(diǎn)。本文剖析了兩大平臺(tái)的一系列常見(jiàn)屬性,包括性能、容錯(cuò)、成本、易用性、數(shù)據(jù)處理、兼容性和安全性。

Hadoop和Spark方面要記住的最重要一點(diǎn)就是,它們并不是非此即彼的關(guān)系,因?yàn)樗鼈儾皇窍嗷ヅ懦?,也不是說(shuō)一方是另一方的簡(jiǎn)易替代者。兩者彼此兼容,這使得這對(duì)組合成為一種功能極其強(qiáng)大的解決方案,適合諸多大數(shù)據(jù)應(yīng)用場(chǎng)合。

Hadoop的定義

Hadoop是Apache.org的一個(gè)項(xiàng)目,其實(shí)是一種軟件庫(kù)和框架,以便使用簡(jiǎn)單的編程模型,跨計(jì)算器集群對(duì)龐大數(shù)據(jù)集(大數(shù)據(jù))進(jìn)行分布式處理。Hadoop可靈活擴(kuò)展,從單一計(jì)算機(jī)系統(tǒng),到提供本地存儲(chǔ)和計(jì)算能力的數(shù)千個(gè)商用系統(tǒng),它都能輕松支持。實(shí)際上,Hadoop就是大數(shù)據(jù)分析領(lǐng)域的重量級(jí)大數(shù)據(jù)平臺(tái)。

Hadoop由協(xié)同運(yùn)行、構(gòu)建Hadoop框架的多個(gè)模塊組成。Hadoop框架的主要模塊包括如下:

HadoopCommon

Hadoop分布式文件系統(tǒng)(HDFS)

HadoopYARN

HadoopMapReduce

雖然上述四個(gè)模塊構(gòu)成了Hadoop的核心,不過(guò)還有其他幾個(gè)模塊。這些模塊包括:Ambari、Avro、Cassandra、Hive、Pig、Oozie、Flume和Sqoop,它們進(jìn)一步增強(qiáng)和擴(kuò)展了Hadoop的功能,得以擴(kuò)大到大數(shù)據(jù)應(yīng)用領(lǐng)域,處理龐大數(shù)據(jù)集。

許多使用大數(shù)據(jù)集和分析工具的公司使用Hadoop。它已成為大數(shù)據(jù)應(yīng)用系統(tǒng)中事實(shí)上的標(biāo)準(zhǔn)。設(shè)計(jì)Hadoop的初衷是處理這項(xiàng)任務(wù):搜尋和搜索數(shù)十億個(gè)網(wǎng)頁(yè),將這些信息收集到數(shù)據(jù)庫(kù)中。正是由于渴望搜尋和搜索互聯(lián)網(wǎng),才有了Hadoop的HDFS及分布式處理引擎MapReduce。

如果數(shù)據(jù)集變得極其龐大或極其復(fù)雜,以至于當(dāng)前的解決方案無(wú)法在數(shù)據(jù)用戶認(rèn)為合理的時(shí)間段內(nèi)有效地處理信息,Hadoop對(duì)公司就會(huì)大有用處。

MapReduce是一種出色的文本處理引擎,它理應(yīng)如此,因?yàn)樗褜せヂ?lián)網(wǎng)和搜索互聯(lián)網(wǎng)(它的首要任務(wù))都是基于文本的任務(wù)。

Spark的定義

ApacheSpark開(kāi)發(fā)人員聲稱(chēng)它是“一種用于數(shù)據(jù)大規(guī)模處理的快速通用引擎”。相比之下,如果說(shuō)Hadoop的大數(shù)據(jù)框架好比是800磅重的大猩猩,Spark就好比是130磅重的獵豹。

雖然批評(píng)Spark的內(nèi)存處理技術(shù)的人士承認(rèn),Spark確實(shí)速度很快(最多比HadoopMapReduce快100倍),但他們可能并不愿意承認(rèn)它在磁盤(pán)上運(yùn)行起來(lái)速度最多快10倍。Spark還可以執(zhí)行批量處理,然而它真正擅長(zhǎng)的是處理流工作負(fù)載、交互式查詢(xún)和基于機(jī)器的學(xué)習(xí)。

相比MapReduce基于磁盤(pán)的批量處理引擎,Spark賴(lài)以成名之處是其數(shù)據(jù)實(shí)時(shí)處理功能。Spark與Hadoop及其模塊兼容。實(shí)際上,在Hadoop的項(xiàng)目頁(yè)面上,Spark就被列為是一個(gè)模塊。

Spark有自己的頁(yè)面,因?yàn)殡m然它可以通過(guò)YARN(另一種資源協(xié)調(diào)者)在Hadoop集群中運(yùn)行,但是它也有一種獨(dú)立模式。它可以作為Hadoop模塊來(lái)運(yùn)行,也可以作為獨(dú)立解決方案來(lái)運(yùn)行;這樣一來(lái),很難直接比較兩者。然而隨著時(shí)間的推移,一些大數(shù)據(jù)科學(xué)家預(yù)計(jì)Spark會(huì)出現(xiàn)分叉,可能會(huì)取代Hadoop,尤其是在更快速地訪問(wèn)處理的數(shù)據(jù)至關(guān)重要的情況下。

Spark是一種集群計(jì)算框架,這意味著它更多地與MapReduce競(jìng)爭(zhēng),而不是與整個(gè)Hadoop生態(tài)系統(tǒng)競(jìng)爭(zhēng)。比如說(shuō),Spark沒(méi)有自己的分布式文件系統(tǒng),但可以使用HDFS。

Spark使用內(nèi)存,也可以使用磁盤(pán)進(jìn)行處理,而MapReduce完全基于磁盤(pán)。MapReduce和Spark的主要區(qū)別在于,MapReduce使用持久存儲(chǔ),而Spark使用彈性分布式數(shù)據(jù)集(RDDS),下面容錯(cuò)部分有更詳細(xì)的解釋。

性能

網(wǎng)上不缺關(guān)于Spark與MapReduce相比有多快的信息。對(duì)兩者進(jìn)行比較有個(gè)問(wèn)題,那就是它們處理數(shù)據(jù)的方式不一樣,數(shù)據(jù)處理部分有介紹。Spark之所以如此快速,原因在于它在內(nèi)存中處理一切數(shù)據(jù)。沒(méi)錯(cuò),它還可以使用磁盤(pán)來(lái)處理未全部裝入到內(nèi)存中的數(shù)據(jù)。

Spark的內(nèi)存處理為來(lái)自多個(gè)來(lái)源的數(shù)據(jù)提供了近乎實(shí)時(shí)分析的功能:營(yíng)銷(xiāo)活動(dòng)、機(jī)器學(xué)習(xí)、物聯(lián)網(wǎng)傳感器、日志監(jiān)控、安全分析和社交媒體網(wǎng)站。另外,MapReduce使用批量處理,其實(shí)從來(lái)就不是為驚人的速度設(shè)計(jì)的。它的初衷是不斷收集來(lái)自網(wǎng)站的信息,不需要這些數(shù)據(jù)具有實(shí)時(shí)性或近乎實(shí)時(shí)性。

易用性

眾所周知,Spark以性能見(jiàn)長(zhǎng),但是它也因易用性而小有名氣,原因是它隨帶易于使用的API,支持Scala(原生語(yǔ)言)、Java、Python和SparkSQL。SparkSQL非常類(lèi)似于SQL92,所以幾乎不需要經(jīng)歷一番學(xué)習(xí),馬上可以上手。

Spark還有一種交互模式,那樣開(kāi)發(fā)人員和用戶都可以獲得查詢(xún)和其他操作的即時(shí)反饋。MapReduce沒(méi)有交互模式,不過(guò)有了Hive和Pig等附加模塊,采用者使用MapReduce來(lái)得容易一點(diǎn)。

成本

MapReduce和Spark都是Apache項(xiàng)目,這意味著它們是開(kāi)源免費(fèi)軟件產(chǎn)品。雖然軟件不需要成本,但是派人用硬件運(yùn)行任何一種平臺(tái)帶來(lái)了成本。這兩種產(chǎn)品都設(shè)計(jì)成可以在商用硬件上運(yùn)行,比如所謂的低成本白盒服務(wù)器系統(tǒng)。

MapReduce和Spark在同樣的硬件上運(yùn)行,那么這兩種解決方案的成本差異體現(xiàn)在哪里?MapReduce使用常規(guī)數(shù)量的內(nèi)存,因?yàn)閿?shù)據(jù)處理基于磁盤(pán),所以公司得購(gòu)買(mǎi)速度更快的磁盤(pán)和大量磁盤(pán)空間來(lái)運(yùn)行MapReduce。MapReduce還需要更多的系統(tǒng),將磁盤(pán)輸入/輸出分布到多個(gè)系統(tǒng)上。

Spark需要大量?jī)?nèi)存,但是可以使用常規(guī)數(shù)量的常規(guī)轉(zhuǎn)速磁盤(pán)。一些用戶抱怨會(huì)產(chǎn)生臨時(shí)文件,需要清理。這些臨時(shí)文件通常保存7天,以便加快針對(duì)同一數(shù)據(jù)集的任何處理。磁盤(pán)空間相對(duì)便宜,由于Spark不使用磁盤(pán)輸入/輸入用于處理,已使用的磁盤(pán)空間可以用于SAN或NAS。

然而,由于需要大量?jī)?nèi)存在內(nèi)存中處理一切數(shù)據(jù),Spark系統(tǒng)的成本更高,這點(diǎn)沒(méi)錯(cuò)。但是Spark的技術(shù)同時(shí)減少了所需的系統(tǒng)數(shù)量。所以,最后的情形是,系統(tǒng)成本較高,但是數(shù)量大大減少。也許到時(shí)候,Spark實(shí)際上可以降低每個(gè)計(jì)算單位的成本,盡管內(nèi)存方面有額外的要求。

舉例說(shuō)明,“Spark已證明在數(shù)據(jù)多達(dá)PB的情況下也輕松自如。它被用于在數(shù)量只有十分之一的機(jī)器上,對(duì)100TB數(shù)據(jù)進(jìn)行排序的速度比HadoopMapReduce快3倍?!边@一成績(jī)讓Spark成為2014年DaytonaGraySort基準(zhǔn)。

兼容性

MapReduce和Spark相互兼容;MapReduce通過(guò)JDBC和ODC兼容諸多數(shù)據(jù)源、文件格式和商業(yè)智能工具,Spark具有與MapReduce同樣的兼容性。

數(shù)據(jù)處理

MapReduce是一種批量處理引擎。MapReduce以順序步驟來(lái)操作,先從集群讀取數(shù)據(jù),然后對(duì)數(shù)據(jù)執(zhí)行操作,將結(jié)果寫(xiě)回到集群,從集群讀取更新后的數(shù)據(jù),執(zhí)行下一個(gè)數(shù)據(jù)操作,將那些結(jié)果寫(xiě)回到結(jié)果,依次類(lèi)推。Spark執(zhí)行類(lèi)似的操作,不過(guò)是在內(nèi)存中一步執(zhí)行。它從集群讀取數(shù)據(jù)后,對(duì)數(shù)據(jù)執(zhí)行操作,然后寫(xiě)回到集群。

Spark還包括自己的圖形計(jì)算庫(kù)GraphX。GraphX讓用戶可以查看與圖形和集合同樣的數(shù)據(jù)。用戶還可以使用彈性分布式數(shù)據(jù)集(RDD),改變和聯(lián)合圖形,容錯(cuò)部分作了討論。

容錯(cuò)

至于容錯(cuò),MapReduce和Spark從兩個(gè)不同的方向來(lái)解決問(wèn)題。MapReduce使用TaskTracker節(jié)點(diǎn),它為JobTracker節(jié)點(diǎn)提供了心跳(heartbeat)。如果沒(méi)有心跳,那么JobTracker節(jié)點(diǎn)重新調(diào)度所有將執(zhí)行的操作和正在進(jìn)行的操作,交給另一個(gè)TaskTracker節(jié)點(diǎn)。這種方法在提供容錯(cuò)性方面很有效,可是會(huì)大大延長(zhǎng)某些操作(即便只有一個(gè)故障)的完成時(shí)間。

Spark使用彈性分布式數(shù)據(jù)集(RDD),它們是容錯(cuò)集合,里面的數(shù)據(jù)元素可執(zhí)行并行操作。RDD可以引用外部存儲(chǔ)系統(tǒng)中的數(shù)據(jù)集,比如共享式文件系統(tǒng)、HDFS、HBase,或者提供HadoopInputFormat的任何數(shù)據(jù)源。Spark可以用Hadoop支持的任何存儲(chǔ)源創(chuàng)建RDD,包括本地文件系統(tǒng),或前面所列的其中一種文件系統(tǒng)。

RDD擁有五個(gè)主要屬性:

分區(qū)列表

計(jì)算每個(gè)分片的函數(shù)

依賴(lài)其他RDD的項(xiàng)目列表

面向鍵值RDD的分區(qū)程序(比如說(shuō)RDD是散列分區(qū)),這是可選屬性

計(jì)算每個(gè)分片的首選位置的列表(比如HDFS文件的數(shù)據(jù)塊位置),這是可選屬性

RDD可能具有持久性,以便將數(shù)據(jù)集緩存在內(nèi)存中。這樣一來(lái),以后的操作大大加快,最多達(dá)10倍。Spark的緩存具有容錯(cuò)性,原因在于如果RDD的任何分區(qū)丟失,就會(huì)使用原始轉(zhuǎn)換,自動(dòng)重新計(jì)算。

可擴(kuò)展性

按照定義,MapReduce和Spark都可以使用HDFS來(lái)擴(kuò)展。那么,Hadoop集群能變得多大呢?

據(jù)稱(chēng)雅虎有一套42000個(gè)節(jié)點(diǎn)組成的Hadoop集群,可以說(shuō)擴(kuò)展無(wú)極限。最大的已知Spark集群是8000個(gè)節(jié)點(diǎn),不過(guò)隨著大數(shù)據(jù)增多,預(yù)計(jì)集群規(guī)模也會(huì)隨之變大,以便繼續(xù)滿足吞吐量方面的預(yù)期。

安全

Hadoop支持Kerberos身份驗(yàn)證,這管理起來(lái)有麻煩。然而,第三方廠商讓企業(yè)組織能夠充分利用活動(dòng)目錄Kerberos和LDAP用于身份驗(yàn)證。同樣那些第三方廠商還為傳輸中數(shù)據(jù)和靜態(tài)數(shù)據(jù)提供數(shù)據(jù)加密。

Hadoop分布式文件系統(tǒng)支持訪問(wèn)控制列表(ACL)和傳統(tǒng)的文件權(quán)限模式。Hadoop為任務(wù)提交中的用戶控制提供了服務(wù)級(jí)授權(quán)(ServiceLevelAuthorization),這確保客戶擁有正確的權(quán)限。

Spark的安全性弱一點(diǎn),目前只支持通過(guò)共享密鑰(密碼驗(yàn)證)的身份驗(yàn)證。Spark在安全方面帶來(lái)的好處是,如果你在HDFS上運(yùn)行Spark,它可以使用HDFSACL和文件級(jí)權(quán)限。此外,Spark可以在YARN上運(yùn)行,因而能夠使用Kerberos身份驗(yàn)證。

總結(jié)HadoopvsSpark

乍一看,對(duì)任何大數(shù)據(jù)應(yīng)用而言,使用Spark似乎是默認(rèn)選擇。然而,事實(shí)并非如此。MapReduce已在大數(shù)據(jù)市場(chǎng)取得了進(jìn)展,尤其受到這種公司企業(yè)的追捧:需要由商用系統(tǒng)對(duì)龐大數(shù)據(jù)集加以控制。Spark的速度、靈活性和相對(duì)易用性對(duì)MapReduce的低操作成本來(lái)說(shuō)是絕對(duì)補(bǔ)充。

實(shí)際上,Spark與MapReduce是一種相互共生的關(guān)系。Hadoop提供了Spark所沒(méi)有的功能特性,比如分布式文件系統(tǒng),而Spark為需要它的那些數(shù)據(jù)集提供了實(shí)時(shí)內(nèi)存處理。完美的大數(shù)據(jù)場(chǎng)景正是設(shè)計(jì)人員當(dāng)初預(yù)想的那樣:讓Hadoop和Spark在同一個(gè)團(tuán)隊(duì)里面協(xié)同運(yùn)行。


最后想要了解更多關(guān)于大數(shù)據(jù)發(fā)展前景趨勢(shì),請(qǐng)關(guān)注扣丁學(xué)堂大數(shù)據(jù)培訓(xùn)官網(wǎng)、微信等平臺(tái),扣丁學(xué)堂IT職業(yè)在線學(xué)習(xí)教育平臺(tái)為您提供權(quán)威的大數(shù)據(jù)視頻教程系統(tǒng),通過(guò)千鋒旗下金牌講師在線錄制的大數(shù)據(jù)視頻教程系統(tǒng),讓你快速掌握大數(shù)據(jù)從入門(mén)到精通大數(shù)據(jù)開(kāi)發(fā)實(shí)戰(zhàn)技能??鄱W(xué)堂大數(shù)據(jù)學(xué)習(xí)群:209080834。


扣丁學(xué)堂微信公眾號(hào)



關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料



查看更多關(guān)于“大數(shù)據(jù)培訓(xùn)資訊的相關(guān)文章>>

標(biāo)簽: 大數(shù)據(jù)分析 大數(shù)據(jù)培訓(xùn) 大數(shù)據(jù)視頻教程 Hadoop視頻教程 大數(shù)據(jù)開(kāi)發(fā)工程師 大數(shù)據(jù)在線視頻 Spark視頻教程

熱門(mén)專(zhuān)區(qū)

暫無(wú)熱門(mén)資訊

課程推薦

微信
微博
15311698296

全國(guó)免費(fèi)咨詢(xún)熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號(hào)中關(guān)村智誠(chéng)科創(chuàng)大廈4層
京ICP備2021002079號(hào)-2   Copyright ? 2017 - 2022
返回頂部 返回頂部