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并行度可以在代碼中手動設置。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456677.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456677.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456677.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python# 完成“剪刀石頭布游戲”:

# 完成“剪刀石頭布游戲”: # 1. 進入剪刀石頭布游戲 # 2. 系統隨機出:可以是剪刀,可以是布,也可以是石頭(可以使用隨機數完成1:剪刀,2:布,3:石頭&#x…

6大主流開源SQL引擎總結,遙遙領先的是誰?

根據 O’Reilly 2016年數據科學薪資調查顯示,SQL 是數據科學領域使用最廣泛的語言。大部分項目都需要一些SQL 操作,甚至有一些只需要SQL。本文就帶你來了解這些主流的開源SQL引擎!背景介紹 本文涵蓋了6個開源領導者:Hive、Impala、…

Yarn在MapReduce中的工作機制

目錄前言:1、YARN概述2、mapreduce&yarn的工作機制總結: 目錄 前言: 在了解Yarn在MR中的作用的時候需要先了解Yarn是什么。 1、YARN概述 Yarn是一個資源調度平臺,負責為運算程序提供服務器運算資源,相當于一個分布式的操作系統平臺&…

python 擲骰子游戲

擲骰子游戲: 擲骰子游戲 可選擇的參加游戲的角色是:1.貂蟬 2.劉備 3.孫悟空 4.諸葛亮 5.曹操 輸入參加游戲的角色是: 1 貂蟬進入游戲…… 貂蟬請充值(金額必須是100的倍數): ---》注意:充值3次不…

長連接心跳機制理解

近期使用go 開發聊天室,使用到websocket常鏈接。 if err websocket.JSON.Receive(ws,&reply); err ! nil {log.Println(err)return } 我發現當連接斷開的時候會走if里面,輸出eof 這樣就知道,客戶端斷開了連接。 但在之前使用workerman …

老男孩36期運維脫產班---- 決心書

我叫林宗超,來自四川,12年前畢業于四川的一所普通高中學校,畢業后再也沒有從事過其他的教育培訓學習。離開學校后我去過廣東,福建,最后因為我家駕校有了點小小的規模,缺人,我回到了成都做了幾年…

python簡易停車系統

# 簡易版停車管理: # # 停車場最多停車數; max_car; # 當前停車數;cur_car; # 當前停車列表; car_list [] # # 停車: # 1). 如果沒有達到最多停車數,則允許停車; # 2) 計入入場的時間,使用time.time(&am…

dl,dt,dd怎么用

我們在制作網頁過程中用到列表時一般會使用<ul>或者<ol>標簽&#xff0c;很少用刑<dl>標簽&#xff0c;但是這個三個標簽卻有著不可忽視的作用&#xff0c;畢竟Web標準中要盡最大可能的使用已有的標簽。它們的用途是&#xff1a;< dl>< /dl>用來…

Hive的基本操作總結

文章目錄目錄前言&#xff1a;1、Hive基本操作1.1、DDL操作1.2、DML操作1.3、Hive Join總結:目錄 前言&#xff1a; 對于Hive來說最重要的一點就是能夠用Hql來進行數據分析。而Hql來處理數據比MapReduce方便很多&#xff08;原理是一樣的&#xff0c;Hql底層轉化為MapReduce來…

獲取圖片的EXIF信息

對于專業的攝影師來說&#xff0c;Exif信息是很重要的信息&#xff0c;也包含了非常多的東西 1.EXIF EXIF&#xff08;Exchangeable Image File&#xff09;是“可交換圖像文件”的縮寫&#xff0c;當中包含了專門為數碼相機的照片而定制的元數據&#xff0c;可以記錄數碼照片的…

【python】AnaConda安裝錯誤解決方法

https://www.anaconda.com/ 官網下載啥事沒有&#xff01;

貪心問題的基本性質

首先確定一個前提 該問題是或可能滿足 最優子結構&#xff0c;greedy選擇性 最優子結構是說。。子結構一定能對全局最優解作貢獻(?) greedy選擇性應該是說。。如果當前我們不貪心地選本來看上去或者就是正確的決策an 那么我們得到結果s,只要證明交換an得到s比不交換更好&#…

Hbase讀寫數據的原理解析

目錄1、體系圖寫數據的流程&#xff08;參考上圖&#xff09;&#xff1a;讀數據的流程&#xff08;參考下圖&#xff09;&#xff1a; 目錄 1、體系圖 針對上圖的一些解釋&#xff1a; 這里面數據分區&#xff08;region&#xff09;存儲是為了查詢方便&#xff08;即因為是…

anaconda來創建python環境

Anacond下載 下載地址&#xff1a;https://www.anaconda.com/download/ 管理虛擬環境 接下來我們就可以用anaconda來創建我們一個個獨立的python環境了.接下來的例子都是在命令行操作的,請打開你的命令行吧. activate activate 能將我們引入anaconda設定的虛擬環境中, 如果你后…

Zookeeper的簡介及命令行操作

目錄前言1、Zookeeper簡介2、Zookeeper結構3、Zookeeper常用的命令行操作 總結&#xff1a; 目錄 前言 作為一款第三方的協調服務框架&#xff0c;ZK被應用在許多地方&#xff0c;如&#xff1a;Hbase中用于存儲-ROOT表的位置信息&#xff1b;Storm中用于保存任務分配的信息、…

移動端開發文章導航

1. 微信企業號 微信企業號 介紹微信企業號 獲取AccessToken微信企業號 獲取用戶信息微信企業號 JS-SDK&#xff1a;上傳圖片2. 微信公眾號 微信公眾號 訂閱號與服務號的區別微信公眾號 幾種移動端UI框架介紹轉載于:https://www.cnblogs.com/polk6/p/6217835.html

打開cmd窗口新技巧get

1.在當前目錄下&#xff0c;按住shift鍵點擊右鍵,選擇在此處打開命令窗口 很多時候我們需要打開命令行然后進入到相應目錄進行一些操作。 常規的做法是: WinR打開運行窗口輸入"cmd"回車打開命令行窗口 假如我們要進入的是D盤foo文件夾下的一個bar子文件夾&#xff0c…

【python】pycharm啟動 一直index,無法運行

花了幾個小時找相關資料&#xff0c;按網上提供答案操作&#xff0c;依然沒有解決, 最后讓它自動更新完才好&#xff08;大概更新了十分鐘 有固態情況&#xff09; 參考鏈接 pycharm啟動后總是不停的updating indices...indexing? pycharm 啟動后一直更新index的問題

Zookeeper集群角色分配原理

ZK內部存在Leader和Follower兩個角色&#xff0c;那么這兩種角色是怎樣劃分呢&#xff1f;或者說是怎么樣被選舉出來呢&#xff1f;以下將詳細介紹ZK內部的選舉機制。 ZK是通過內部的選舉算法來選出Leader。&#xff08;服務器需要配置對應的ID和文件&#xff09;如下圖所示&a…

2016大數據發展7大趨勢

1.算法&#xff08;Algorithms&#xff09;的崛起 大數據已過時&#xff0c;算法正當道。數據已經成為一種商品&#xff0c;每個組織都能夠收集和存儲大量的數據。分析大數據也不再那么引人注目了。每個組織都可以聘用或培訓大數據分析人員來了解數據模式。 2016年&#xff0c;…