草庐IT

reduce-combine

全部标签

hadoop - 在reducer的cleanup()中调用context.write()有什么用

在reduce()和cleanup()中执行context.write()的区别?我在某处读到只有在temp_dir中的输出移动到指定的输出目录后才会调用清理?还有如何在MR作业中使用treeMap的例子? 最佳答案 reducer任务有如下调用方法:run():setup()foreachrecord:reduce()cleanup()如您所见,setup()和cleanup()在每个reducer任务中只被调用一次,而reduce()会为每条记录调用(一条记录是键和值)。在reducer中你一次只有一个键和它的值。在清理中,您可

hadoop程序只写逻辑,只写reducer的程序

编写一个mapreduce程序来打印文本文档中出现频率最高的单词。可以固定阈值,输出频率超过阈值的词。例如:如果thereshold=100,并且“is”在文档中出现了150次,则必须在输出中打印它。program:packageorg.myorg;importjava.io.IOException;importjava.util.*;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.conf.*;importorg.apache.hadoop.io.*;importorg.apache.hadoop.mapreduce.*

java - Hadoop在Maper或Reducer端使用java连接两个不同的数据集

我有两个不同的数据集。***Comments.csv:***iduserid***Posts.csv-***idpost_typecreationdatescoreviewcountowneruseridtitleanswercountcommentcount我有显示名称,但没有。获得最高声誉的用户创建的帖子数。我知道MapReduce如何使用单个文件工作的代码。我知道如何为Job设置多个文件。但是我不知道如何在Mapper级别加入不同的数据集。我不确定我是否可以用一个Mapper连接这两个数据集。publicvoidmap(Objectkey,Textvalue,Contextcon

java - Reducer 将 Mapper 输出写入输出文件

我正在学习Hadoop并尝试执行我的Mapreduce程序。所有Map任务和Reducer任务均已完成,但Reducer将Mapper输出写入输出文件。这意味着根本没有调用Reduce函数。我的示例输入如下所示1,a1,b1,c2,s2,d预期的输出如下1a,b,c2s,d下面是我的程序。packagepatentcitation;importjava.io.IOException;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.FileSystem;importorg.apache.hadoo

hadoop - Map Reduce在eclipse中执行

谁能告诉我如何在Eclipse的参数选项卡中设置HDFS文件路径。这样下面的代码就不会给出超出索引的异常。FileInputFormat.addInputPath(job,newPath(otherArgs[0]));FileOutputFormat.setOutputPath(job,newPath(otherArgs[1])); 最佳答案 您需要使用运行配置。右键单击该程序,转到运行配置,使用java应用程序。选择正确的项目和带有main函数的正确程序后,您需要转到VMArguments并传递参数。

hadoop - Reducer 数量和输出顺序

当我使用函数job.setNumReduceTasks(1);时,我得到按键排序的输出。但是,当我删除此功能时,输出不会按键排序。那么,当我们有多个reducer任务时,我们是否应该期望从reducer获得排序的输出?谢谢。 最佳答案 输出在单个Reducer中按键排序。然而,默认的Partitioner是哈希函数的结果,因此虽然每个文件在使用多个Reducer时都会被排序,但一个文件不会是最后一个文件的排序延续。例如:我们有一个包含三个Reducer的字数统计作业。映射器输出:(A,1)(zebra,1)(bat,1)(zebra

eclipse - 在 eclipse 中安装 MAP-REDUCE 插件时出错

当我尝试在eclipseINDIGO中安装MAP-REDUCE插件时,出现以下错误截图:我已经安装了hadoop1.2.1。 最佳答案 您尝试使用的插件是使用Java8编译的,但您正在使用早期版本的Java运行Eclipse。您必须使用Java8运行Eclipse才能使用此插件。 关于eclipse-在eclipse中安装MAP-REDUCE插件时出错,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/

java - 在hadoop中没有reducer的情况下限制多输出中映射器的数量

您好,我有一个从HBase读取记录并将其写入文本文件的应用程序HBase表有200个区域。我在映射器类中使用MultipleOutputs来写入多个文件,并且我正在根据传入的记录创建文件名。我正在制作40个唯一的文件名。我能够正确获取记录,但我的问题是,当mapreduce完成时,它会创建40个文件以及2k个具有正确名称但附加的额外文件用m-000等等。这是因为我有200个区域,MultipleOutputs为每个映射器创建文件,所以200个映射器,每个映射器有40个唯一文件,所以它创建40*200个文件。如果没有自定义分区程序,我不知道如何避免这种情况。有什么方法可以强制将记录写入所

hadoop - 如何避免 Hadoop 中的 Map/Reduce 任务失败

我有一个迭代次数太多的循环和一个在Reducer函数中计算量很大的函数。while(context.getCounter(SOLUTION_FLAG.SOLUTION_FOUND).getValue()MAX_ITR是迭代次数-用户输入问题是当我在Hadoop集群上运行它时出现超时错误并且Reducer任务被终止17/05/0621:09:43INFOmapreduce.Job:TaskId:attempt_1494129392154_0001_r_000000_0,Status:FAILEDAttemptID:attempt_1494129392154_0001_r_000000_0

hadoop - 在字数统计程序中使用 2 个 reducer 的输出

假设具有键“the”、“sound”、“is”的键值对由reducer1处理,而具有键“it”、“right”、“sounds”的键值对是由reducer2处理。两个reducer的输出是什么?每个reducer的输出文件会先排序然后合并再排序吗?当reducer收到它们时,它是否已经按字母顺序排序,以便reducer1收到“is”、“it”、“right”,reducer2收到“the”、“sound”、“sounds”? 最佳答案 回答您的问题:reducer的输出将是其出现的单词和计数。在不同键上工作的reducer的输出永远