草庐IT

java - Hadoop:测量每个阶段的持续时间(map、shuffle/sort、reduce)

有一个非常相似的问题我想知道。HowcanImeasurethedurationofeachphase(map,shuffle/sort,reduce)inHadoop?答案是tasktracker的web/ui显示应用程序的每个持续时间。但是我的环境是hadoop-2.2.0,没有tasktracker。所以tasktrackerweb/ui"localhost:50030/tasktracker.jsp"不工作。我猜答案只适用于较低版本的hadoop(1.x.x)。我如何测量hadoop-2.x.x版本中每个阶段(map、shuffle/sort、reduce)的持续时间?是否有任

hadoop - 为什么增加 reducer 的数量会增加运行减速阶段的时间?

我今天在AWS上使用不同数量的reducer运行我的Hadoop程序,但是我观察到随着reducer数量的增加,时间没有减少,而是增加了。对于时间,我是说从Map100%,Reduce30%到Map100%,Reduce100% 最佳答案 请记住,数据需要通过网络发送到reducer,如果您从mapper输出的数据不是很大以增加reducer的数量可能会影响性能,因为结果需要传输到不同的reducer,由于每个reducer创建自己的文件,您需要创建更多文件,因此I/O操作会增加。每个reduce都需要启动并在节点中创建/实例化,这

hadoop - shuffle阶段和combiner阶段有什么区别?

我对MapReduce框架感到很困惑。我对从不同来源阅读的内容感到困惑。顺便说一下,这是我对MapReduce作业的想法1.Map()-->emit2.Partitioner(OPTIONAL)-->divideintermediateoutputfrommapperandassignthemtodifferentreducers3.Shufflephaseusedtomake:4.Combiner,componentusedlikeaminireducerwichperformsomeoperationsondatasandthenpassthosedatatothereducer.

hadoop - 映射阶段使用的空间量

我是hadoop的新手,我开始想:映射阶段的结果放置了多少磁盘空间?我指的是map的输出和reduce的输入。这取决于执行的算法?hadoop设置和配置?节点数量? 最佳答案 Itdependsofthealgorithmperformed?绝对是的。想象一个map函数发出(a,b)和另一个map函数发出(a,b)and(b,a)。第二个发出的数据量是第一个的两倍。thehadoopsetupandconfiguration?是的,您可以设置hadoop来压缩map输出(conf.set("mapreduce.map.output.

java - 如何在 reduce 阶段工作时启动 map 阶段

我有这种情况。工作A和工作B。是否有机会在JobA减少阶段提供的数据开始JobB映射阶段,同时它仍在工作?谢谢! 最佳答案 我唯一想到的是有一个线程(在您的驱动程序类中启动)永久检查JobA的输出目录。当创建并完全写入特定(一组)part-r-xxxx文件时,您可以启动JobB并将该特定(一组)part-r-xxxx文件作为输入。我现在唯一能确定的问题是与检查part-r-xxxx文件是否已完全写入有关的问题。 关于java-如何在reduce阶段工作时启动map阶段,我们在StackO

hadoop - 在 Reduce 阶段 (HADOOP) 多次迭代键/值?

如何对在HADOOP的Reduce阶段收到的键/值对进行多次迭代。我想做类似的事情,但它没有进入第2次迭代。for(Vectorvalue:values){sum+=value.getVector()[length-1];for(inti=1;i请给我解决方案???谢谢:) 最佳答案 您正在遍历values中的结果,一旦您遍历了它们,您就不能再这样做了。如果values中的总数不太大,您可以尝试将值设置为本地集合变量,然后您应该能够多次迭代它们。试试这个:Java:useEnumerationmultipletimes

hadoop - Hive 阶段 mapreduce

我是Hive的新手。我几乎没有怀疑。我想知道Hive如何将查询转换为MapReduce作业?我查看了解释命令,它为我提供了一个阶段计划,并且依赖项。我想知道阶段的细节。这些阶段如何有定义吗?如何控制MapReduce的执行。假设我想改变Reducejoin到mapsidejoin。 最佳答案 在抽象层面上,当你在hive中执行查询时会发生以下事情解析查询并创建抽象语法树然后将AST转换为MapReduce任务的DAG然后为每个MapReduce任务创建一个Runnable。然后MapReduce任务将被序列化为xml文件(存储在/t

hadoop - 远程执行 Hadoop 作业时 reduce 阶段异常

我有一个运行1.0.4的小型10节点hadoop集群,我正在尝试对其进行设置,以便我能够从网络上不是NameNode的机器提交作业。我有一个简单的示例设置,我使用ToolRunner执行作业,buildJobConf手动,并使用JobClient.submitJob()提交.当我从NameNode运行它时,一切都按预期工作。当我从网络中的任何其他节点运行时,作业被提交并且所有map任务成功完成,但所有reduce任务失败并出现以下异常:org.apache.hadoop.util.DiskChecker$DiskErrorException:Couldnotfindoutput/map

hadoop - 迭代 map 减少工作。如何获取 reducer 输出并将其提供给下一阶段?

具体来说,我正在尝试找到一种使用mapreduce计算图中最短路径的方法。我想出的那个似乎需要多轮mapreduce。然而,到目前为止,我在Hadoop上阅读的所有文档似乎都没有清楚地描述运行具有多个阶段的mapreduce作业。从第一阶段的reducer中获取输出,并将其作为输入提供给下一阶段的映射器。我希望Hadoop允许像他这样的东西。 最佳答案 我在这里写了博客:http://codingwiththomas.blogspot.com/2011/04/controlling-hadoop-job-recursion.html

hadoop - 测量 Hadoop 中每个节点的整个映射阶段的持续时间

目前,我知道jobtracker可以显示每个maptask所花费的时间,但我想要的不是每个maptask,而是从第一个maptask到最后一个maptask所花费的时间一个节点。例如:1个Map需要2秒,但是当您有100个map任务并且并非所有任务都可以并行执行时,我如何衡量每个节点的时间?是否可以知道每个节点执行整个映射阶段(所有映射任务)所花费的时间? 最佳答案 您可以使用用户定义的Java计数器来导出每个节点的所有映射器所花费的时间。在Mapper实现中,您需要执行以下操作,1.覆盖设置并记录开始时间。longstartTim