草庐IT

reducer-combiner

全部标签

java - Hadoop 无法设置 Reducers > 1

我正在使用Hadoop完成一项大学作业,我的代码可以正常工作,但是我遇到了一个小问题。我正在尝试将reducer的数量设置为19(如文档所建议的那样为0.95*capacity)。但是,当我在任务跟踪器中查看我的工作时,它显示总共有1个reducer。System.err.println("here");job.setNumReduceTasks(19);System.err.println(job.getNumReduceTasks());预期产量:here19但在最终输出中我得到:12/05/1611:10:54INFOmapred.JobClient:Data-localmapt

eclipse - 使用 Eclipse 开发、测试和调试 Hadoop map/reduce 作业

在Eclipse中开发JavaMapReduce作业有哪些选择?我的最终目标是在我的亚马逊Hadoop集群上运行我开发的map/reduce逻辑,但我想先在我的本地机器上测试逻辑并在将其部署到更大的集群之前在其中放置断点。我看到有一个用于Eclipse的Hadoop插件看起来很旧(如果我错了请纠正我),一家名为Karmasphere的公司有一些用于ecplise和Hadoop的东西,但我不确定它是否仍然可用。您如何使用Eclipse开发、测试和调试您的map/reduce作业? 最佳答案 我通过以下方式在Eclipse中开发Cass

java - 使用 Map Reduce 的最小最大计数

我开发了一个Mapreduce应用程序来确定用户第一次和最后一次发表评论的时间以及该用户根据DonaldMiner写的书发表的评论总数。但我的算法的问题是reducer。我已经根据用户ID对评论进行了分组。我的测试数据包含两个用户标识,每个用户标识在不同日期发布3条评论。因此总共有6行。所以我的reducer输出应该打印两条记录,每条记录显示用户第一次和最后一次评论以及每个用户ID的总评论。但是,我的reducer正在打印6条记录。有人可以指出以下代码有什么问题吗?importjava.io.IOException;importjava.text.SimpleDateFormat;im

java - Driver 中的 job.setOutputKeyClass 和 setOutputValueClass 与 reducer 的 context.write 方法不匹配,程序仍然运行正常。怎么办?

驱动代码:publicclassWcDriver{publicstaticvoidmain(String[]args)throwsIOException,InterruptedException,ClassNotFoundException{Configurationconf=newConfiguration();Jobjob=newJob(conf,"WcDriver");job.setJarByClass(WcDriver.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(LongWritable.cl

java - 在 map reduce 中使用自定义分区程序应该遵循哪个逻辑来解决这个问题

如果文件中的键分布是99%的单词以'A'开头,1%的单词以'B'到'Z'开头,并且您必须计算每个字母开头的单词数,您将如何计算有效地分发您的key? 最佳答案 解决方案1:我认为要走的路是组合器,而不是分区器。组合器将聚合以字母“A”开头的单词的本地总和,然后将部分总和(而不是始终为数字1)发送给缩减器。解决方案2:但是,如果您坚持为此使用自定义分区器,您可以简单地在一个单独的reducer中处理以字母“A”开头的单词,而不是所有其他单词,即,专用一个reducer仅适用于以字母“A”开头的单词。解决方案3:此外,如果您不介意“作弊

hadoop - 谁将有机会先执行,Combiner 还是 Partitioner?

阅读以下有关Hadoop权威指南第4版(第204页)的文章后,我感到很困惑在写入磁盘之前,线程首先将数据分成与最终将成为的reducer对应的分区送至。在每个分区中,后台线程执行一个内存中按键排序,如果有组合函数,则运行在排序的输出上。运行组合器函数更紧凑的map输出,因此写入本地磁盘的数据更少并传递给reducer。这是我的疑问:1)谁将首先执行组合器或分区!!2)当自定义组合器和自定义分区出现时,执行步骤层次结构如何以及如何?3)我们能否将压缩数据(avro、序列等)提供给自定义组合器,如果是,那么如何!!寻找一个简短而深入的解释!!提前致谢。 最佳答案

hadoop - 如何在 HDFS hadoop Map-Reduce 中处理增量更新

我在HDF中有结构化的基本文本文件,其中包含这样的数据(在file.txt中):OgId|^|ItemId|^|segmentId|^|Sequence|^|Action|!|4295877341|^|136|^|4|^|1|^|I|!|4295877346|^|136|^|4|^|1|^|I|!|4295877341|^|138|^|2|^|1|^|I|!|4295877341|^|141|^|4|^|1|^|I|!|4295877341|^|143|^|2|^|1|^|I|!|4295877341|^|145|^|14|^|1|^|I|!|123456789|^|145|^|14|

hadoop - Hadoop Map Reduce 链接中的数据共享

是否可以在连续的reducer和mapper之间共享一个值?或者是否可以将第一个reducer的输出存储到内存中,第二个mapper可以从内存中访问它?问题是,我写了一个链式mapreducer,比如Map1->Reducer1-->Map2-->Reducer2。Map1和Map2正在读取相同的输入文件。Reduce1正在导出一个值,假定“X”作为其输出。我需要“X”和Map2的输入文件。我们如何在不读取Reduce1的输出文件的情况下执行此操作?是否可以将“X”存储在内存中以供Mapper2访问? 最佳答案 每个作业都相互独立,

java - 在使用存储在 amazon s3 上的数据运行 Map reduce WordCount 作业时需要帮助

我正在尝试对存储在Amazons3存储桶中的文本文件运行MapreduceWordCount作业。我已经为mapreduce框架设置了与Amazon通信所需的所有必需的身份验证,但我继续运行此错误。知道为什么会这样吗?13/01/2013:22:15ERRORsecurity.UserGroupInformation:PriviledgedActionExceptionas:rootcause:org.apache.hadoop.mapred.InvalidInputException:Inputpathdoesnotexist:s3://name-bucket/test.txtExc

java - Reducer 在 mapper 完成之前启动

我正在运行一个MapReduce程序。但是,即使我只使用mapper或同时使用mapper和reducer运行它,我也会得到类似的输出。此后它永远不会完成。它卡在那里。我不明白为什么reducer在mapper完成100%之前就开始了?可能存在哪些潜在问题?输出:Map10%Reduce0%Map19%Reduce0%Map21%Reduce0%Map39%Reduce0%Map49%Reduce0%Map63%Reduce0%Map67%Reduce0%Map68%Reduce0%Map68%Reduce22%Map69%Reduce22%这是一个映射器代码:publicclassE