Map Reduce 計算框架(2)

2021-09-29 15:41:31 字數 2505 閱讀 9203

mapreduce的分割槽與reducetask的數量

在mapreduce中,通過指定分割槽,會將同乙個分割槽的資料傳送到同乙個reduce中,例如為了資料的統計,可以把一批類似的資料發 送到同乙個reduce當中去,在同乙個reduce中統計相同型別的資料,就可以實現類似資料的分割槽,統計等

直觀的說就是相同型別的資料,送到一起去處理,在reduce當中預設分割槽只有1個。

mapreduce當中的計數器

計數器是收集作業統計資訊的有效手段之一,用於質量控制或應用級統計。計數器還可輔助診斷系統故障。如果需要將日誌資訊傳輸到map 或reduce 任務, 更好的方法通常是看能否用乙個計數器值來記錄某一特定事件的發生。對於大型分布式作業而言,使用計數器更為方便。除了因為獲取計數器值比輸出日誌更方便,還有根據計數器值統計特定事件的發生次數要比分析一堆日誌檔案容易得多。

hadoop內建計數器列表

mapreduce任務計數器

org.apache.hadoop.mapreduce.taskcounter

檔案系統計數器

org.apache.hadoop.mapreduce.filesystemcounter

fileinputformat計數器

org.apache.hadoop.mapreduce.lib.input.fileinputformatcounter

fileoutputformat計數器

org.apache.hadoop.mapreduce.lib.output.fileoutputformatcounter

作業計數器

org.apache.hadoop.mapreduce.jobcounter

mapreduce的combiner

演算法:對key 進行雜湊,獲取到乙個雜湊值,用這個雜湊值與reducetask的數量取餘。餘幾,這個資料就放在餘數編 號的partition中。

split的邏輯切分

獲取到讀取到的資料,對資料進行邏輯切分,切分的大小是128m. 這裡的128 與hdfs資料塊的128沒有任何關係

hdfs 128 是儲存層面的資料切分 split128 是計算層面的128,只不過資料恰好相等。 兩個128相同的原因是,乙個整合程式能夠正好計算乙個資料塊。

**map的輸出到記憶體 **

map的輸出先寫入環形緩衝區(預設大小100m-可以認為調整)(可以再輸出的同時寫入資料),當緩衝區內的資料 達到閾值(預設0.8-可以人為調整)時,對資料進行flash。

flash 出去的資料的數量達到一定量(預設4個)時,進行資料的合併。

**reduce資料讀取 **

reduce 主動發出拷貝程序(預設5個copy程序)到map端獲取資料。 獲取到資料後,將資料寫入記憶體,當資料達到閾值,將資料flash出去。 當flash出去檔案達到一定的量時,進行資料的合併。最終將資料傳送給reduce

**map到reduce記憶體角度巨集觀流程 **

**map到reduce處理流程角度巨集觀步驟 **

**如何能夠讓map執行效率最高 **

儘量減少環形緩衝區flush的次數(減少io 的使用)

1、調大環形緩衝區的大小,將100m調更大。

2、調大環形緩衝區閾值大的大小。 3、對map輸出的資料進行壓縮。(資料在壓縮和解壓的過程中會消耗cpu)

**如何能夠讓reduce執行效率最高 **

盡量將所有的資料寫入記憶體,在記憶體中進行計算。

集群調優核心思路

在網路頻寬、磁碟io是瓶頸的前提下 能不使用io 和網路,就不使用。在必須使用的情況下,能少用io 網路就少用,

所有的能夠減少網路開銷的、減少io使用的可選項,都可以作為集群調優的可選項。(軟體層面(作業系統----集群 層面),硬體層面,網路層面)

hadoop支援的壓縮演算法

**map端join **

在map端如何將多個檔案join

在乙個檔案比較大,乙個檔案比較小的前提下

可以將小的檔案載入到程式中,讓多個程式(相同的程式)同時擁有這個銷量的資料,在公這個小資料與大量的數 據進行關聯或匹配

小量資料載入到程式,需要組裝成mapkey 就是唯一的標識,value就是對應的資料

大量資料在獲得到資料後,根據資料內的關聯字段,到map中get.最終將兩個資料進行拼接。

Mapreduce 計算框架 功能原理

1.mapreduce是乙個海量資料的計算框架 這個框架解決了以下問題 基於乙個多執行緒的模型 區別spark多程序 資料分布儲存 作業排程 容錯 機器間通訊 map 把複雜的問題分解成簡單的問題 reduce 2.mapreduce物理配置 合適的slot個數 單記map reduce個數 map...

平行計算框架Mapreduce簡介

hadoop的三個元件,先有mapreduce 分布式計算模型 後有hdfs,知道hadoop才有了yarn,因此掌握mapreduce很有必要,雖然現在都是使用流式處理框架,如storm,spark等,但是這幾種框架的思想及原理都 於mapreduce mapreduce 思想 分而治之 map ...

分布式計算框架MapReduce

mapreduce思想在生活中處處可見。或多或少都曾接觸過這種思想。mapreduce的思想核心是 分而治之 適用於大量複雜的任務處理場景 大規模資料處理場景 map負責 分 即把複雜的任務分解為若干個 簡單的任務 來並行處理。可以進行拆分的前提是這些小任務可以平行計算,可以提高並行度。彼此間幾乎沒...