Spark | MapReduce | |
數(shù)據(jù)存儲結(jié)構(gòu) | 使用內(nèi)存構(gòu)建彈性分布式數(shù)據(jù)集RDD,對數(shù)據(jù)進行運算和cache。 | 磁盤HDFS文件系統(tǒng)的split |
編程范式 | DAG(Transformation+Action) | Map+Reduce |
計算中間結(jié)果的存儲 | 在內(nèi)存中維護,存取速度比磁盤高幾個數(shù)量級 | 落到磁盤,IO及序列化、反序列化代價大 |
Task維護方式 | 線程 | 進程 |
時間 | 對于小數(shù)據(jù)集讀取能夠達到亞秒級的延遲 | 需要數(shù)秒時間才能啟動任務(wù) |
時間跨度在數(shù)十分鐘到數(shù)小時
Haoop MapReduce
時間跨度在數(shù)十秒到數(shù)分鐘
Cloudera、Impala 這兩者實時性均優(yōu)于hive。
時間跨度在數(shù)百毫秒到數(shù)秒
Storm
Spark采用Executor的優(yōu)點:(相比于Hadoop的MR)
當(dāng)執(zhí)行一個Application時,Driver會向集群管理器申請資源,啟動Executor,
并向Executor發(fā)送應(yīng)用程序代碼和文件,然后在Executor上執(zhí)行Task,運行結(jié)束后,
執(zhí)行結(jié)果會返回給Driver,或者寫到HDFS或者其他數(shù)據(jù)庫中。
1. 為應(yīng)用構(gòu)建起基本的運行環(huán)境,即由Driver創(chuàng)建一個SparkContext進行資源的申請、任務(wù)的分配和監(jiān)控。
2. 資源管理器為Executor分配資源,并啟動Executor進程。
4. Task在Executor上運行把執(zhí)行結(jié)果反饋給TaskScheduler,然后反饋給DAGScheduler,運行完畢后寫入數(shù)據(jù)并釋放所有資源。
1. 每個Application都有自己專屬的Executor進程,并且該進程在Application運行期間一直駐留。Executor進程以多線程的方式運行Task。
2. Spark運行過程與資源管理器無關(guān),只要能夠獲取Executor進程并保持通信即可。
3. Task采用了數(shù)據(jù)本地性和推測執(zhí)行等優(yōu)化機制。(計算向數(shù)據(jù)靠攏。)
類似于MR1.0,slot為資源分配單位,但性能并不好。
Mesos和Spark有一定的親緣關(guān)系。
mesos和yarn的聯(lián)系
這種部署方式較為繁瑣。
Spark用快速的小批量計算模擬流計算,并非真實的流計算。
無法實現(xiàn)毫秒級的流計算,對于需要毫秒級實時響應(yīng)的企業(yè)應(yīng)用而言,仍需采用流計算框架Storm等。
好處如下:
現(xiàn)狀:
1. Spark目前還是無法取代Hadoop生態(tài)系統(tǒng)中的一些組件所實現(xiàn)的功能。
2. 現(xiàn)有的Hadoop組件開發(fā)的應(yīng)用,完全遷移到Spark上需要一定的成本。
到此這篇關(guān)于Spark簡介以及與Hadoop對比分析的文章就介紹到這了,更多相關(guān)Spark與Hadoop內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
標(biāo)簽:那曲 松原 蕪湖 慶陽 泰州 朝陽 銅川 周口
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Spark簡介以及與Hadoop對比分析》,本文關(guān)鍵詞 Spark,簡介,以及,與,Hadoop,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。