1. 程式人生 > >如何在hadoop中控制map的個數

如何在hadoop中控制map的個數

    hadooop提供了一個設定map個數的引數mapred.map.tasks,我們可以通過這個引數來控制map的個數。但是通過這種方式設定map的個數,並不是每次都有效的。原因是mapred.map.tasks只是一個hadoop的參考數值,最終map的個數,還取決於其他的因素。      為了方便介紹,先來看幾個名詞: block_size : hdfs的檔案塊大小,預設為64M,可以通過引數dfs.block.size設定 total_size : 輸入檔案整體的大小 input_file_num : 輸入檔案的個數 (1)預設map個數      如果不進行任何設定,預設的map個數是和blcok_size相關的。      default_num = total_size / block_size; (2)期望大小      可以通過引數mapred.map.tasks來設定程式設計師期望的map個數,但是這個個數只有在大於default_num的時候,才會生效。
     goal_num = mapred.map.tasks; (3)設定處理的檔案大小      可以通過mapred.min.split.size 設定每個task處理的檔案大小,但是這個大小隻有在大於block_size的時候才會生效。      split_size = max(mapred.min.split.size, block_size);      split_num = total_size / split_size; (4)計算的map個數 compute_map_num = min(split_num,  max(default_num, goal_num))      除了這些配置以外,mapreduce還要遵循一些原則。 mapreduce的每一個map處理的資料是不能跨越檔案的,也就是說min_map_num >= input_file_num。 所以,最終的map個數應該為:
     final_map_num = max(compute_map_num, input_file_num)      經過以上的分析,在設定map個數的時候,可以簡單的總結為以下幾點: (1)如果想增加map個數,則設定mapred.map.tasks 為一個較大的值。 (2)如果想減小map個數,則設定mapred.min.split.size 為一個較大的值。 (3)如果輸入中有很多小檔案,依然想減少map個數,則需要將小檔案merger為大檔案,然後使用準則2。

相關推薦

如何在hadoop控制map個數

    hadooop提供了一個設定map個數的引數mapred.map.tasks,我們可以通過這個引數來控制map的個數。但是通過這種方式設定map的個數,並不是每次都有效的。原因是mapred.map.tasks只是一個hadoop的參考數值,最終map的個數,還取決於其他的因素。      為了方便

hadoop控制map個數

hadooop提供了一個設定map個數的引數mapred.map.tasks,我們可以通過這個引數來控制map的個數。但是通過這種方式設定map的個數,並不是每次都有效的。原因是mapred.map.tasks只是一個hadoop的參考數值,最終map的個數,還取決於其他的

深度分析如何在Hadoop控制Map的數量

很多文件中描述,Mapper的數量在預設情況下不可直接控制干預,因為Mapper的數量由輸入的大小和個數決定。在預設情況下,最終input佔據了多少block,就應該啟動多少個Mapper。如果輸入的檔案數量巨大,但是每個檔案的size都小於HDFS的blockSize

大資料07-Hadoop框架下MapReducemap個數如何控制

一個job的map階段並行度由客戶端在提交job時決定 客戶端對map階段並行度的規劃基本邏輯為: 一、將待處理的檔案進行邏輯切片(根據處理資料檔案的大小,劃分多個split),然後每一個split分配一個maptask並行處理例項 二、具體切片規劃是由FileInputFormat實現類的ge

hadoop控制map個數(轉)

設置 mapred log AI 不能 map 整體 details net 原文鏈接:https://blog.csdn.net/lylcore/article/details/9136555 hadooop提供了一個設置map個數的參數mapred.map.ta

MapReducemap個數

在map階段讀取資料前,FileInputFormat會將輸入檔案分割成split。split的個數決定了map的個數。 公式:InputSplit=Math.max(minSize, Math.mi

hive控制map和reduce數量的簡單實現方法

0、先說結論:   由於mapreduce中沒有辦法直接控制map數量,所以只能曲線救國,通過設定每個map中處理的資料量進行設定;reduce是可以直接設定的。  控制map和reduce的引數 set mapred.max.split.size=256000000;

hadoopmap個數控制

hadooop提供了一個設定map個數的引數mapred.map.tasks,我們可以通過這個引數來控制map的個數。但是通過這種方式設定map的個數,並不是每次都有效的。原因是mapred.map.tasks只是一個hadoop的參考數值,最終map的個數,還取決於其

Hadoop】Hive優化之——控制hive任務map數和reduce數

一、控制hive任務中的map數: 1.通常情況下,作業會通過input的目錄產生一個或者多個map任務。  主要的決定因素有: input的檔案總個數,input的檔案大小,叢集設定的檔案塊大小(目

hadoop每個節點map和reduce個數的設定調優

hadoop中每個節點map和reduce個數的設定調優 2012-02-21 14:40:32|  分類:舉報|字號訂閱 map red.tasktracker.map.tasks.maximum 這個是一個task tracker中可同時執行的map的最大個數,預設值

hive優化之——控制hive任務map數和reduce數

計算 2-0 問題 tdi title ask hadoop 發現 http 一、 控制hive任務中的map數: 1. 通常情況下,作業會通過input的目錄產生一個或者多個map任務。主要的決定因素有: input的文件總個數,input的文件大小,集群設

CF988 C. Equal Sums【map+pair/hash/任選兩個序列,兩個序列都除去他們的一個數,使的總和相同】

相同 value can 個數 sca code esp 分析 return 【鏈接】:CF988C 【題意】:在n個序列中任選兩個序列,兩個序列都除去他們中的一個數,使的總和相同 【分析】:map

CNNfeature map、卷積核、卷積核個數、filter、channel的概念解釋,以及CNN 學習過程卷積核更新的理解

feature map、卷積核、卷積核個數、filter、channel的概念解釋 feather map的理解 在cnn的每個卷積層,資料都是以三維形式存在的。你可以把它看成許多個二維圖片疊在一起(像豆腐皮一樣),其中每一個稱為一個feature map。 feather map 是怎

百度UEditor控制元件map元件不支援https使用的問題解決

最近專案部署到了https環境下,使用的UEditor富文字編輯器中的map元件出現了問題,控制檯報了一堆錯誤,主要是mixed content.. ,就連百度的官網上也同樣是有這些問題,汗。。 沒有辦法,只能四處搜尋解決問題的答案。。。 第一點收穫: https是安全傳輸協議,在

hadoopmap和reduce的數量設定問題

map和reduce是hadoop的核心功能,hadoop正是通過多個map和reduce的並行執行來實現任務的分散式平行計算,從這個觀點來看,如果將map和reduce的數量設定為1,那麼使用者的任務就沒有並行執行,但是map和reduce的數量也不能過多,數量過多雖然

javamap的簡單應用之陣列元素個數

package Test01; import java.math.BigInteger; import java.util.HashMap; import java.util.Map; import java.util.Random; import java.u

如何控制Hive執行Map和Reduce數量

目錄 Map Map map任務的個數 map任務的個數是在Map階段中InputSplit決定的,InputSplit將作業的Input目錄下的檔案切片,每個片大小預設是等於block塊大小的。所以不同的m

hadoopslot簡介(map slot 和 reduce slot)

Slots是Hadoop的一個重要概念。然而在Hadoop相關論文,slots的闡述難以理解。網上關於slots的概念介紹也很少,而對於一個有經驗的Hadoop開發者來說,他們可能腦子裡已經理解了slots的真正含義,但卻難以清楚地表達出來,Hadoop初學者聽了還是雲裡

HADOOP map和reduce的並行度設定的問題

1.3 MapTask並行度決定機制 maptask的並行度決定map階段的任務處理併發度,進而影響到整個job的處理速度 那麼,mapTask並行例項是否越多越好呢?其並行度又是如何決定呢? 1.3.1 mapTask並行度的決定機制 一個job的map階段並行度由客戶

hadoop map、reduce數量對mapreduce執行速度的影響

增加task的數量,一方面增加了系統的開銷,另一方面增加了負載平衡和減小了任務失敗的代價;map task的數量即mapred.map.tasks的引數值,使用者不能直接設定這個引數。Input Split的大小,決定了一個Job擁有多少個map。預設input spli