草庐IT

Iterator-reducer

全部标签

java - Apache Crunch 管道如何生成 map reduce 作业?

我是Crunch/Cascading等Hadoop管道框架的新手。我想知道在这些框架的底部,它们是否生成原始的映射器和缩减器类,就像原始的MapReduce程序一样?从Crunch源代码中,我没有找到将管道转换为原始MapReduce类的代码。 最佳答案 您可以使用代码中的以下行可视化MapReduce计划紧缩创建。将在pipeline.dot中创建的DOT代码复制到graphviz中以查看计划。Stringdot=pipeline.getConfiguration().get("crunch.planner.dotfile");F

hadoop - 如何从 Oozie 触发的流式 Map Reduce 作业输出 Hadoop EL 计数器?

我正在使用Oozie触发流式MapReduce作业,为此我想收集以下HadoopEL常量:MAP_IN:Hadoop映射器输入记录计数器名称。MAP_OUT:Hadoopmapper输出记录计数器名称。REDUCE_IN:Hadoopreducer输入记录计数器名称。REDUCE_OUT:Hadoopreducer输入记录计数器名称。我看到这些可以使用${hadoop:counters('mr-action')[RECORDS][REDUCE_OUT]}但是,我不知道如何让这些值通过STDOUT输出回屏幕,或者输出到我启动Oozie工作流的服务器上HDFS中的文件。我试过将这些值传递给

hadoop - Hadoop 中 map、shuffle、merge 和 reduce 时间的精确定义

在Hadoop中,作业执行后会提供以下指标:map时间减少时间洗牌时间合并时间我找不到这些时间的确切定义,因为所有来源都不清楚这些时间是如何准确计算的。这是我的看法:map时间是读取输入和应用map功能以及排序数据的时间reduce时间是应用reduce函数并编写输出的时间Shuffletime是mergemap排序数据传输到reducer的时间合并时间是仅在reduce端合并map输出的时间我不确定粗体部分。我的分析正确吗? 最佳答案 我决定研究Hadoop代码以获得更多见解。下图解释了我的发现。我发现:map时间是maptask

hadoop - Map-reduce 通过 Oozie

如果我使用Oozie来运行MapReduce作业,是否有关于将启动多少映射器的具体数字?是吗:一个用于Oozie,一个用于map-reduce作业或一个用于Oozie,一个映射器用于每64MBblock(默认block大小) 最佳答案 上面的回答主要集中在一个mapreduce作业需要多少个map和reduce上。但是,当您特别询问oozie时,我将通过Oozie分享我在mapreduce(在pig中)方面的经验。解释当您启动oozie工作流程时,您需要1个yarn应用程序。我不确定逻辑是什么,但看起来这些应用程序通常需要1张map

在将值发送到 reducer 之前对其进行排序

我正在考虑在hadoop中构建一个小型测试应用程序以掌握系统的窍门。我想到的应用是统计领域。我想从我的reducer函数中获得“每个键的10个最差值”(我必须假设某些键可能有大量值)。我的计划是,进入我的reducer的值基本上是“实际值”和“实际值的质量/相关性”的组合。基于相关性,我“简单地”想取10个最差/最好的值并从reducer中输出它们。我该怎么做(假设特定键有大量值)?有没有一种方法可以让我在将所有值发送到reducer之前对它们进行排序(并且在我读取前10个值后就停止读取输入)或者必须以不同的方式完成?这里有人可以指点我可以看一下的示例代码吗?更新:我发现了两个有趣的J

python - Amazon Elastic MapReduce - python map 和 reduce 代码的格式或示例

也许它与Hadoop相同,但我找不到编写map的格式或示例,并在map示例旁边减少python代码:http://docs.amazonwebservices.com/ElasticMapReduce/latest/GettingStartedGuide/但我找不到reduce代码示例,它和Hadoop一样吗?格式是什么,有什么例子吗? 最佳答案 EMR流与一般的Hadoop流没有什么不同。这是一个pythonreducer的例子http://www.michael-noll.com/tutorials/writing-an-had

hadoop - 在 hadoop Map-Reduce 中,如何知道 map 任务结束或 filesplit 结束

hadoop中的映射任务处理输入文件的64/128MB分割。它从输入拆分的第一行开始处理,直到结束。我需要找出如何知道maptask何时完成处理其输入拆分。换句话说,在洗牌和排序开始之前。hadoop库中有什么方法可以回答我的问题吗? 最佳答案 Mapper类的cleanup方法允许您在映射器处理完输入拆分时执行代码,只需像覆盖map方法。如果这不是您想要的,也许Counter可以解决您的问题? 关于hadoop-在hadoopMap-Reduce中,如何知道map任务结束或filesp

java - 如何在 Hadoop 1.0.4 中链接 mapper/reducer?

我使用的是Hadoop1.0.4的"new"API(包org.apache.hadoop.mapreduce中的类)。当我想链接mapper/reducer时,我发现ChainMapper、ChainReducer是为“旧”API(包org.apache.hadoop.mapred中的类)编写的。我该怎么办? 最佳答案 我也在找。我确实得到了答案,尽管已经晚了,但我认为分享这个可能会对某人有所帮助。从Hadoop2.0开始,您可以在org.apache.hadoop.mapreduce.lib.chain包中找到ChainMappe

scala - 学习mapreduce,如何在map reduce数据流中翻译SQL命令。字数统计示例不能满足我的理解。

在网上,我看到了很多关于规范字数统计图减少遍历的示例。我了解k,v的映射器输入=>以减少k,list(v)的输入。mapreduce带来了一些神奇的效果。我不太明白如何将mapreduce应用于更实际的示例。例如:假设我有一个文件,其中包含美国所有员工的薪水以及一些其他详细信息,例如州和城市等......mapreduce如何工作以提供包含以下列汇总的输出报告?州,城市,平均(工资)在SQL中,我可以通过这样的查询得到它:Selectstate,city,avg(salaries)Fromemployee_tblGroupbystate,citymapreduce将如何为我提供上述结果

hadoop - 为什么此代码不对 reducer 值进行两次迭代?

我有这个代码:publicvoidreduce(Textkey,Iterablevalues,Contextcontext)throwsIOException,InterruptedException{Stringname=null;Stringsid=null;Stringpredicate=null;Stringoid=null;Stringid=null;StringoutKey=null;StringoutVal=null;LinkedListvaluesList=newLinkedList();Iteratorite=values.iterator();while(ite.h