草庐IT

reducer-combiner

全部标签

file - 多个小文件作为 map reduce 的输入

我有很多小文件,比如说20000多个。我想节省花在映射器初始化上的时间,那么是否可以只使用500个映射器,每个处理40个小文件作为其输入?如果可能的话,我需要有关如何实现这种输入格式的指导,谢谢!顺便说一句,我知道我应该合并这些小文件,这一步也是需要的。 最佳答案 可以使用CombineFileInputFormat。它在old中和new先生API。这是一个不错的blogentry关于如何使用它。 关于file-多个小文件作为mapreduce的输入,我们在StackOverflow上找

hadoop - Map 和 Reduce 是否在单独的 JVM 中运行?

您好,我有一个MapReduce任务,例如AverageScoreCalculator,它具有映射器和缩减器。问题是我静态初始化AverageScoreCalculator中的几个字段是否对映射器和缩减器都可用? 最佳答案 默认情况下,每个map和reduce任务都在不同的JVM中运行,并且可以有多个JVM在节点上的任何特定实例上运行。设置以下属性mapred.job.reuse.jvm.num.tasks=-1mapreduce.tasktracker.map.tasks.maximum=1mapreduce.tasktracke

java - MapReduce 作业的 Reducer 中的奇怪行为

以下是我在MapReduce作业中使用的Reducer函数的代码。它应该返回附加到每个值的迭代器+自定义字符串("*---")的值。但它会两次附加自定义字符串。例如如果值为abc那么而不是打印abc***---正在打印abc***---***---为什么会这样?代码:publicstaticclassReduceextendsMapReduceBaseimplementsReducer{publicvoidreduce(Textkey,Iteratorvalues,OutputCollectoroutput,Reporterreporter)throwsIOException{whil

hadoop - Mapreduce 作业 : combiner without reducer

我注意到如果我将reducer的数量设置为0,组合器将无法工作。是否可以在没有reducer的情况下使用组合器?谢谢。 最佳答案 不,不是。即使使用指定的Reducer,也不能保证使用组合器。因此组合器是严格的优化,可以但不一定在Reducers之前调用。如果没有reducer,这些将永远不会被调用。 关于hadoop-Mapreduce作业:combinerwithoutreducer,我们在StackOverflow上找到一个类似的问题: https://

hadoop - 在同一台机器上的多个内核上运行 Map-Reduce 应用程序

我想在一台机器上运行mapreduce任务,我想使用我机器的所有核心。哪种方法最好?如果我以伪分布式模式安装hadoop,是否可以使用所有内核? 最佳答案 您可以使用属性ma​​pred.tasktracker.map.tasks.maximum和ma​​pred.tasktracker.reduce.tasks.maximum来增加映射器的数量/根据您的硬件规范,Reducers在TaskTracker上同时生成。默认情况下,它设置为2,因此最多2个map和2个reduce将在给定实例上运行。但是,要记住的一件事是,如果您的输入非

java - Hadoop 正在完全跳过 reduce 阶段

我已经像这样设置了一个Hadoop作业:publicstaticvoidmain(String[]args)throwsException{Configurationconf=newConfiguration();Jobjob=Job.getInstance(conf,"Legion");job.setJarByClass(Legion.class);job.setMapperClass(CallQualityMap.class);job.setReducerClass(CallQualityReduce.class);//Explicitlyconfiguremapandreduce

hadoop - 在没有 reducer 的情况下映射任务结果

当mapreduce作业运行时,map任务结果存储在本地文件系统中,然后reducer的最终结果存储在hdfs中。问题是map任务结果存储在本地文件系统中的原因是什么?在没有reduce阶段(只有map阶段存在)的mapreduce作业的情况下,最终结果存储在哪里? 最佳答案 1)Mapper输出存储在本地fs中,因为在大多数情况下,我们对Reducer阶段给出的输出(也称为最终输出)感兴趣。Mapperpairisintermediateoutput一旦传递给Reducer,这是最不重要的。如果我们将Mapper输出存储在hdfs

hadoop - 我可以在不设置 mapred.reduce.tasks=1 的情况下在 map reduce 程序中找到最小值、最大值或平均值吗

我试图了解如何使用mapreduce找到一个非常大的文件的最小值、最大值和平均值。将reduce任务数设置为1是一个显而易见的解决方案,但对于非常大的文件来说并不是最佳选择。我也在考虑编写一个链式MR作业,但最终,你最终在最终作业中使用了一个reducer。有人可以阐明一些其他方法吗?谢谢 最佳答案 无论您的输入数据集有多大,我在这里使用1个reducer都没有发现任何问题。为此,您应该使用组合器功能,该功能应返回其本地Max、本地Min、本地TotalSum和Count并传递给单个reducer。这样,到达reducer的数据量非

hadoop - Mapreduce - 当 reducer 达到 67% 时超时

当reducer达到67%时,我们会收到超时异常,我认为这是在排序阶段之后和reduce阶段之前。请告知我们应该寻找哪些参数来解决问题。16/06/1516:58:13INFOmapreduce.Job:map100%reduce0%16/06/1516:58:23INFOmapreduce.Job:map100%reduce24%16/06/1516:59:05INFOmapreduce.Job:map100%reduce28%16/06/1516:59:08INFOmapreduce.Job:map100%reduce30%16/06/1516:59:39INFOmapreduce

hadoop - 如何在 map/reduce 中执行 ETL

如果我必须将一个文本文件逐行转换为另一个文本文件,我们该如何设计mapper/reducer。我写了一个简单的map/reduce程序,它做了一个小的转换,但要求更详细一些,下面是详细信息:文件的结构通常如下-第一行包含以逗号分隔的列名列表。第二行和其余行针对列指定值在某些行中,尾随列的值可能会丢失,例如:如果有15列,则可能只为前10列指定值。我有大约5个输入文件,我需要将它们转换并聚合到一个文件中。转换特定于5个输入文件中的每一个。如何将文件名等上下文信息传递给映射器/缩减器程序?转换特定于列,那么我如何记住第一行中提到的列,然后关联和转换行中的值? 最