您好,登錄后才能下訂單哦!
本篇文章為大家展示了怎么進行Spark和MapReduce的對比,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
下面給大家介紹Spark和MapReduce,并且能夠在遇到諸如"MapReduce相對于Spark的局限性?"
首先,大多數(shù)機器學習算法的核心是什么?就是對同一份數(shù)據(jù)在訓練模型時,進行不斷的迭代、調參然后形成一個相對優(yōu)的模型。而Spark作為一個基于內存迭代式大數(shù)據(jù)計算引擎很適合這樣的場景,之前的文章《Spark RDD詳解》也有介紹,對于相同的數(shù)據(jù)集,我們是可以在第一次訪問它之后,將數(shù)據(jù)集加載到內存,后續(xù)的訪問直接從內存中取即可。但是MapReduce由于運行時中間結果必然刷磁盤等因素,導致不適合機器學習等的迭代場景應用,還有就是HDFS本身也有緩存功能,官方的對比極有可能在運行邏輯回歸時沒有很好配置該緩存功能,否則性能差距也不至于這么大。
1.集流批處理、交互式查詢、機器學習及圖計算等于一體
2.基于內存迭代式計算,適合低延遲、迭代運算類型作業(yè)
3.可以通過緩存共享rdd、DataFrame,提升效率【尤其是SparkSQL可以將數(shù)據(jù)以列式的形式存儲于內存中】
4.中間結果支持checkpoint,遇錯可快速恢復
5.支持DAG、map之間以pipeline方式運行,無需刷磁盤
6.多線程模型,每個worker節(jié)點運行一個或多個executor服務,每個task作為線程運行在executor中,task間可共享資源
1.適合離線數(shù)據(jù)處理,不適合迭代計算、交互式處理、流式處理
2.中間結果需要落地,需要大量的磁盤IO和網(wǎng)絡IO影響性能
3.雖然MapReduce中間結果可以存儲于HDFS,利用HDFS緩存功能,但相對Spark緩存功能較低效
4.多進程模型,任務調度(頻繁申請、釋放資源)和啟動開銷大,不適合低延遲類型作業(yè)
5.MR編程不夠靈活,僅支持map和reduce兩種操作。當一個計算邏輯復雜的時候,需要寫多個MR任務運行【并且這些MR任務生成的結果在下一個MR任務使用時需要將數(shù)據(jù)持久化到磁盤才行,這就不可避免的進行遭遇大量磁盤IO影響效率】
上述內容就是怎么進行Spark和MapReduce的對比,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。