jjzjj

apache - Hadoop/map-reduce : Total time spent by all maps in occupied slots vs. 所有 map task 花费的总时间

coder 2024-01-06 原文

背景:我正在分析 AWS Hadoop 作业在各种集群配置上的性能,一些 Hadoop 计数器令人困惑。

问题:“所有 map 在占用槽中花费的总时间”和“所有 map task 花费的总时间”有什么区别? (减少相同的问题)。为简单起见,我们称这些计数器为 mapO、mapT、redO 和 redT。这是我在三种不同的配置中看到的(每种配置都有不同数量的核心/从节点):

1) 对于 AWS/EMR 作业 (Hadoop 2.4.0-amzn-3),mapO/mapT 的比率始终为 6.0,redO/redT 的比率始终为 12.0。

2)对于使用实例存储的手动安装的Hadoop(Hadoop 2.4.0.2.1.5.0-695),mapO/mapT 的比率始终为1.0,但redO/redT 的比率有时为1.0,有时为2.0。

3) 对于使用EBS存储手动安装的Hadoop,mapO/mapT的比值始终为1.0,redO/redT的比值始终为2.0。

我假设其他配置会有不同的比率,但这些计数器/计时器实际测量的是什么?

我买了 Tom White 出色的“Hadoop”一书(第 3 版),但没有特别提到 mapO 或 redO 计数器,也没有一般性地提到“已占用的插槽”。

我还进行了大量的 Google 搜索,并在 hadoop.apache.com 上查看了数十个页面。我也在我的 MacBook 上安装(并运行)了 hadoop 并搜索了这些计数器的代码但找不到它(我确定它在那里但是??)。

正如在一个相关的(未回答的)问题中指出的那样,令人惊讶和奇怪的是,即使是对这些基本计数器的基本描述也不容易获得。

最佳答案

在代码中,“所有 map 在占用的插槽中花费的总时间(毫秒)”由 JobCounter.java 中的枚举 SLOTS_MILLIS_MAPS(或 SLOTS_MILLIS_REDUCES)表示。这些常量已弃用。他们通过将任务持续时间乘以用于映射任务的 MB 与一个 yarn slot 所需的最小 MB 的比率来获得他们的数字。

因此,如果您的 map task 使用了 4 MB,并且最小槽大小为 1 MB,那么您的任务花费了 4* 本可以用于其他任务的时间。这可以解释为什么您会看到不同设置的不同比率。我不认为该指标特别有用(特别是因为如果不深入研究代码就不清楚它的含义)。

关于apache - Hadoop/map-reduce : Total time spent by all maps in occupied slots vs. 所有 map task 花费的总时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28861620/

有关apache - Hadoop/map-reduce : Total time spent by all maps in occupied slots vs. 所有 map task 花费的总时间的更多相关文章

  1. 叮咚买菜基于 Apache Doris 统一 OLAP 引擎的应用实践 - 2

    导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵

  2. hadoop安装之保姆级教程(二)之YARN的配置 - 2

    1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模

  3. ruby - 在 ruby​​ 中使用 .try 函数和 .map 函数 - 2

    我需要从json记录中获取一些值并像下面这样提取curr_json_doc['title']['genre'].map{|s|s['name']}.join(',')但对于某些记录,curr_json_doc['title']['genre']可以为空。所以我想对map和join()使用try函数。我试过如下curr_json_doc['title']['genre'].try(:map,{|s|s['name']}).try(:join,(','))但是没用。 最佳答案 你没有正确传递block。block被传递给参数括号外的方法

  4. ruby - 不能将 `each` 的所有或大多数情况替换为 `map` 吗? - 2

    Enumerable#each和Enumerable#map的区别在于返回的是接收者还是映射后的结果。回到接收者是微不足道的,你通常不需要在each之后继续一个方法链,比如each{...}.another_method(我可能没见过这样的案例。即使你想回到接收者那里,你也可以通过tap来实现)。所以我认为所有或者大部分使用Enumerable#each的情况都可以用Enumerable#map代替。我错了吗?如果我是对的,each的目的是什么?map是否比each慢?编辑:我知道当您对返回值不感兴趣时​​使用each是一种常见的做法。我对这种做法是否存在不感兴趣,但感兴趣的是,除了从

  5. ruby - `map` 比 `each` 快吗? - 2

    map遍历数组是否比each更快?两者有速度差异吗?mapresult=arr.map{|a|a+2}每个result=[]arr.eachdo|a|result.push(a+2)end 最佳答案 我认为是的。我试过这个测试require"benchmark"n=10000arr=Array.new(10000,1)Benchmark.bmdo|x|#Mapx.reportdon.timesdoresult=arr.map{|a|a+2}endend#Eachx.reportdon.timesdoresult=[]arr.each

  6. ruby - 用于 Ruby 哈希的 map_values()? - 2

    我想念Ruby中的Hash方法来仅转换/映射散列值。h={1=>[9,2,3,4],2=>[6],3=>[5,7,1]}h.map_values{|v|v.size}#=>{1=>4,2=>1,3=>3}你如何在Ruby中归档它?更新:我正在寻找map_values()的实现。#moreexamplesh.map_values{|v|v.reduce(0,:+)}#=>{1=>18,2=>6,3=>13}h.map_values(&:min)#=>{1=>2,2=>6,3=>1} 最佳答案 Ruby2.4引入了方法Hash#tran

  7. ruby - 了解 Ruby Enumerable#map(具有更复杂的 block ) - 2

    假设我有一个函数defodd_or_evennifn%2==0return:evenelsereturn:oddendend我有一个简单的可枚举数组simple=[1,2,3,4,5]然后我用我的函数在map中运行它,使用一个do-endblock:simple.mapdo|n|odd_or_even(n)end#=>[:odd,:even,:odd,:even,:odd]如果不首先定义函数,我怎么能做到这一点?例如,#doesnotworksimple.mapdo|n|ifn%2==0return:evenelsereturn:oddendend#Desiredresult:#=>[

  8. ruby - 将 each_with_index 与 map 一起使用 - 2

    我想获取一个数组并将其作为订单列表。目前我正在尝试以这种方式进行:r=["a","b","c"]r.each_with_index{|w,index|puts"#{index+1}.#{w}"}.map.to_a#1.a#2.b#3.c#=>["a","b","c"]输出应该是["1.a","2.b","3.c"]。如何让正确的输出成为r数组的新值? 最佳答案 a.to_enum.with_index(1).map{|element,index|"#{index}.#{element}"}或a.map.with_index(1){|

  9. javascript - jQuery 的 jquery-1.10.2.min.map 正在触发 404(未找到) - 2

    我看到有关未找到文件min.map的错误消息:GETjQuery'sjquery-1.10.2.min.mapistriggeringa404(NotFound)截图这是从哪里来的? 最佳答案 如果ChromeDevTools报告.map文件的404(可能是jquery-1.10.2.min.map、jquery.min.map或jquery-2.0.3.min.map,但任何事情都可能发生)首先要知道的是,这仅在使用DevTools时才会请求。您的用户不会遇到此404。现在您可以修复此问题或禁用sourcemap功能。修复:获取文

  10. ruby-on-rails - Phusion Passenger 不在 Apache 上工作 - 2

    更新:当输入“passenger-memory-stats”时,我显示:---Passengerprocesses---Processes:0我该如何解决这个问题?为什么即使我在httpd.conf中添加它并重新启动apache,passenger也不会启动?我无法让PhusionPassenger在服务器上运行RubyonRails。我已经按照Phusion网站上的所有说明安装了passenger并修改并创建了ApacheVirtualHost以指向新目录并验证所有.conf文件都已成功加载。还加载了httpd-Mpassenger_module。我还在本地主机上成功运行了Passe

随机推荐