乾貨分享 教你怎樣在Hadoop中控制Map的數量

2021-09-13 03:00:40 字數 1847 閱讀 2519

在hadoop中,設定map task的數量不像設定reduce task數量那樣直接,即:不能夠通過api直接精確的告訴hadoop應該啟動多少個map task。

你也許奇怪了,在api中不是提供了介面org.apache.hadoop.mapred.jobconf.setnummaptasks(intn)嗎?這個值難道不可以設定map task的數量嗎?這個api的確沒錯,在文件上解釋」note: this is only a hint to the framework.「,即這個值對hadoop的框架來說僅僅是個提示,不起決定性的作用。也就是說,即便你設定了,也不一定得到你想要的效果。

1、input format介紹

在具體設定map task數量之前,非常有必要了解一下與map-reduce輸入相關的基礎知識。

input format有多種具體實現,諸如fileinput format(處理基於檔案的輸入的基礎抽象類),dbinput format(處理基於資料庫的輸入,資料來自於乙個能用sql查詢的表),keyvaluetextinputformat(特殊的fineinputformat,處理plain text file,檔案由回車或者回車換行符分割成行,每一行由key.value.separator.in.input.line分割成key和value),compositeinputformat,delegatinginputformat等。在絕大多數應用場景中都會使用fileinputformat及其子型別。

2、fileinputformat中影響map數量的因素

在日常使用中,fileinputformat是最常用的inputformat,它有很多具體的實現。以下分析的影響map數量的因素僅對fileinputformat及其子類有效,其他非fileinputformat可以去檢視相應的getsplits(jobconf job, int numsplits) 具體實現即可。

請看如下**段(摘抄自org.apache.hadoop.mapred.fileinputformat.getsplits,hadoop-0.20.205.0源**):

totalsize:是整個map-reduce job所有輸入的總大小。

numsplits:來自job.getnummaptasks(),即在job啟動時用org.apache.hadoop.mapred.jobconf.setnummaptasks(int

n)設定的值,給m-r框架的map數量的提示。

goalsize:是輸入總大小與提示map

minsplitsize:預設為1,可由子類複寫函式protected void setminsplitsize(long minsplitsize)重新設定。一般情況下,都為1,特殊情況除外。

minsize:取的1和mapred.min.split.size中較大的乙個。

blocksize:hdfs的塊大小,預設為64m,一般大的hdfs都設定成128m。

splitsize:就是最終每個split的大小,那麼map的數量基本上就是totalsize/splitsize。

3、如何調整map的數量

有了2的分析,下面調整map的數量就很容易了。

1)、輸入檔案size巨大,但不是小檔案

2)、輸入檔案數量巨大,且都是小檔案

最後祝福所有遇到瓶頸的大資料程式設計師們突破自己,祝福大家在往後的工作與面試中一切順利。

hadoop是什麼?學習大資料乾貨分享

hadoop是大資料的乙個總稱,hadoop yarn是dadoop2的乙個基礎框架。現在常用的就是hadoop yarn,hadoop yarn可以說是大資料入門必須了解的部分。大資料是未來的發展方向,正在挑戰我們的分析能力及對世界的認知方式,因此,我們與時俱進,迎接變化,並不斷的成長 大資料學習...

教你怎樣在VC中匯出C 類

首先使用wizard建立乙個win32 dynamic link library工程,然後定義乙個簡單的c 類cindll.由於該類會被工程之外的檔案所引用,所以需要對這個類進行引出。因為只有引出後所生成的dll中才帶有供足夠的資訊以在連線和執行時被正確引入到程序空間中。有兩種方法可以引出類,使用 ...

Hadoop在ebay中的使用歷程 分享總結

概述 此分享是關於hadoop在ebay中的使用歷程的彙總。作者來自ebay 分享點 資料報括query log sellers buyers clicks items products feedbacks performance images user history crawled data 資...