草庐IT

reducing

全部标签

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=

Hadoop - Reducers 花费大量时间写入数据(多个输出)

所以我正在使用org.apache.hadoop.mapreduce.lib.output包中的MultipleOutputs。我有一个reducer,它正在连接2个数据源并发出3个不同的输出。调用了55个reduce任务,平均每个任务需要大约6分钟来发出数据。有大约11分钟的异常值。所以我观察到,如果我评论实际输出发生的部分,即调用mos.write()(多输出),那么平均时间减少到几秒,整个工作完成大约2分钟。我确实有很多数据要发送(大约40-50GB)。在考虑和不考虑压缩的情况下,我可以做些什么来加快速度。详细信息:我正在使用TextOutputFormat并提供一个hdfs路径

java - 是否可以使用 hadoop 2.5.2 在 oozie 4.1.0 中运行 map reduce 作业

我是oozie的新手,可以在oozie4.1.0和hadoop2.5.2中运行mapreduce作业吗???请多指教! 最佳答案 应该是内存问题吧。在yarn-site.xml中设置以下属性并尝试运行作业,yarn.nodemanager.resource.memory-mb20960 yarn.scheduler.minimum-allocation-mb512yarn.scheduler.maximum-allocation-mb2048 关于java-是否可以使用hadoop2.5