草庐IT

mapreduce_shuffle

全部标签

hadoop - 在 mapreduce 中处理文件的子集

我需要使用mapreduce处理一个巨大的文件,我需要离开让最终用户选择他们想要处理的记录数。问题是没有任何有效的方法可以只处理文件的子集而不“映射”整个文件(25tb文件)有没有办法在特定数量的记录后停止映射并继续减少部分? 最佳答案 这个问题有一个非常简单优雅的解决方案:覆盖org.apache.hadoop.mapreduce.Mapper类的run()并且只执行map()直到你想要或只执行那些您需要/想要的记录。请参阅以下内容:publicstaticclassMapJobextendsMapper{privateTexto

Hadoop MapReduce 应用缓存目录

我在单节点Hadoop集群上运行MapReduce作业,但我的磁盘驱动器已被{HADOOP_TMP_DIR}/nm-local-dir/usercache/hduser/appcache中的attempt_*_spill_*.out文件完全填满目录所以我的问题是:这个文件夹中存储了什么,我可以做些什么来限制它的大小?谢谢! 最佳答案 在mapreduce执行期间,如果内存不适合,中间数据将溢出到磁盘。但是这些中间数据将在mapreduce执行的最后阶段作为清理事件的一部分自动删除。您不能限制大小,而是可以指定更多分区而不是指定一个分

eclipse - mapreduce 代码在 eclipse 上工作但不在集群上工作

我正在编写使用openNLP的代码。我的代码在eclipse上完美运行,但是当我在集群上运行它的jar时,出现以下错误:Exceptioninthread"main"java.lang.NoClassDefFoundError:opennlp/tools/util/ObjectStreamatjava.lang.Class.forName0(NativeMethod)atjava.lang.Class.forName(Class.java:270)atorg.apache.hadoop.util.RunJar.main(RunJar.java:153)Causedby:java.lan

hadoop - Mapreduce 示例中的 TotalOrderPartitioner

我正在尝试运行alexholmes书中提供的示例https://github.com/alexholmes/hadoop-book/blob/master/src/main/java/com/manning/hip/ch4/sort/total/TotalSortMapReduce.java但是,当我在制作成jar后运行相同的程序时,出现异常:Exceptioninthread"main"java.lang.ArrayIndexOutOfBoundsException:1atorg.apache.hadoop.mapred.lib.InputSampler.writePartition

hadoop - 无法在 hadoop mapreduce 中使用 KeyValueTextInputFormat 解析输入

我的输入文件是这样的:Key1:Value1,Value2Ket2:Value3,Value4在映射器中,我想获得一个键,其中“:”是定界符。为此,我的代码是这样的:JobConfconf=newJobConf(newCount.class);conf.set("mapred.input.keyvaluelinerecordreader.key.value.separator",":")conf.setInputFormat(KeyValueTextInputFormat.class);我也试过:conf.set("key.value.separator.in.line.input.l

java - MapReduce 查找词长频率

我是MapReduce的新手,我想问问是否有人可以给我一个使用MapReduce执行字长频率的想法。我已经有了字数统计代码,但我想使用字长,这就是我目前所拥有的。publicclassWordCount{publicstaticclassMapextendsMapper{privatefinalstaticIntWritableone=newIntWritable(1);privateTextword=newText();publicvoidmap(LongWritablekey,Textvalue,Contextcontext)throwsIOException,Interrupte

java - 在缓存中添加文件时出现 FileNotFoundException - Hadoop - Mapreduce

注意:我已经浏览过这里有类似问题的帖子,并尝试了那里建议的不同方法,但仍然无法解决问题。我想将HDFS中的文件添加到映射器的缓存内存中,因此我将其添加到驱动程序中,如下所示://Driverprogrampublicstaticvoidmain(String[]args)throwsException{Jobjob=Job.getInstance(newConfiguration(),"QuestionOne");Configurationconf=job.getConfiguration();//Iampassingmyfilepath(whichisinHDFS)asanargum

java - 如何增加 hadoop 中 map 任务的数量以及如何获取 hadoop mapreduce 作业所花费的总时间

我有一个数据集,我正在尝试在hadoop中进行分析。据我所知,它在少量数据中运行平稳。第一个查询:我想在大数据上对此进行测试,并找出当文件大小增加时完成任务需要多少时间。如何获得完成任务需要多少秒?是否有任何cmd行语法或类似的语法?第二个查询:dfs.replication设置为1inhdfs-core.xml文件。它只是复制输入数据,还是对mapreduce作业有一些影响?第三个查询:现在,我有一个单节点hadoop集群。如何知道它为给定输入文件生成的映射器的确切数量以及如何更改编号。映射器?实际上,我想获得完成不同编号下的任务所需的时间。的映射器。例如:首先我想用10个mappe

hadoop - MapReduce WordCount 示例提供了两个映射器 v2.5.1

当我完成HadoopMapReduce教程时,atonepoint它提到了以下内容,Forthegivensampleinputthefirstmapemits:Thesecondmapemits:我们如何确定第一个输入文件将由一个映射器处理而第二个输入文件将由另一个映射器处理?或者这只是一个假设? 最佳答案 简答:一个映射器不能处理多个文件。因此,对于两个文件,我们至少需要两个映射器。更长(但仍然简化)的答案:一个映射器只处理一个输入拆分。一个文件至少创建一个输入拆分。因此,两个文件至少创建两个输入拆分,因此由两个映射器处理。一个

java - MapReduce:如果值不高于阈值,则过滤掉键值对

使用MapReduce,如何修改以下字数统计代码,使其只输出超过特定计数阈值的字数?(例如,我想添加某种键值对过滤。)输入:antbeecatbeecatdogcatdog输出:假设计数阈值为2或更多cat3dog2以下代码来自:http://hadoop.apache.org/docs/r1.2.1/mapred_tutorial.html#Source+CodepublicstaticclassMap1extendsMapReduceBaseimplementsMapper{privatefinalstaticIntWritableone=newIntWritable(1);pri