Spark和MR的區(qū)別是什么

本篇內(nèi)容主要講解“Spark 和 MR 的區(qū)別是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“Spark 和 MR 的區(qū)別是什么”吧!

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站制作、做網(wǎng)站、墾利網(wǎng)絡(luò)推廣、小程序制作、墾利網(wǎng)絡(luò)營銷、墾利企業(yè)策劃、墾利品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供墾利建站搭建服務(wù),24小時服務(wù)熱線:13518219792,官方網(wǎng)址:bm7419.com

先說結(jié)論:Hadoop MapReduce采用了多進程模型,而Spark采用了多線程模型

接下來,來一起分析,這兩種模式的區(qū)別以及優(yōu)缺點:

Apache Spark的高性能一定程度上取決于它采用的異步并發(fā)模型(這里指server/driver 端采用的模型),這與Hadoop 2.X(包括YARN和MapReduce)是一致的。

Hadoop 2.X自己實現(xiàn)了類似Actor的異步并發(fā)模型,實現(xiàn)方式是epoll+狀態(tài)機,而Apache Spark則直接采用了開源軟件Akka,該軟件實現(xiàn)了Actor模型,性能非常高。

盡管二者在 server 端采用了一致的并發(fā)模型,但在任務(wù)級別(特指 Spark任務(wù)和MapReduce任務(wù))上卻采用了不同的并行機制:Hadoop MapReduce采用了多進程模型,而Spark采用了多線程模型。

注意,本文的多進程和多線程,指的是同一個節(jié)點上多個任務(wù)的運行模式。無論是MapReduce和Spark,整體上看,都是多進程:MapReduce應(yīng)用程序是由多個獨立的Task進程組成的;Spark應(yīng)用程序的 運行環(huán)境是由多個獨立的Executor進程構(gòu)建的臨時資源池構(gòu)成的。

多進程模型便于細(xì)粒度控制每個任務(wù)占用的資源,但會消耗較多的啟動時間,不適合運行低延遲類型的作業(yè),這是MapReduce廣為詬病的原因之一。而多線程模型則相反,該模型使得Spark很適合運行低延遲類型的作業(yè)??傊琒park同節(jié)點上的任務(wù)以多線程的方式運行在一個JVM進程中,可帶來以下好處:

1)任務(wù)啟動速度快,與之相反的是MapReduce Task進程的慢啟動速度,通常需要1s左右;

2)同節(jié)點上所有任務(wù)運行在一個進程中,有利于共享內(nèi)存。這非常適合內(nèi)存密集型任務(wù),尤其對于那些需要加載大量詞典的應(yīng)用程序,可大大節(jié)省內(nèi)存。

3) 同節(jié)點上所有任務(wù)可運行在一個JVM進程(Executor)中,且Executor所占資源可連續(xù)被多批任務(wù)使用,不會在運行部分任務(wù)后釋放掉,這避免了每個任務(wù)重復(fù)申請資源帶來的時間開銷,對于任務(wù)數(shù)目非常多的應(yīng)用,可大大降低運行時間。與之對比的是MapReduce中的Task:每個Task單獨申請資源,用完后馬上釋放,不能被其他任務(wù)重用,但是可以通過設(shè)置 mapred.job.reuse.jvm.num.tasks = 大于 0 的值,來開啟 JVM 重用。(開啟 JVM 重用:這個功能的缺點是,開啟JVM重用將一直占用使用到的task插槽,以便進行重用,直到任務(wù)完成后才能釋放。如果某個“不平衡的”job中有某幾個reduce task執(zhí)行的時間要比其他Reduce task消耗的時間多的多的話,那么保留的插槽就會一直空閑著卻無法被其他的job使用,直到所有的task都結(jié)束了才會釋放)

盡管Spark的過線程模型帶來了很多好處,但同樣存在不足,主要有:

1)由于同節(jié)點上所有任務(wù)運行在一個進程中,因此,會出現(xiàn)嚴(yán)重的資源爭用,難以細(xì)粒度控制每個任務(wù)占用資源。與之相 反的是MapReduce,它允許用戶單獨為Map Task和Reduce Task設(shè)置不同的資源,進而細(xì)粒度控制任務(wù)占用資源量,有利于大作業(yè)的正常平穩(wěn)運行。

到此,相信大家對“Spark 和 MR 的區(qū)別是什么”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

本文標(biāo)題:Spark和MR的區(qū)別是什么
網(wǎng)頁地址:http://bm7419.com/article48/gihdep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、網(wǎng)站導(dǎo)航網(wǎng)站改版、小程序開發(fā)外貿(mào)建站、標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司