1. 程式人生 > >簡單搞定Shuffle機制執行原理

簡單搞定Shuffle機制執行原理

2)流程詳解

上面的流程是整個mapreduce最全工作流程,但是shuffle過程只是從第7步開始到第16步結束,具體shuffle過程詳解,如下:

1maptask收集我們的map()方法輸出的kv對,放到記憶體緩衝區中

2)從記憶體緩衝區不斷溢位本地磁碟檔案,可能會溢位多個檔案

3)多個溢位檔案會被合併成大的溢位檔案

4)在溢位過程中,及合併的過程中,都要呼叫partitoner進行分組和針對key進行排序

5reducetask根據自己的分割槽號,去各個maptask機器上取相應的結果分割槽資料

6reducetask會取到同一個分割槽的來自不同maptask的結果檔案,

reducetask會將這些檔案再進行合併(歸併排序)

7)合併成大檔案後,shuffle的過程也就結束了,後面進入reducetask的邏輯運算過程(從檔案中取出一個一個的鍵值對group,呼叫使用者自定義的reduce()方法)

3)注意

Shuffle中的緩衝區大小會影響到mapreduce程式的執行效率,原則上說,緩衝區越大,磁碟io的次數越少,執行速度就越快。

緩衝區的大小可以通過引數調整,引數:io.sort.mb預設100M

相關推薦

簡單Shuffle機制執行原理

2)流程詳解 上面的流程是整個mapreduce最全工作流程,但是shuffle過程只是從第7步開始到第16步結束,具體shuffle過程詳解,如下: 1)maptask收集我們的map()方法輸出的kv對,放到記憶體緩衝區中 2)從記憶體緩衝區不斷溢位本地磁碟檔案,可能會溢位多個檔案 3)多個溢

簡單FileInputFormat切片機制

1 FileInputFormat切片機制 1)job提交流程原始碼詳解 waitForCompletion() submit(); // 1建立連線 connect(); // 1)建立提交job的代理 newCluster(getConfiguratio

數據預處理速度高倍提升,3行python代碼簡單

類別 解釋 resize 技術分享 可選 current python代碼 cross 系統 Python 是機器學習領域內的首選編程語言,它易於使用,也有很多出色的庫來幫助你更快處理數據。但當我們面臨大量數據時,一些問題就會顯現…… 目前,大數據(Big Data)這個術

python多執行緒和多程序

參考 https://www.cnblogs.com/whatisfantasy/p/6440585.html 1 概念梳理: 1.1 執行緒 1.1.1 什麼是執行緒 執行緒是作業系統能夠進行運算排程的最小單位。它被包含在程序之中,是程序中的實際運作單位。一條執行緒指的是程序中一個

Spark之Shuffle機制原理

Spark Shuffle簡介 Shuffle就是對資料進行重組,由於分散式計算的特性和要求,在實現細節上更加繁瑣和複雜 在MapReduce框架,Shuffle是連線Map和Reduce之間的橋樑,Map階段通過shuffle讀取資料並輸出到對應的Reduce

spark基礎之shuffle機制原理分析

一 概述 Shuffle就是對資料進行重組,由於分散式計算的特性和要求,在實現細節上更加繁瑣和複雜 在MapReduce框架,Shuffle是連線Map和Reduce之間的橋樑,Map階段通過shuf

【三步簡單】Adobe CC全系列(PS,PR,AE……)最新版軟體——安裝和破解

-------各位朋友注意:由於我這篇文章時間完成已經很久了,可能你下載的軟體和工具的版本不同會導致過程有些差異,或者會造成失敗,不過,不必擔心,方法都是一樣的喔! 各位老鐵,這個方法要是掛了可別怪我了,最近的閱讀量急劇增長………………謝謝支援麻…… 樓主之前有玩過P

OpenCV+深度學習預訓練模型,簡單影象識別 | 教程

轉載:https://mp.weixin.qq.com/s/J6eo4MRQY7jLo7P-b3nvJg 李林 編譯自 pyimagesearch 作者 Adrian Rosebrock 量子位 報道 | 公眾號 QbitAI OpenCV是一個2000年釋出的

Shuffle機制流程原理

基礎知識: Mapreduce確保每個reducer的輸入都是按鍵排序的。系統執行排序的過程(即將map輸出作為輸入傳給reducer)稱為shuffle。 shuffle階段是從map方法輸出資料以後開始到reduce方法輸入資料之前結束。 分割槽的數量 =  Red

一篇Java集合類原理

## Java集合類實現原理 ### 1.Iterable介面 - 定義了迭代集合的迭代方法 ```java iterator() forEach() 對1.8的Lambda表示式提供了支援 ``` ### 2. Collection介面 - 定義了集合新增的通用方法 ```java int

關於PHP底層執行機制原理的思考之建立一個簡單的PHP核心架構圖

    提到這個PHP底層的執行原理和機制,如果要用一張圖來描述的話,相信大家的腦海裡都會浮現下面的這張圖:    誠然,PHP的核心架構確實是如上圖所示。不管是讓誰來說,也差不多就是這麼多。但是,我今

【路由達人】簡單兩步小米路由新增功能-DDNS(解析域名地址轉向在線工具)

固定ip cells hot ddn mic width cin spa family DDNS(Dynamic Domain Name Server)是動態域名服務的縮寫! 簡單來說目前ISP大多為我們提供動態IP(如ADSL撥號上網),而很多設備或服務需要通過遠

一個實驗華為hybrid-vlan基本配置及原理

華為 hybrid-vlan實驗拓撲:2. 實驗需求:PC1和PC3屬於VLAN10 PC2和PC4屬於VLAN20 PC5和PC6屬於VLAN30。VLAN10和20的成員都可以和VLAN30中PC5通信,但是VLAN10和VLAN20的成員之間不能通信(通過二層技術實現此需求,就是華為Hybrid

10 張圖幫你 TensorFlow 數據讀取機制

小夥伴 圖片 文章 網上 如何 導讀在學習tensorflow的過程中,有很多小夥伴反映讀取數據這一塊很難理解。確實這一塊官方的教程比較簡略,網上也找不到什麽合適的學習材料。今天這篇文章就以圖片的形式,用最簡單的語言,為大家詳細解釋一下tensorflow的數據讀取機制,文章的最後還會給出

簡單幾部laravel/lumen跨庫操作

mil tom fig文件 brush localhost utf except conn strong 1.跨庫數據庫配置 在網站跟目錄下的config文件中增加database.php作為數據庫配置文件。配置如下: //當前默認數據庫'my

gem5中event queue執行原理機制具體分析

執行 proc post tis pan roc view 函數實現 obj 搞清楚這個花了兩天時間,下面內容為簡略版。為了給自己賺點下載用的積分。如須要具體版本號。

深入剖析 Web 伺服器與 PHP 應用之間的通訊機制 - 掌握 CGI 和 FastCGI 協議的執行原理

本文首發於 深入剖析 Web 伺服器與 PHP 應用之間的通訊機制 - 掌握 CGI 和 FastCGI 協議的執行原理,轉載請註明出處! 身為一名使用 PHP 語言開發後端服務的程式猿,我們每天都和 PHP 以及 Web 伺服器產生無數次的親密接觸。得益於它們,我們才能

ElasticSearch教程——filter執行原理深度剖析(bitset機制與caching機制

ElasticSearch彙總請檢視:ElasticSearch教程——彙總篇 (1)在倒排索引中查詢搜尋串,獲取document list date來舉例 word          doc1    &nb

PHP 底層的執行機制原理解析(轉載)

我的另一篇文章:PHP底層工作原理  兩篇結合起來看,會更加好理解。 由於本人資料結構方面知識,淺薄,後面的尚未研究 關於 hash table ,這有個文章可以學習:HashTable原理和底層實現 關於 zval 可以研讀這個:入理解PHP7核心之zval  

簡單兩招JSON介面自動化測試(RESTful API)

純文字協議模板構造JSON請求 上一個版本釋出後,有一些同學反饋,舊版的協議模板( 表單模式)使用 ,在測試restfull 介面(json格式)的時候,還是有一些懵,不知道怎麼下手,感覺沒有其他工具直接複製一個純檔案JSON來得直接跟方便。