1. 程式人生 > >Hadoop MapReduce Job效能調優——修改Map和Reduce個數

Hadoop MapReduce Job效能調優——修改Map和Reduce個數

MapReduce框架將檔案分為多個splits,併為每個splits建立一個Mapper,所以Mappers的個數直接由splits的數目決定。而Reducers的數目可以通過job.setNumReduceTasks()函式設定,預設情況只有一個Reducer。在真正的叢集環境下,如果預設,那麼所有的中間資料會發送給唯一的Reducer,導致任務變得非常緩慢。究竟設多少個Reducers合適呢?為了解決這個問題,首先來了解一下slots的概念。

slots有點類似一個資源池,每個任務(map和reduce)執行時都必須獲得一個slot才能繼續,否則只能等待。當一個任務完成後,該任務就歸還slot,這個過程有點類似釋放資源到資源池中。顯然,每一個獲得資源的任務都可以立即執行,無需等待。另一方面,mapreduce的任務由tasktracker節點負責執行的,所以slots可進一步理解為tasktrackers能夠併發執行多個任務。slots分為mapper slots和reducer slots,分別對應最大可並行執行的mapper和reducer數。使用者可以通過修改mapred-site.xml配置檔案的mapred.tasktracker.map.tasks.maxmum來設定slots的值,預設為2.

叢集中可用rducer slots 的總數等於叢集中的總結點數誠意每個節點有多少個slots。reducers 數目的最佳值和reducer slots的總數有關,通常情況下,讓reducers的數目略小於reducer slots的總數,這樣的目的:首先reducers可以並行執行,減少排隊時間;其次對於未執行reducer的slots可以在其他reducer發生故障時,立即分配給新建立的reducer,不會明顯 加長任務總時間。

如果出現reducers》mappers的情況就不合理了,這樣有些mappers會工作消耗資源開銷,但是對任務沒有任何幫助。

相關推薦

Hadoop MapReduce Job效能調——修改MapReduce個數

MapReduce框架將檔案分為多個splits,併為每個splits建立一個Mapper,所以Mappers的個數直接由splits的數目決定。而Reducers的數目可以通過job.setNumReduceTasks()函式設定,預設情況只有一個Reducer。在真正的叢集環境下,如果預設,那麼所有的中

Hadoop MapReduce Job效能調——MapReduce個數

 map task的數量即mapred.map.tasks的引數值,使用者不能直接設定這個引數。Input Split的大小,決定了一個Job擁有多少個map。預設input split的大小是64M(與dfs.block.size的預設值相同)。然而,如果輸入的資料量

Hadoop實戰:*********MapReduce效能調(一)*********

        下面來談談重頭戲,那就是mapred中的這些NB的引數。前置知識我相信大家都已經瞭解了(如果你還不瞭解mapred的執行機制,看這個也無意義...),首先資料要進行map,然後merge,然後reduce程序進行copy,最後進行reduce,其中的merge和copy總稱可以為shuffle

hadoop中每個節點mapreduce個數的設定調

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

mapreducemapreduce個數

case when 生成 task 輸入 slots align reducer 進行 很多 一、 控制hive任務中的map數: 1. 通常情況下,作業會通過input的目錄產生一個或者多個map任務。 主要的決定因素有: input的文件總個數,input的

MapReduce個數設定問題

看了Hadoop的API和官方文件,加上自己原創,大致分析如下: map和reduce是hadoop的核心功能,hadoop正是通過多個map和reduce的並行執行來實現任務的分散式平行計算,從這個觀點來看,如果將map和reduce的數量設定為1,那麼使用者的任務就

MapReduce 個數的設定 (Hive優化)經典

1.    通常情況下,作業會通過input的目錄產生一個或者多個map任務。 主要的決定因素有: input的檔案總個數,input的檔案大小,叢集設定的檔案塊大小(目前為128M, 可在hive中通過set dfs.block.size;命令檢視到,該引數不能自定義修改);2.    舉例: a)   

Hadoop效能調全面總結

一、 Hadoop概述 隨著企業要處理的資料量越來越大,MapReduce思想越來越受到重視。Hadoop是MapReduce的一個開源實現,由於其良好的擴充套件性和容錯性,已得到越來越廣泛的應用。 Hadoop實現了一個分散式檔案系統(Hadoop Distributed File Sys

1.linux使用自帶的命令執行spoon寫好的job命令以及效能調策略

1. [[email protected] data_integration]# nohup ./kitchen.sh /file file/desktopstatistics.kjb &[1] 16537 [[email protected] data_integrat

Spark 效能調 Rdd 之 reduceByKey 本地聚合(也就是map端聚合運算元)

簡單程式碼 val lines = sc.textFile("hdfs://") val words = lines.flatMap(_.split(" ")) val pairs = words.map((_, 1)) val counts = pairs.reduceByKey(_

Hadoop效能調方法

當我們寫完一個MR程式之後,我們希望能夠加快程式的執行速度,那麼怎麼進行效能的調優呢,有如下幾種方法? 1、mapper的數量 適當調整mapper的數量,使得每個mapper的執行時間在1分鐘為宜。因為mapper數量過小,則會導致整體速度過慢。太多則導致

spark效能調(三)shuffle的map端記憶體緩衝reduce端記憶體佔比

效能優化 shuffle spark.shuffle.file.buffer,預設32k spark.shuffle.memoryFraction,0.2 map端記憶體緩衝,reduce端記憶體佔比;很多資料、網上視訊,都會說,這兩個引數, 是調節shuff

linux下修改核心引數進行Tcp效能調 -- 高併發

前言: Tcp/ip協議對網路程式設計的重要性,進行過網路開發的人員都知道,我們所編寫的網路程式除了硬體,結構等限制,通過修改Tcp/ip核心引數也能得到很大的效能提升, 下面就列舉一

Tomcat併發數優化,修改service.xml效能調 增加最大併發連線數

可以在控制檯的啟動資訊裡看見,預設狀態下沒有被開啟nio配置,啟動時的資訊,如下: 2010-2-1 12:59:40 org.apache.coyote.http11.Http11Protocol init 資訊: Initializing Coyote HTTP/1.1 on http-8080 2010

Tomcat修改service.xml效能調 增加最大併發連線數

 詳細配置: <Connector executor="tomcatThreadPool"                port="80" protocol="HTTP/1.1"                 connectionTimeout="20000"

Cloudera Hadoop運維管理與效能調

效能調優之於Hadoop來說無異於打通任督二脈,對於Hadoop的計算能力會有質的的提升,而運維之於Hadoop來說,就好像金鐘罩、鐵布衫一般,有了穩定的運維,Hadoop才能在海量資料之中大展拳腳,兩者相輔相成,缺一不可。 總體來說,Hadoop運維維度取決於Had

Hadoop作業性能指標及參數調實例 (二)Hadoop作業性能調7個建議

optimize 自帶 管理 導致 10g avg merge map 設置 作者:Shu, Alison Hadoop作業性能調優的兩種場景: 一、用戶觀察到作業性能差,主動尋求幫助。 (一)eBayEagle作業性能分析器 1. Hadoop作業性能異常指標 2.

1.效能調概覽

介紹 Optimization Overview 優化概述 Optimizing SQL Statements 優化SQL語句 Optimization and Indexes 優化和索引 Optimizing Database Structure 優化資料庫結

深入理解Java虛擬機器總結一虛擬機器效能監控工具與效能調(三)

深入理解Java虛擬機器總結一虛擬機器效能監控工具與效能調優(三) JDK的命令列工具 JDK的視覺化工具 效能調優 JDK的命令列工具 主要有以下幾種: jps (Java Process Status Tool): 虛擬機器程序

【Big Data 每日一題】Spark開發效能調總結

1. 分配資源調優 Spark效能調優的王道就是分配資源,即增加和分配更多的資源對效能速度的提升是顯而易見的,基本上,在一定範圍之內,增加資源與效能的提升是成正比的,當公司資源有限,能分配的資源達到頂峰之後,那麼才去考慮做其他的調優 如何分配及分配哪些資源 在生產環境中,提交spark作