亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spark 和 MR 的區別是什么

發布時間:2021-07-20 11:33:10 來源:億速云 閱讀:623 作者:chen 欄目:大數據

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

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

接下來,來一起分析,這兩種模式的區別以及優缺點:

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

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

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

注意,本文的多進程和多線程,指的是同一個節點上多個任務的運行模式。無論是MapReduce和Spark,整體上看,都是多進程:MapReduce應用程序是由多個獨立的Task進程組成的;Spark應用程序的 運行環境是由多個獨立的Executor進程構建的臨時資源池構成的。

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

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

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

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

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

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

到此,相信大家對“Spark 和 MR 的區別是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宝鸡市| 中西区| 江城| 乐东| 类乌齐县| 威海市| 彭泽县| 台中市| 林口县| 江永县| 溧水县| 德安县| 湘阴县| 安仁县| 越西县| 六枝特区| 曲水县| 安顺市| 西乡县| 稻城县| 宁夏| 高台县| 望城县| 蒙城县| 灯塔市| 宜君县| 金山区| 宁明县| 诏安县| 贵德县| 溧水县| 平乐县| 彭阳县| 牡丹江市| 策勒县| 宁波市| 石阡县| 高尔夫| 平阳县| 寿光市| 固原市|