草庐IT

MapReduce2

全部标签

eclipse - 在Mapreduce中做job chaining时,如何解决chainmapper is not applicable for the arguments错误?

我正在使用Hadoop1.2.1,eclipsejuno。我正在尝试在单个Mapreduce作业中链接三个maptask。在Eclipse中编写Mapreduce代码时,出现错误,例如chainmapper不适用于参数,而且我无法设置输入路径。以下是我的mapreduce代码,packageorg.myorg;importjava.io.IOException;importjava.net.URI;importjava.nio.file.FileSystem;importjava.util.StringTokenizer;importjavax.security.auth.login.

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

hadoop - 在 hadoop streaming mapreduce 中使用组合器(使用 mrjob)

当我学习mapreduce时,其中一个关键组件是组合器。它是映射器和缩减器之间的一个步骤,本质上是在映射阶段结束时运行缩减器,以减少映射器输出的数据行数。随着我需要处理的数据量的增加(数TB规模),reduce步骤变得异常缓慢。我和我的一个friend谈过,他说这也是他的经验,他没有使用组合器,而是使用散列函数对其reduce键进行分区,该函数减少了reduce步骤中每个键的值数量.我试过了,它奏效了。有没有其他人有过组合器步骤不能很好地扩展的经验,为什么我找不到这个问题的任何文档以及解决方法?如果有办法使组合器步进缩放,我宁愿不使用解决方法。[编辑]这是我friend建议的解决方法的

java - Hadoop MapReduce 程序在 Eclipse 中运行良好,但在导出到 .jar 文件时运行不佳

在Eclipse中,我从三个目录添加外部库。hadoop中的lib目录,hbase中的lib目录和我的Eclipse项目中的两个本地目录以及其他jar。执行导出的jar文件时,我得到一个与hbase相关的ClassNotFoundException。我确定这是我的外部库的问题。我就这样执行程序:hadoopjar/home/brunneis/Escritorio/mr.jarPrincipal-libjars/bigdata/hbase/lib/*.jar,/home/brunneis/workspace/MapReduce/lib/*.jar,/home/brunneis/works

Hadoop-2.5.1 + Nutch-2.2.1 : Found interface org. apache.hadoop.mapreduce.TaskAttemptContext,但类是预期的

命令:./crawl/urls/mydirXXXXX2在Hadoop-2.5.1和Nutch-2.2.1中运行该命令时,出现如下错误信息。14/10/0719:58:10INFOmapreduce.Job:正在运行的作业:job_1411692996443_001614/10/0719:58:17INFOmapreduce.Job:作业job_1411692996443_0016在super模式下运行:false14/10/0719:58:17INFOmapreduce.Job:map0%reduce0%14/10/0719:58:21INFOmapreduce.Job:任务ID:at

hadoop - 如何制作 Hadoop MapReduce 的 UML 组件图

我必须制作HadoopMapReduce的UML组件图。请就一些可用资源提出建议,或寻求解决方法。我已经检查了apachehadoopwiki等,并有了基本的图片。我需要制作一个详细的组件图,其中包含制作MapReduce所涉及的所有组件。我只关心MapReduce。我试过阅读源代码,但我无法理解从哪里开始。如何通过MapReduce的源码掌握执行的控制流。请帮忙。 最佳答案 有关MapReduce应用程序中涉及的不同组件的良好基础知识可以从officialbigdatauniversitywebsite上提供的类(class)中获

xml - Mapreduce - 处理大型 xml 文件时出现堆内存问题

我在我的MR代码中使用了MahoutXMLINPUTFORMAT,并且成功处理了XML(小尺寸)。现在,当我尝试发送800MB的输入XML文件时出现Java堆内存异常,强文本映射已处理到83%并且作业失败。我尝试了以下配置,尽管在过程中运气不佳。谁能告诉我如何处理大型(巨大)数据xml文件?”conf.set("mapreduce.input.fileinputformat.split.minsize","3073741824")conf.set("mapred.child.java.opts","-Xmx14096m-Xss2048m")conf.set("mapreduce.map

hadoop - 如何在MapReduce 框架中编写JOB1 和JOB2 之间的顺序代码?

我有一个包含2个作业的MapReduce应用程序。我需要在Job1和Job2之间运行一小段代码。换句话说,一个小代码在Job1的最终输出上运行,Job2中的所有映射器都能够使用这个小代码的输出。这段小代码不需要并行运行。它是一个顺序代码,应该在单台机器上运行并在HDFS中写入输出。我想知道如何在我的应用程序代码中编写Job1和Job2之间的顺序代码,它将在一台机器上运行并读取的输出Job1来自HDFS,并将其自己的输出也写入HDFS。 最佳答案 在您的驱动程序(主)类中,在执行Job1之后(通常是JobClient.runJob(c

hadoop - CDH5 中的 Oozie 不获取 mapreduce.job.counters.max

当我运行一个oozie工作流,该工作流运行创建超过120个计数器的mapreduce-action(120是允许的默认最大计数器数)时,我收到一条错误消息,提示“计数器太多”。我已将mapreduce.job.counters.max设置为高于120的数字,但oozie似乎没有接受它。我在CDH5.1上使用hadoop2.3有没有人遇到过这种情况? 最佳答案 解决方案是将以下内容添加到YARNServiceMapReduceAdvancedConfigurationSnippet(SafetyValve):mapreduce.job

hadoop - 如何在 MapReduce 作业中将文件添加到同一目录

我有一个MapReduce作业将每天执行几次的情况。我想做的是将结果存储到相同的输出目录中。我收到这个错误:org.apache.hadoop.mapred.FileAlreadyExistsException:Outputdirectory我不确定如何将增量存储到同一个文件夹中,有没有我可以查看的示例? 最佳答案 当您将文件存储在hdfs中时,它会导致重复,因此您必须添加带有文件名的timesatmp,以便根据时间戳添加填充。添加文件名_$(日期+"%Y-%m-%d-%S")例如,当我们使用命令行在hdfs中添加文件时hadoop