
如何確定 Hadoop map和reduce的個數--map和reduce數量之間的關系是什么
一般情況下,在輸入源是文件的時候,一個task的map數量由splitSize來決定的,那么splitSize是由以下幾個來決定的
goalSize = totalSize / mapred.map.tasks
inSize = max {mapred.min.split.size, minSplitSize}
splitSize = max (minSize, min(goalSize, dfs.block.size))
一個task的reduce數量,由partition決定。
在輸入源是數據庫的情況下,比如mysql,對于map的數量需要用戶自己指定,比如
jobconf.set(“mapred.map.tasks.nums”,20);
如果數據源是HBase的話,map的數量就是該表對應的region數量。
map和reduce是hadoop的核心功能,hadoop正是通過多個map和reduce的并行運行來實現任務的分布式并行計算,從這個觀點來看,如果將map和reduce的數量設置為1,那么用戶的任務就沒有并行執行,但是map和reduce的數量也不能過多,數量過多雖然可以提高任務并行度,但是太多的map和reduce也會導致整個hadoop框架因為過度的系統資源開銷而使任務失敗。所以用戶在提交map/reduce作業時應該在一個合理的范圍內,這樣既可以增強系統負載勻衡,也可以降低任務失敗的開銷。
1 map的數量
map的數量通常是由hadoop集群的DFS塊大小確定的,也就是輸入文件的總塊數,正常的map數量的并行規模大致是每一個Node是10~100個,對于CPU消耗較小的作業可以設置Map數量為300個左右,但是由于hadoop的每一個任務在初始化時需要一定的時間,因此比較合理的情況是每個map執行的時間至少超過1分鐘。具體的數據分片是這樣的,InputFormat在默認情況下會根據hadoop集群的DFS塊大小進行分片,每一個分片會由一個map任務來進行處理,當然用戶還是可以通過參數mapred.min.split.size參數在作業提交客戶端進行自定義設置。還有一個重要參數就是mapred.map.tasks,這個參數設置的map數量僅僅是一個提示,只有當InputFormat
決定了map任務的個數比mapred.map.tasks值小時才起作用。同樣,Map任務的個數也能通過使用JobConf
的conf.setNumMapTasks(int
num)方法來手動地設置。這個方法能夠用來增加map任務的個數,但是不能設定任務的個數小于Hadoop系統通過分割輸入數據得到的值。當然為了提高集群的并發效率,可以設置一個默認的map數量,當用戶的map數量較小或者比本身自動分割的值還小時可以使用一個相對交大的默認值,從而提高整體hadoop集群的效率。
2 reduece的數量
reduce在運行時往往需要從相關map端復制數據到reduce節點來處理,因此相比于map任務。reduce節點資源是相對比較缺少的,同時相對運行較慢,正確的reduce任務的個數應該是0.95或者1.75
*(節點數
×mapred.tasktracker.tasks.maximum參數值)。如果任務數是節點個數的0.95倍,那么所有的reduce任務能夠在
map任務的輸出傳輸結束后同時開始運行。如果任務數是節點個數的1.75倍,那么高速的節點會在完成他們第一批reduce任務計算之后開始計算第二批
reduce任務,這樣的情況更有利于負載均衡。同時需要注意增加reduce的數量雖然會增加系統的資源開銷,但是可以改善負載勻衡,降低任務失敗帶來的負面影響。同樣,Reduce任務也能夠與
map任務一樣,通過設定JobConf 的conf.setNumReduceTasks(int num)方法來增加任務個數。
3 reduce數量為0
有些作業不需要進行歸約進行處理,那么就可以設置reduce的數量為0來進行處理,這種情況下用戶的作業運行速度相對較高,map的輸出會直接寫入到
SetOutputPath(path)設置的輸出目錄,而不是作為中間結果寫到本地。同時Hadoop框架在寫入文件系統前并不對之進行排序。
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25