草庐IT

reducer-combiner

全部标签

hadoop - 哪个决定了 hive 中 map 任务和 reduce 任务的数量?

我使用配置单元运行查询“select*fromT1,T2whereT1.a=T2.b”,架构为T1(aint,bint),T2(aint,bint),当它运行时,生成了6个map任务和1个reduce任务,我想问一下,哪个决定了map任务和reduce任务的数量?数据量是多少? 最佳答案 map任务的数量取决于数据量、block大小和分割大小。例如:如果您的block大小为128MB,文件大小为1GB,那么将有8个映射任务。您可以使用拆分大小来控制它。Hive作业中的reducer数量默认为1。你必须通过配置更新它mapred.re

java - 在 Hadoop 中链接一个 Reduce-only 作业

我正在使用ControlledJobs在Hadoop2.2.0中实现一个MR作业链。基本架构是这样的:mapper1->reducer1->mapper2->reducer2但是,mapper2是标识。有没有办法可以轻松让reducer1生成key-value-pairs传给reducer2?现在,两轮的作业输出配置如下://setintermediate/mapperoutputjob.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(Text.class);//setreduceroutputjob.setOut

java - 如何使用具有多对多关系的两个表在 Java Mapreduce 上执行 reduce side join?

首先,我不确定这是否可能。如果可能的话,我仍然不确定这是否是正确的做法。我拥有的是:HDFS上的两个名为A和B的大型csv文件A有以下列:a1、a2、a3、a4B有以下列:b1、b2、b3、b4、b5我想要的是:加入两个文件,假设a1=b1我遇到的问题是:如果连接键上的两个文件之间存在多对多关系,我如何使用Java上的HadoopMapreduce执行此操作?从下图中可以看出,A有4行匹配a1=x,B有2行匹配b1=x。因此,在a1=b1=x上连接两个表会产生4*2=8行(组合),如最后一个表所示。使用reduce侧连接,我无法做到这一点,因为这意味着增加键值对,这违背了MapRedu

java - Hadoop : Reducer class not called even with Overrides

我在hadoop中尝试了mapreducewordcount代码,但是reducer类从未被调用,程序在运行mapper类后终止。importjava.io.IOException;importjava.util.*;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.conf.*;importorg.apache.hadoop.io.*;importorg.apache.hadoop.mapreduce.*;importorg.apache.hadoop.mapreduce.lib.input.FileInputFormat

hadoop - 是否可以在特定的从节点上安排 Map Reduce 作业?

是否可以在Hadoop集群中的某些特定节点而不是所有节点上安排任何mapreduce作业?例如,在10个可用节点中的4个从属节点上。我尝试在Google上搜索但没有找到任何相关结果。Thispage表示默认情况下所有作业都安排在整个集群上。我的需求原因:作为研究生水平的作业,我必须实现一个分布式关系数据库。我正在使用Hadoop,根据分配要求,我们必须将数据复制到集群的连接机器。现在我们的一个复制模型要求在可用机器的子集上运行查询。 最佳答案 假设在hadoop集群上处理一些数据,你已经提交了一个mapreduce作业,现在它所做的

java - map reduce 程序在线程 "main"java.io.IOException : Job failed 中显示错误异常

我正在尝试运行我的mapreduce程序。在我尝试运行它之后,输出如下。(我只显示输出的最后一部分)FileSystemCountersFILE:Numberofbytesread=3052FILE:Numberofbyteswritten=224295FILE:Numberofreadoperations=0FILE:Numberoflargereadoperations=0FILE:Numberofwriteoperations=0HDFS:Numberofbytesread=0HDFS:Numberofbyteswritten=0HDFS:Numberofreadoperatio

hadoop cp vs streaming with/bin/cat 作为 mapper 和 reducer

我是Hadoop的新手,如果/bin/cat用于mapper和reducer,我有一个关于hadoop复制(cp)与hadoop流的非常基本的问题。hadoop-输入-输出-mapper/bin/cat-reducer/bin/cat我相信上面的命令会复制文件(它与hadoopcp有什么不同?)或者如果我的理解有误请纠正我。 最佳答案 他们做同样的事情,但方式不同:hadoopcp将只调用JAVAHDFSAPI并将副本执行到另一个指定位置,这比流解决方案快得多。另一方面,hadoopstreaming(请参阅下面的示例命令)将启动m

hadoop - 使用命令行设置 Reduce 任务数

我是Hadoop的初学者。当尝试使用GenericOptionsParser使用命令行设置reducer的数量时,reducer的数量没有改变。配置文件“mapred-site.xml”中没有为reducer的数量设置属性,我认为这将使reducer的数量默认为1。我正在使用clouderaQuickVM和hadoop版本:“Hadoop2.5.0-cdh5.2.0”。指针表示赞赏。另外我的问题是我想知道设置reducer数量的方式的优先顺序。使用配置文件“mapred-site.xml”mapred.reduce.tasks在驱动类中指定job.setNumReduceTasks(4

hadoop - 如果第一次尝试 reduce 失败(网络连接问题),后续的 reduce 尝试(重试)将失败,因为输出文件已经存在

我的mapreduce作业在AmazonEMR上失败很大,因为如果第一次尝试将结果复制到S3失败,将创建文件(可能是部分文件),随后的reduce尝试将拒绝写入已存在的文件。第一次尝试日志:014-11-3006:56:19,774INFO[main]com.amazonaws.latency:StatusCode=[404],Exception=[com.amazonaws.services.s3.model.AmazonS3Exception:NotFound(Service:AmazonS3;StatusCode:404;ErrorCode:null;RequestID:remo

java - 清理未在 reducer 中运行

我一直在ClouderaVM4.7中使用Hadoop2.0。我正在尝试打印cleanup方法中出现次数最多的5个单词,其中documentation描述了如何使用。但它根本不会被调用。publicstaticclassReduceextendsMapReduceBaseimplementsReducer{privatejava.util.Maptop5=newHashMap(5);publicvoidreduce(Textkey,Iteratorvalues,OutputCollectoroutput,Reporterreporter)throwsIOException{intsum=