草庐IT

MAPREDUCE

全部标签

java - Hadoop MapReduce 小文件内存不足

我正在针对Hadoop上大约300万个小文件运行MapReduce作业(我知道,我知道,但我们对此无能为力-这是我们源系统的性质)。我们的代码没有什么特别的-它使用CombineFileInputFormat将一堆这些文件包装在一起,然后解析文件名以将其添加到文件的内容中,并吐出一些结果。简单易行。因此,我们在HDFS中有大约300万个~7kb的文件。如果我们针对这些文件的一小部分(一个文件夹,可能有10,000个文件)运行我们的任务,我们不会遇到任何麻烦。如果我们针对完整的文件列表运行它,则会出现内存不足错误。错误出现在STDOUT上:##java.lang.OutOfMemoryE

hadoop - M/R 作业提交失败,错误为 : Could not find Yarn tags property > (mapreduce. job.tags)

我在运行map/reduce作业时遇到以下异常。我们通过oozie提交map/reduce作业。FailingOozieLauncher,Mainclass[org.apache.oozie.action.hadoop.JavaMain],main()threwexception,CouldnotfindYarntagsproperty(mapreduce.job.tags)java.lang.RuntimeException:CouldnotfindYarntagsproperty(mapreduce.job.tags)atorg.apache.oozie.action.hadoop

java - Reducer 将 Mapper 输出写入输出文件

我正在学习Hadoop并尝试执行我的Mapreduce程序。所有Map任务和Reducer任务均已完成,但Reducer将Mapper输出写入输出文件。这意味着根本没有调用Reduce函数。我的示例输入如下所示1,a1,b1,c2,s2,d预期的输出如下1a,b,c2s,d下面是我的程序。packagepatentcitation;importjava.io.IOException;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.FileSystem;importorg.apache.hadoo

hadoop - 在 Hadoop 2.6.0 中运行自定义 Speculator

我正在编写我的自定义推测器,我查看了文档,默认情况下是“DefaultSpeculator.java”并在类“MRAppMaster.java”(函数createSpeculator())中设置在Hadoop的核心。我想知道您是否可以在执行我的工作时在运行时更新/更改投机者,因为我需要在大约5个投机者之间进行测试。谢谢!!! 最佳答案 可以在集群范围或每个作业的基础上为map任务和reduce任务打开和关闭推测执行。推测器在MRAppMaster(Map-ReduceApplicationMaster)中实例化。正如您在问题中提到的

hadoop - Map Reduce在eclipse中执行

谁能告诉我如何在Eclipse的参数选项卡中设置HDFS文件路径。这样下面的代码就不会给出超出索引的异常。FileInputFormat.addInputPath(job,newPath(otherArgs[0]));FileOutputFormat.setOutputPath(job,newPath(otherArgs[1])); 最佳答案 您需要使用运行配置。右键单击该程序,转到运行配置,使用java应用程序。选择正确的项目和带有main函数的正确程序后,您需要转到VMArguments并传递参数。

hadoop - hive外部表有什么意义?

第1步。我创建了一个配置单元外部表“test”,并给出了一些位置,例如“/user/hive2”。第2步。我在“测试”表中加载一个文件。第3步。我做了一个select*fromtest。我得到了我的记录。第四步,我通过droptabletest来droptable。第5步。我确实从测试中选择*,但未找到表。那么使用externaltable有什么意义呢?如果删除了“测试”表的元数据并且我无法在其上查询任何内容,那么我们为什么要使用外部表? 最佳答案 @Nishant:在本论坛中提出一般性问题之前,您应该做一些功课。无论如何,这里有一

java - Hadoop 独立模式给出连接错误

当我在独立模式下运行以下命令时,*phoenix@phoenix-Aspire-E1-570:/usr/local/hadoop$bin/hadoopjarshare/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.2.jargrepinputoutput'dfs[a-z.]+'*它给我以下错误,15/12/0622:45:45INFOclient.RMProxy:ConnectingtoResourceManageratlocalhost/127.0.0.1:803215/12/0622:45:46INFOipc.Client:Retry

hadoop - MapReduce 现实生活中的用途

我怀疑在哪些情况下,选择MapReduce而不是hive或pig。我知道是什么时候用的我们需要对输入数据进行深度过滤。处理非结构化数据。使用图表。....但是有什么地方我们不能使用hive、pig或者我们可以使用MapReduce更好地工作并且它在实际项目中被广泛使用 最佳答案 Hive和Pig是通用解决方案,它们在处理数据时会产生开销。大多数情况下它可以忽略不计,但在某些情况下它可能相当大。如果需要join的表很多,使用Hive和Pig尽量采用通用的方案,如果在了解数据后使用mapreduce,可以想出更优的方案。然而,mapre

hadoop - Reducer 数量和输出顺序

当我使用函数job.setNumReduceTasks(1);时,我得到按键排序的输出。但是,当我删除此功能时,输出不会按键排序。那么,当我们有多个reducer任务时,我们是否应该期望从reducer获得排序的输出?谢谢。 最佳答案 输出在单个Reducer中按键排序。然而,默认的Partitioner是哈希函数的结果,因此虽然每个文件在使用多个Reducer时都会被排序,但一个文件不会是最后一个文件的排序延续。例如:我们有一个包含三个Reducer的字数统计作业。映射器输出:(A,1)(zebra,1)(bat,1)(zebra

Hadoop MapReduce 获取每个单词的百分比

我正在使用HadoopMapreduce来获取单词和单词计数信息。除了每个单词的计数,我还需要找到每个单词在文档中显示的百分比。输出是这样的。如果文档只包含三个词“hello”、“world”和“kitty”。结果应该是这样的。字数百分比你好400.4世界500.5小猫100.1我可以设置一个TOTAL_KEY来统计所有的单词,问题是每个单词统计返回时,结果会同时返回。将每个单词输出到hdfs时,无法计算当时的百分比。 最佳答案 您可以在Mapper中设置一个计数器。在您从映射器发出单词时增加一个全局计数器以计算单词总数。在你的re