草庐IT

Iterator-reducer

全部标签

hadoop - reducer 数量

我正在尝试在10个数据节点的集群中测试Mapreduce程序的性能。在此过程中,我使用了5个Reducers,然后是10个等等。我在想增加reducer的数量也会使工作完成得更快,但我观察到在30之后,即使你将数量增加到70,工作运行时间也没有任何区别,尽管有超过400个独特的keys和reducer的数量增加超过30应该会有所不同不是吗?谁能帮助我了解这是否有任何特殊原因?提前致谢 最佳答案 您没有观察到性能提升的原因有多种。当您进行此性能测试时,您正在运行哪些基准测试?还有你有多少映射器?你的工作有多大等等...根据您在此处简要

hadoop - 如何在Hadoop中根据集群大小设置reduce任务

我想将#ofreducetasks设置为正好等于一个作业中可用的reduceslots的数量。默认情况下,reduce任务被计算为可用reduce插槽数量的约1.75倍(在ElasticMapreduce上)。我注意到我的工作非常均匀地完成reduce任务,因此最好在工作中每个reduce槽运行1个reducer。但是如何从我的作业配置中识别集群指标? 最佳答案 你可以使用ClusterMetrics获取Map-Reduce集群当前状态信息的类,如集群大小、黑名单和退役跟踪器数量、集群槽容量、当前占用/保留的map&reduce槽数

hadoop - 当 reducer 仍在运行时,我可以读取 reducer 输出吗?

我正在尝试减少mapreduce作业在我的数据流中的延迟,并且我想使用hdfs-api持续跟踪reducerpart-xxxx文件的输出,而不是在作业完成后读取它。但我想知道这对hadoop作业是否安全? 最佳答案 当您使用基于FileOutputFormat的输出格式(文本、序列文件etx)时,它们会使用一个通用的FileOutputCommitter,它负责在reducer输出时提交或中止它成功/失败等在幕后,当您的reducer写入输出时,它会写入您指定的HDFS输出目录的_temporary子目录。当reducer完成时,作

hadoop - 如何将许多参数写入 reducer 的输出文件?

我有一个文本文件如下250788965731,20090906,200937,200909,621,SUNDAY,WEEKEND,ON-NET,MORNING,OUTGOING,VOICE,25078,PAY_AS_YOU_GO_PER_SECOND_PSB,SUCCESSFUL-RELEASEDBYSERVICE,5,0,1,6.25,635-10-104-40163.我只是hadoop的初学者。我遇到了以下问题。如何打印输出文件中的整行?据我所知,只能将一个键和一个值写入输出文件。如何在我的输出文件中写入包含许多参数的整行。或者我如何在输出文件中至少写入一些参数?

Hadoop reducer 错误 : "Shuffle Error: Exceeded the abort failure limit; bailing-out"

我有一个hadoop0.20map/reduce作业,过去运行得很好。最近几天卡在reduce阶段16.66%,我在jobtracker查看reduce任务时看到如下错误;ShuffleError:Exceededtheabortfailurelimit;bailing-out.谁能告诉我这是什么意思,也许能给我指出正确的方向,这样我就能弄清楚如何解决这个问题? 最佳答案 此错误对应于reducer在报告它并映射到属性mapreduce.reduce.shuffle.maxfetchfailures之前尝试获取映射输出的最大次数。您

hadoop - 如何使用 LZO 以外的压缩处理 Hadoop Map/Reduce 中的 Protocol Buffer 文件?

我想使用HadoopMap/Reduce来处理delimited使用LZO以外的东西压缩的ProtocolBuffer文件,例如xz或gzip。Twitter的elephant-bird库似乎主要支持读取LZO压缩的protobuf文件,因此似乎不能满足我的需求。是否有现有的库或标准方法来执行此操作?(注意:正如您从我选择的压缩算法中看到的那样,解决方案没有必要使protobuf文件可拆分。您的答案甚至不需要指定特定的压缩算法,但应该至少允许我提到的其中之一。) 最佳答案 您可能需要查看Hadoop的RAgzip补丁,以处理大型gz

c# - 在 MapReduce 中使用 Windows Azure 存储执行 Reduce 函数后无法看到最终结果

我正在使用c#.net编写map和reduce函数。我基本上遵循给出的示例here最终命令Hadoopjarhadoop-streaming.jar-files"hdfs:///example/apps/map.exe,hdfs:///example/apps/reduce.exe"-input"/example/apps/data.csv"-output"/example/apps/output.txt"-mapper"map.exe"-reducer"reduce.exe"作业成功运行现在从交互式JS模式,如果我写js>#cat/example/apps/output.txtcat

hadoop - 如何更改 hadoop 中 map reduce 函数的 log4j 级别

如标题,如何通过将参数传递给命令行来更改hadoop中mapreduce函数的log4j级别。我不想以编程方式更改级别。谢谢 最佳答案 您应该实现ToolRunner。在Hadoop权威指南中有一章描述它,source 关于hadoop-如何更改hadoop中mapreduce函数的log4j级别,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/15240101/

java - 如何在不缓存 hadoop 1.0.3 的情况下多次迭代 hadoop reduce 值?

我有一个问题,我基本上想做这样的事情:publicvoidreduce(Textkey,IterableiterValues,Contextcontext){for(Textval:iterValues){//dosomething}iterValues.reset()for(Textval:iterValues){//dosomethingelse}}我知道最好避免这些情况,或者简单地在内存中实例化对象,但我遇到了一个问题,我可能有太多的东西要保存在内存中,并且在结构上会变得更加复杂以破坏这变成了更多的减少步骤。看起来我不是唯一一个在寻找这个功能的人,事实上,这是一个很久以前实现的功

java - Map-reduce 实例化异常

您好,我正在使用以下map-reduce代码来尝试解析我的XML文件并在输出中创建CSV。importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.conf.*;importorg.apache.hadoop.mapreduce.lib.input.FileInputFormat;importorg.apache.hadoop.mapreduce.lib.output.FileOutputFormat;importorg.apache.hadoop.mapreduce.lib.output.TextOutputFormat;publ