簡述如何得到map 個數

2021-09-26 09:31:27 字數 793 閱讀 9603

如果對於hive調優,想通過控制map個數進行調優,首先確定集群是否啟動了壓縮,且壓縮的演算法是否直接檔案切分,然後再確定集群配置的預設的hive.input.format是什麼實現類,不同實現類對於split的演算法不同,當然控制map的引數也不同。所以對於控制map個數調優遠遠不是網上很多人說的那麼簡單。

————————————————

我總結的還待改進:

dfs.block.size=256  集群塊的大小

total_size 每個檔案的大小;

default_num = total_size/dfs.block.size ; 

default_num = max(default_num,集群預設2)

可以根據map.mapred.task 來指定map數量,前提是,這個數量大於split_num 生效;

還有兩個引數 map.min.split.size  、 map.max.spit.size ;

如果split_size= dfs.block.size > map.min.split.size &&  dfs.block.size否則用 map.min.split.size  、 map.max.spit.size ;

split_num = total_size/split_size ; 

compute_map_num = split_num

input_file_num 檔案的個數,每乙個map處理的資料是不能跨越檔案的;m 個數一定》=input_file_num

m個數=  max(compute_map_num, input_file_num)

如何在hadoop控制map個數

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

如何確定map以及reduce的個數

一般情況下,在輸入源是檔案的時候,乙個task的map數量由splitsize來決定的,那麼splitsize是由以下幾個來決定的 goalsize totalsize mapred.map.tasks insize max splitsize max minsize,min goalsize,df...

如何在hadoop中控制map的個數

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