MR執行流程

2021-10-25 18:43:59 字數 903 閱讀 2839

在這裡插入描述

資料進入maptask使用inputformat讀取資料(預設讀取格式是textinputformat),使用getsplits對資料目錄進行邏輯切分得到splits,有多少個splits(切片)就有多少個maptask

使用recordreader物件讀取(使用設定好的分隔符)切片裡的資料,讀取格式為

讀取的切片返回,然後進入使用者自定義的**塊,每讀取一行再次呼叫recordreader一次,

使用者自定義邏輯處理完成之後,將處理結果使用context.write進行寫出,這裡的key值會預設根據hashpartitioner進行分割槽處理

寫入緩衝區之前會將key,value會被序列化成位元組陣列,資料寫入緩衝區記憶體,批量手機map結果,減少磁碟io,這裡key,value以及分割槽資訊都會被寫入緩衝區

此時溢寫執行緒啟動,在每個溢寫的80m都會進行預設的key排序

合併溢寫檔案,每次溢寫都會在磁碟上生成乙個臨時檔案,檔案過大的情況下,有多少次溢寫就會有多少個臨時檔案,整個資料處理結束會對生成的臨時檔案進行merge合併,最後寫入磁碟。

reducetask從各個maptask上遠端拷貝資料到記憶體,資料在同個分區內一定會進入同乙個reducetask,此時如果大小超過一定閾值,則寫入磁碟

merge階段,拷貝資料同時,reducetask會啟動兩個執行緒對記憶體和磁碟資料進行合併

合併完成後會再次進行乙個sort排序,之前的sort是分區內有序,此時是合併所有檔案在乙個檔案之內

reduce()函式最後將結果寫到hdfs上

Mr 結合yarn的執行流程 執行邏輯

1 為什麼要使用yarn?為了提公升集群的利用率 資源統一管理,使用yarn為上層應用提供統一的資源管理和排程的平台。2 yarn的優勢?資源的統一管理和排程 集群中所有節點的資源 記憶體 cpu 磁碟 網路等 抽象為container。計算框架需要資源進行運算任務時需要向yarn申請contain...

mr 執行在yarn集群流程分析

rm返回給其資源提交的路徑以及job的id號,staging jobid構成乙個job的唯一資源提交路徑,將job.split job.xml jar包提交到此路徑上面去,job資源提交完畢,rm將其分裝為乙個task,rm可能會處理多個task,所以需要資源排程,其主要有三種方式 fair 公平每...

MR架構 MR工作流程

一 mr的架構 1 簡介 mapreduce 是乙個軟體框架,基於該框架能夠容易地編寫應用程式,這些應用程式能夠執行在由上千個商用機器組成的大集群上,並以一種可靠的,具有容錯能力的方式並行地處理上 tb級別的海量資料集 2 4個物件 客戶端 編寫mapreduce 程式,配置作業,提交作業,這就是程...