對Hadoop和ApacheSPark的選擇哪個更好
我相信你和我一樣讀過這篇文章,對Hadoop和ApacheSPark的選擇有一些疑問。在今天查閱了大量的信息之后,讓我們來談?wù)勥@兩個平臺的比較和選擇,看看哪一個更適合工作和發(fā)展。
大數(shù)據(jù):Hadoop還是Spark?
一、Hadoop與Spark
1.Spark
SMACK是一個快速通用的集群計算平臺。在速度方面,Spark擴(kuò)展了廣泛使用的MapReduce計算模型,有效地支持更多的計算模型,包括交互式查詢和流處理。
星火項目包含許多緊密集成的組件。spark的核心是一個計算引擎,它調(diào)度、分發(fā)和監(jiān)視由多臺工作機(jī)器或計算集群上運行的許多計算任務(wù)組成的應(yīng)用程序。
2.Hadoop
Hadoop是ApacheFoundation開發(fā)的分布式系統(tǒng)基礎(chǔ)設(shè)施。用戶可以在不了解分布式底層細(xì)節(jié)的情況下開發(fā)分布式程序。充分利用集群的功率進(jìn)行高速運行和存儲.Hadoop框架的核心設(shè)計是HDFS和MapReduce。HDFS為海量數(shù)據(jù)提供存儲,而MapReduce則為海量數(shù)據(jù)提供計算。
二、異與同
解決問題的層面不一樣
首先,Hadoop和ApacheSirk都是大數(shù)據(jù)框架,但它們的存在有著不同的目的。Hadoop本質(zhì)上是一種分布式數(shù)據(jù)基礎(chǔ)設(shè)施:它將龐大的數(shù)據(jù)集分發(fā)到一個普通計算機(jī)集群中的多個節(jié)點,這意味著您不需要購買和維護(hù)昂貴的服務(wù)器硬件。同時,Hadoop將對這些數(shù)據(jù)進(jìn)行索引和跟蹤,使大型數(shù)據(jù)的處理和分析效率達(dá)到了前所未有的高水平。火花,是一種用來處理大數(shù)據(jù)的分布式存儲,它不存儲分布式數(shù)據(jù)。
兩者可合可分
Hadoop提供了一個名為mapreduce的數(shù)據(jù)處理函數(shù),以及我們都同意的HDFS分布式數(shù)據(jù)存儲函數(shù)。因此,我們可以單獨使用SPark,并使用Hadoop自己的MapReduce來處理數(shù)據(jù)。
相反,星火并不一定要附在Hadoop上才能生存。但如上所述,它畢竟沒有提供文件管理系統(tǒng),因此必須與其他分布式文件系統(tǒng)集成才能工作。在這里,我們可以選擇Hadoop的HDF或其他基于云的數(shù)據(jù)系統(tǒng)平臺。但是SPark在默認(rèn)情況下仍然是在Hadoop上使用的,畢竟,每個人都認(rèn)為他們的組合是最好的。
順便說一句,什么是MapReduce:我們需要清點圖書館里所有的書。你數(shù)書架1,我數(shù)書架2。這是地圖。我們擁有的人越多,我們就越快地數(shù)書?,F(xiàn)在讓我們一起匯總所有的統(tǒng)計數(shù)據(jù)。這是減少。
火花數(shù)據(jù)處理速度輕松擊敗MapReduce
Spark比MapReduce快得多,因為它處理數(shù)據(jù)的方式不同。MapReduce通過步驟來處理數(shù)據(jù)步驟:"從集群中讀取數(shù)據(jù),處理一次,將結(jié)果寫入集群,從集群中讀取更新后的數(shù)據(jù),處理下一次,將結(jié)果寫入集群等。"BoozAllenHamilton的數(shù)據(jù)科學(xué)家Kirk Borne像這樣解析數(shù)據(jù)。
另一方面,Spark將在接近“實時”的時間內(nèi)完成內(nèi)存中的所有數(shù)據(jù)分析:“從集群中讀取數(shù)據(jù),完成所有必要的分析和處理,將結(jié)果寫回集群,完成它,”Born說。SPark的批處理速度比MapReduce快近10倍,內(nèi)存中數(shù)據(jù)分析的速度快近100倍。如果需要處理的數(shù)據(jù)和結(jié)果要求大部分是靜態(tài)的,并且您有耐心等待批處理完成,那么MapReduce是完全可以接受的。
但是,如果需要對對流數(shù)據(jù)進(jìn)行分析,例如由工廠傳感器收集的數(shù)據(jù),或者如果應(yīng)用程序需要多個數(shù)據(jù)處理,則可能需要使用火花進(jìn)行處理。大多數(shù)機(jī)器學(xué)習(xí)算法需要多個數(shù)據(jù)處理。此外,通常會用到Spark的應(yīng)用場景有以下方面:實時的市場活動,在線產(chǎn)品推薦,網(wǎng)絡(luò)安全分析,機(jī)器日記監(jiān)控等。
Recovery 恢復(fù)
災(zāi)難恢復(fù)的兩種方法是完全不同的,但是它們是非常好的。因為Hadoop將處理過的數(shù)據(jù)寫入磁盤,所以它天生就能夠抵御系統(tǒng)錯誤。Spark的數(shù)據(jù)對象存儲在稱為彈性分布式數(shù)據(jù)集的數(shù)據(jù)集群中?!斑@些數(shù)據(jù)對象可以放在內(nèi)存或磁盤中,因此RDD還可以提供完整的災(zāi)難恢復(fù)功能?!?/div>
三、學(xué)哪個?
事實上,正如你所知,Spark是大數(shù)據(jù)行業(yè)的一顆新星。與Hadoop相比,Spark有很多優(yōu)點。Hadoop在大數(shù)據(jù)行業(yè)中得到了很好的認(rèn)可,主要是因為:
Hadoop解決了大數(shù)據(jù)的可靠存儲和處理問題。
Hadoop的開源,讓很多大數(shù)據(jù)從業(yè)者從中找到靈感,方便實用;
Hadoop已開發(fā)多年,具有完整的生態(tài)系統(tǒng)。
HDFS在普通PC上提供高可靠的文件存儲,并通過存儲多個塊副本來解決服務(wù)器或硬盤損壞的問題。
MapReduce通過簡單Mapper和Reducer的抽象提供了一個模型,它可以在數(shù)十到數(shù)百臺PC機(jī)的不可靠集群上以分布式方式處理大量數(shù)據(jù)集,同時具有并發(fā)性。計算細(xì)節(jié),如分布式和故障恢復(fù)是隱藏的。
Hadoop也有許多局限性和缺點。一般來說,在數(shù)據(jù)量增加的情況下,Hadoop的計算速度會變得越來越困難。雖然Hadoop目前在大數(shù)據(jù)產(chǎn)業(yè)中的應(yīng)用頻率仍然很高,但在幾年后數(shù)據(jù)量上升幾個數(shù)量級時,也不難想象Hadoop所面臨的困境。Spark的計算速度比Hadoop快1%甚至更快,因此在未來,Spark將不可避免地取代Hadoop,主宰大數(shù)據(jù)產(chǎn)業(yè)。
所以你可以跳過Hadoop,只需要學(xué)習(xí)火花?當(dāng)然不是,原因如下:
在現(xiàn)階段,Hadoop仍然占據(jù)著大數(shù)據(jù)領(lǐng)域的主導(dǎo)地位,我們可以學(xué)習(xí)先進(jìn)的技術(shù),但也為了現(xiàn)階段的就業(yè)目的,就現(xiàn)階段而言,大數(shù)據(jù)必須學(xué)習(xí)Hadoop。
MapReduce有許多值得學(xué)習(xí)的經(jīng)典思想,對我們理解大數(shù)據(jù)非常有幫助。
確切地說,SPark正在取代Hadoop中的MapReduce,而不是Hadoop,Hadoop是一個工具包,而SPark,就像MapReduce一樣,只是一個工具。
結(jié)論:
如果你在算法工程領(lǐng)域,學(xué)習(xí)Hadoop和Spark。如果你是一個大數(shù)據(jù)研究員,那么你應(yīng)該精通這兩種類型。所以,這里的建議是,對于那些對ML和大數(shù)據(jù)的發(fā)展感興趣的人來說,你可以遵循Java-Hadoop-Skar的路徑。如果你有C++和SQL的基礎(chǔ),學(xué)習(xí)曲線就不會特別陡峭。對于spark,學(xué)習(xí)一點scala會更有幫助。
中國· 上海

添加微信咨詢
關(guān)鍵詞
辦公室:上海市浦東新區(qū)郭守敬路351號
CopyRight?2009-2019 上海谷谷網(wǎng)絡(luò)科技有限公司 All Rights Reserved. 滬ICP備11022482號-8
- top
- 在線咨詢
-
添加微信咨詢