maptask的並行度決定map階段的任務處理併發數量。進而影響到整個job的處理速度。maptask的並行度是不是越多越好?並行度又是如何決定的?
先說maptask的並行度是如何決定的.
乙個job的map階段的並行度由客戶端提交job時決定。而客戶端對map階段並行度規劃的邏輯為:將待處理的資料進行邏輯切片(即按照乙個特定切片的大小,將待處理的資料劃分為多個split),然後每乙個spilt分配給乙個maptask並行例項處理。
切片邏輯:
1)若乙個檔案大小小於乙個切片的大小。當做乙個切片處理。
2)若乙個檔案大小大於乙個切片,將拆分成多個切片,取模剩下的也會當做乙個切片。
怎樣確定切片的大小?
跟設定切片大小引數有關,塊的大小有關
mapreduce.input.fileinputformat.split.maxsize
mapreduce.input.fileinputformat.split.minsize
max(minsize,min(blocksize,maxsize))
每個map的執行時間至少一分鐘
maptask 個數(並行度)決定機制
乙個job的map階段並行度由客戶端在提交job時決定 客戶端對map階段並行度的規劃基本邏輯為 三 如何改變切片大小 引數設定 原始碼是通過這個方法來規劃切片大小的 protected long computesplitsize long blocksize,long minsize,long m...
切片和maptask並行度決定機制
maptask指的是在mapreduce執行過程中為每乙個資料切片分配的資料運算例項任務。maptask的並行度也就指的是運算任務例項的數量,影響整個job的處理速度。資料塊 block是hdfs物理上把資料分成一塊一塊。資料切片 資料切片只是在邏輯上對輸入進行分片,並不會在磁碟上將其切分成片進行儲...
大資料6 Maptask並行度有關
1.fileinoutformat切片機制 2.總結 1.切片是為了給maptask分配任務,也就是為了整個mapreduce程式做map的並行度規劃 2.乙個切片會交給乙個maptsak來處置 3.預設的切片機制是fileinputformat getsplits 他的邏輯是對輸入目錄中所有的檔案...