91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

MapReduce的工作機制是什么

發布時間:2021-06-22 17:47:53 來源:億速云 閱讀:165 作者:chen 欄目:大數據

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

剖析MapReduce 作業運行機制

靜態圖:

MapReduce的工作機制是什么

動態圖:

MapReduce的工作機制是什么

進度和狀態的更新

MapReduce的工作機制是什么

失敗

  • map任務或reduce 任務中的用戶代碼拋出運行異常

  • JVM突然退出

  • 節點管理器運行失敗

  • 資源管理器運行失敗

    • 獲得高可用性,HA, 在雙機熱備模式下,運行一對資源管理器是必要的

shuffle 和排序

  • MapReduce 確保每個reducer 的輸入都是按鍵排序的。系統執行排序、將map輸出作為輸入傳給reducer的過程稱為shuffle.

  • map 端

    map 函數開始產生輸出時,并不是簡單地將它寫入到磁盤。這個過程更為復雜,它利用緩沖的方式寫到內存并出于效率的考慮進行預排序。

    每個map任務都有一個環形內存緩沖區用于存儲任務存儲任務輸出。在默認情況下,緩沖區的大小為100Mb,這個值可以通過改變mapreduce.task.io.sort.mb性來調整。一但鍰沖內容達到閾值(mapreduce.map.sort.spill.percent,默認為0.80,或80%),一個后臺線程便開始把內容溢出(spill)到磁盤。在溢出寫到磁盤過程中,map輸出繼續寫到緩沖區,但如果在此期間緩沖區被填滿,map會被阻塞直到寫磁盤過程完成。溢出寫過程按輪詢方式將緩沖區中的內容寫到mapreduce.cluster.local.dir屬性在作業特定子目錄下指定的目錄中。

    在寫磁盤之前,線程首先根據數據最終要傳的reducer把數據劃分成相應的分區(partition)。在每個分區中,后臺線程按鍵進行內存中排序,如果有一個combiner函數,它就在排序后的輸出上運行。運行combiner函數使得map輸出結果更緊湊,因此減少寫到磁盤的數據和傳遞給reducer的數據。

    每次內存緩沖區達到溢出閾值,就會新建一個溢出文件(spill file),因此在map任務寫完其最后一個輸出記錄之后,會有幾個溢出文件。在任務完成之前,溢出文件被合并成一個已分區且已排序的輸出文件。配置屬性mapreduce.task.io.sort.factor控制著一次最多能合并多少流,默認值是10。

    如果至少存在3個溢出文件(通過mapreduce.map.combine.minspills屬性設置)時,則combiner就會在輸出文件寫到磁盤之前再次運行。前面曾講過,combiner可以在輸人上反復運行,但并不影響最終結果。如果只有1或2個溢出文件,那么由于map輸出規模減少,因而不值得調用combiner帶來的開銷,因此不會為該map輸出再次運行combiner。

    在將壓縮map輸出寫到磁盤的過程中對它進行壓縮往往是個很好的主意,因為這樣會寫磁盤的速度更快,節約磁盤空間,并且減少傳給reducer的數據量。在默認情況下,輸出是不壓縮的,但只要將mapreduce.map.output.compress設置為true,就可以輕松啟用此功能。使用的壓縮庫由mapreduce.map.output.compress.codec指定。

    reducer通過HTTP得到輸出文件的分區。用于文件分區的工作線程的數量由任務的mapreduce.shuffle.max.threads屬性控制,此設置針對的是每一個節點管理器,而不是針對每個map任務。默認值0將最大線程數設置為機器中處理器數量的兩倍。

    • 給shuffle 過程盡量多提供內存空間

    • 寫map函數和reduce 函數時盡量少用內存,不應該無限使用內存

    • 在map端,可以通過避免多次溢出寫磁盤來獲得最佳性能

    • 在reduce端,中間數據全部駐留在內存時,就能獲得最佳性能

    • reduce 端

    • 配置調優

任務的執行

  • 推測執行 并行執行過程中,對于拖后腿的任務,Hadoop不會嘗試診斷或修復執行緩慢的任務,相反,在一個任務運行比預期慢的時候,它會盡量檢測,并啟動另一個相同的任務作為備份。這就是所謂的“推測執行”

  • OutputCommitters

hadoop MapReduce 使用一個提交協議來確保作業和任務都完全成功或失敗。這個行為通過對作業使用OutputCommitters 來實現

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

向AI問一下細節

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

AI

乌海市| 诏安县| 赣州市| 池州市| 汽车| 马关县| 无棣县| 兴宁市| 措勤县| 长顺县| 桃源县| 封丘县| 繁昌县| 大同市| 曲松县| 宜兴市| 彝良县| 呼伦贝尔市| 新化县| 营口市| 勐海县| 平和县| 康定县| 葫芦岛市| 逊克县| 内丘县| 姜堰市| 开封市| 沙坪坝区| 叶城县| 凤山县| 宝鸡市| 扶沟县| 岱山县| 宣城市| 长汀县| 德化县| 金平| 琼海市| 胶州市| 泗水县|