亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請教一下Hadoop中Map的數量是如何確定的?

請教一下Hadoop中Map的數量是如何確定的?

慕運維8079593 2019-09-03 10:06:59
Hadoop中Map的數量是如何確定的
查看完整描述

3 回答

?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

一般情況下,都為1,特殊情況除外。
minSize:取的1和mapred.min.split.size中較大的一個。
blockSize:HDFS的塊大小,默認為64M,一般大的HDFS都設置成128M。
splitSize:就是最終每個Split的大小,那么Map的數量基本上就是totalSize/splitSize。
接下來看看computeSplitSize的邏輯:
首先在goalSize(期望每個Mapper處理的數據量)和HDFS的block size中取較小的,然后與mapred.min.split.size相比取較大的。
有了2的分析,下面調整Map的數量就很容易了。
3.1 減小Map-Reduce job 啟動時創建的Mapper數量
當處理大批量的大數據時,一種常見的情況是job啟動的mapper數量太多而超出了系統限制,導致Hadoop拋出異常終止執行。解決這種異常的思路是減少mapper的數量。具體如下:
3.1.1 輸入文件size巨大,但不是小文件
這種情況可以通過增大每個mapper的input size,即增大minSize或者增大blockSize來減少所需的mapper的數量。增大blockSize通常不可行,因為當HDFS被hadoop namenode -format之后,blockSize就已經確定了(由格式化時dfs.block.size決定),如果要更改blockSize,需要重新格式化HDFS,這樣當然會丟失已有的數據。所以通常情況下只能通過增大minSize,即增大mapred.min.split.size的值。
3.1.2 輸入文件數量巨大,且都是小文件

查看完整回答
反對 回復 2019-09-14
  • 3 回答
  • 0 關注
  • 1175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號