草庐IT

reduce_ex

全部标签

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的输出永远

java - Map Reduce - 在 Reducer 中使用局部变量

我已经实现了一个简单的Mapreduce应用程序来检测最长的单词。作业执行成功。但是现在我想知道在reducer中使用局部变量来保持Max长度是否正确?由于分布式环境中可能有多个reducer,并且它们不共享该变量的值。这是一个正确的假设吗?在分布式环境中,当有独立的reducer时,输出会受到怎样的影响?我正在使用自定义比较器,因此单词首先按长度排序,而不是按值排序。每个MR阶段的输出如下所示:MapperOutput:ByeByeBye9HelloHelloHe22215HelloHelloHe22215HelloHelloHe33315HelloHelloHe33315Hello

hadoop - 可以同时运行多少个reducer?

在Uni学习大数据,我对MapReduce的话题有点困惑。我想知道有多少reducer可以同时运行。例如,假设我们有864个reducer,有多少可以同时运行? 最佳答案 所有这些都可以同时运行,这取决于集群的状态(健康,即没有rouge/bad节点),集群的容量是多少以及集群的空闲程度。如果有其他MR作业在同一个集群上运行,那么在864个reducer中只有少数会进入运行状态,一旦容量空闲,另一组reducer将开始运行。还有一种情况有时会发生,当您的reducer/mapper不断相互抢占并占用整个内存时。在大多数情况下,作业都

java - Hadoop MapReduce 在 reducer 中访问 mapper 输出数

我有一个映射器,它输出句子中的每个字母,这是键,数字1作为它的值。例如,我的映射器将“你好吗”输出为H1o1w1a1r1e1y1o1u1我的reducer接受它并使用1来计算每个字母的出现次数。例如,它会输出字母“o”作为键,输出2作为它的值,因为它出现了两次。我的问题是我想计算每个字母在句子中出现的频率。为此,我需要访问句子中字母的总数(映射器输出的数量)。我是mapreduce的新手,所以我不确定最好的方法。 最佳答案 假设您的映射器正在获取一个完整的句子,您试图在其中找到频率并且您正在使用JavaAPI,您可以通过contex