shuffle 過程的優化(mapreduce 的優化)
combiner 合併優化
在 map 階段提前進行了一次合併,一般來講等同於提前執行了 reduce 操作為什麼說在 map 階段提前執行 reduce 方法可以降低 reduce 的壓力?好處:可以降低 reduce 的壓力
在 map階段的進行合併是並行的(分布式的)。combiner 合併可以解決資料傾斜問題:
什麼是資料傾斜:簡單來將,就是資料分配不均勻注意:不是所有處理資料時都可以使用合併,只有當處理的資料的 value 相同時,才可以使用 combiner 合併進行優化換個通俗易懂的解釋,就是一幫人幹活,累的累死,閒的閒死
可以選擇性的把大量的相同 key 資料先進行乙個合併
然後再交給 reduce 來處理,這樣做的好處很多
即減輕了 map 端向 reduce 端傳送的資料量 (減輕了網路頻寬)
也減輕了 map 端和 reduce 端中間的 shuffle 階段的資料拉取數量 (本地化磁碟 io 速率)
compress 壓縮優化:大大減少磁碟 io 以及網路 io
mapreduce 有很多地方都可以壓縮
輸入的就是乙個壓縮檔案
map shuffle 中合併成乙個大檔案,對該檔案進行壓縮,reduce 過來取資料就是壓縮之後的數
檢查本地庫支援哪些壓縮:
bin/hadoop checknative
配置方式:
方式一:main方法中configuration
方式二:在配置檔案中
全域性修改,所有mapreduce都生效
方式三:執行的時候通過自定義配置
bin/yarn jar ***.jar -dxx=yy -daa=bb mianclass input_path output_path
檢查是否配置成功
方式一:8088ui介面 -》history -》configuration-》檢視對應配置引數
方式二:檢視計數器,linux 中的結果輸出資訊
計數器:
在 map 或者 reduce 中使用計數器
context.getcounter(temperature.total).increment(1);
詳解Hadoop Shuffle過程
1.在客戶端啟動乙個作業。2.向jobtracker請求乙個job id。3.將執行作業所需要的資源檔案複製到hdfs上,包括mapreduce程式打包的jar檔案 配置檔案和客戶端計算所得的輸入劃分資訊。這些檔案都存放在jobtracker專門為該作業建立的資料夾中。資料夾名為該作業的job id...
大資料入門 2 Hadoop shuffle
過程 map shuffle reduce 19 07 13 19 55 31 info mapreduce.job map 0 reduce 0 19 07 13 19 55 42 info mapreduce.job map 50 reduce 0 19 07 13 19 55 43 info ...
統一過程,敏捷過程,微軟過程 收集
一 rational 統一過程 六個最佳實踐 1 迭代式開發 2 需求管理 3 使用基於構件的體系結構 4 視覺化建模 uml 5 驗證軟體質量 6 控制軟體變更 二 敏捷過程 ap 流派有 極限程式設計,scrum,動態系統開發,特徵驅動開發等 四條基本價值觀 1 個體和互動勝過過程和工具 2 可...