我的基於mapreduce的hive sql在Yarn上運行,hadoop版本是2.7.2。我想要的,它限制映射器任務或減速器任務同時運行當一些配置單元sql是真的很大。我曾嘗試下面的參數,但實際上他們是不是我想要的:Yarn上的MapReduce:控制同時運行的mapper或reducer任務嗎?
mapreduce.tasktracker.reduce.tasks.maximum: The maximum number of reduce tasks that will be run simultaneously by a task tracker.
mapreduce.tasktracker.map.tasks.maximum: The maximum number of map tasks that will be run simultaneously by a task tracker.
上面的兩個參數似乎爲我紗線集羣不可用,因爲紗線沒有JobTracker的,這是Hadoop的1概念的概念。 X?我已經檢查過我的應用程序,其運行的映射器高於20,但mapreduce.tasktracker.reduce.tasks.maximum值只是默認值2
。
,然後,我嘗試以下兩個參數,另外,他們不是我所需要的:
mapreduce.job.maps: The default number of map tasks per job. Ignored when mapreduce.jobtracker.address is "local".
mapreduce.job.reduces: The default number of reduce tasks per job. Typically set to 99% of the cluster's reduce capacity, so that if a node fails the reduces can still be executed in a single wave. Ignored when mapreduce.jobtracker.address is "local".
mapreduce.job.maps
只是有多少組就會映射任務,可以創建一個提示,並mapreduce.job.maps
定義如何會產生許多減速器。
但是我想限制的是,有多少映射器或減速器任務被允許同時爲每個應用運行?
在我下面的截圖中,一個紗線應用程序至少有20多個mapper任務正在運行,這會花費太多的集羣資源。我想最多限制爲10個。
那麼,我該怎麼辦?
總之,要強制紗線的配額。查看公平調度程序/容量調度程序文檔... –
當您回覆時,Yarn上的MapReduce作業的並行度僅由紗線控制.Yarn作爲資源調度程序不知道其容器中運行的是什麼,因此,我能做的,只是控制紗線調度程序aspectr的並行性(實際上我使用的是FairScheduler),沒有別的嗎? – wuchang
作業的「並行度」是由執行框架(MapReduce,TEZ,Spark)根據輸入大小和輸入碎片來設置的 - 例如,3個文件共5個HDFS塊,沒有「合併小文件」選項,表示5個映射器(或5個Spark分區)。 –