草庐IT

mapreduce_shuffle

全部标签

hadoop - MapReduce 中的数据如何分布在数据节点之间?

我是MapReduce的新手,我的任务是处理大数据(记录行)。我应该使用的一件事是我的映射器中特定记录的行号,然后reducer根据映射器处理行号信息。例如,假设现在我有一个非常大的input.txt,每一行看起来是这样的:1.Melo,apple,orange2.orange,perl3.apple,banana,car...10000.Apple...如果我想根据苹果的出现行数来计算苹果的出现,然后计算这些不同水果之间的关系,比如:Apple=>orange我可以将键/值对中的值设为行号列表吗?但是由于我不知道如何为不同的数据节点分区数据,因此原始输入文件的行号信息将会丢失。我不知

hadoop 应用程序失败 mapreduce 成功

我是hadoop2(hadoop2.2.0)的新手,我不明白为什么资源管理器上的M/R作业~应用程序被标记为失败:application_1399458460502_0015pigMaxtemperatureMAPREDUCEdefaultWed,04Jun201417:16:52GMTWed,04Jun201417:17:30GMTFAILEDFAILEDHistory当我知道M/R作业已成功完成,甚至作业历史服务器也声称它已成功时:2014.06.0413:16:52EDT2014.06.0413:17:19EDTjob_1399458460502_0015Maxtemperatu

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