日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MapTask、ReduceTask并行度决定机制

發布時間:2023/12/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MapTask、ReduceTask并行度决定机制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  • 目錄
    • 前言:
    • 1、mapTask并行度的決定機制
    • 2、ReduceTask并行度的決定
    • 總結:

目錄

前言:

MapTask的并行度決定map階段的任務處理并發度,進而影響到整個job的處理速度。那么,MapTask并行實例是否越多越好呢?其并行度又是如何決定呢?

1、mapTask并行度的決定機制

一個job的map階段并行度由客戶端在提交job時決定,而客戶端對map階段并行度的規劃的基本邏輯為:
將待處理數據執行邏輯切片(即按照一個特定切片大小,將待處理數據劃分成邏輯上的多個split),然后每一個split分配一個mapTask并行實例處理。(注意切片和分塊的區別)

這段邏輯及形成的切片規劃描述文件,由FileInputFormat實現類的getSplits()方法完成,其過程如下圖:

FileInputFormat切片機制
1、切片定義在InputFormat類中的getSplit()方法
2、FileInputFormat中默認的切片機制:
a) 簡單地按照文件的內容長度進行切片
b) 切片大小,默認等于block大小
c) 切片時不考慮數據集整體,而是逐個針對每一個文件單獨切片
比如待處理數據有兩個文件:
file1.txt 320M
file2.txt 10M

經過FileInputFormat的切片機制運算后,形成的切片信息如下:
file1.txt.split1– 0~128
file1.txt.split2– 128~256
file1.txt.split3– 256~320
file2.txt.split1– 0~10M

FileInputFormat中切片的大小的參數配置(了解)
通過分析源碼,在FileInputFormat中,計算切片大小的邏輯:Math.max(minSize, Math.min(maxSize, blockSize)); 切片主要由這幾個值來運算決定
minsize:默認值:1 配置參數: mapreduce.input.fileinputformat.split.minsize
maxsize:默認值:Long.MAXValue 配置參數:mapreduce.input.fileinputformat.split.maxsize
blocksize
因此,默認情況下,切片大小=blocksize
maxsize(切片最大值):
參數如果調得比blocksize小,則會讓切片變小,而且就等于配置的這個參數的值
minsize (切片最小值):
參數調的比blockSize大,則可以讓切片變得比blocksize還大

選擇并發數的影響因素:
1、運算節點的硬件配置
2、運算任務的類型:CPU密集型還是IO密集型
3、運算任務的數據量

2、ReduceTask并行度的決定

reducetask的并行度同樣影響整個job的執行并發度和執行效率,但與maptask的并發數由切片數決定不同,Reducetask數量的決定是可以直接手動設置

//默認值是1,手動設置為4
job.setNumReduceTasks(4);

如果數據分布不均勻,就有可能在reduce階段產生數據傾斜
注意: reducetask數量并不是任意設置,還要考慮業務邏輯需求,有些情況下,需要計算全局匯總結果,就只能有1個reducetask

盡量不要運行太多的reduce task。對大多數job來說,最好reduce的個數最多和集群中的reduce持平,或者比集群的 reduce slots小。這個對于小集群而言,尤其重要。

總結:

MapTask并行度由兩種情況:
1、當一個文件比較大時,每次切片128M為一個MapTask的任務量。被切分多少片就能由多少個MapTask。
2、當有多個小文件時,每個小文件可以看做是一個MapTask的任務量,有多少個小文件就有多少個MapTask。
PS:當然默認切片的大小可以自定義設置。
ReduceTask并行度可以在代碼中手動設置。

總結

以上是生活随笔為你收集整理的MapTask、ReduceTask并行度决定机制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。