草庐IT

elastic-mapreduce-cli

全部标签

java - Mapreduce 程序的输入数据

我想写一个MapReduce代码。我的代码分为三个部分:数据准备、MapReduce和数据后处理。数据准备阶段的输出可以是二维数组或列表。我的问题是,我应该如何为映射器提供第一阶段的输出?我应该把它导出到txt文件然后再导入吗?如果是这样,我应该如何提供文件位置?使用网址?如果没有,我可以直接为映射器提供列表或数组吗?我试图在网上找到类似的案例,但我找不到任何东西。 最佳答案 您的第一份工作生成一个文件。作业脚本应使用将文件复制到HDFShadoopfs-copyFromLocal/your/local/folder/your/fo

java - 通过 java Processbuilder 提交 mapreduce 作业不会结束

我有一个jar文件形式的mareduce作业,比如“mapred.jar”。实际上,Jobtracker正在远程linux机器上运行。我从本地机器运行jar文件,jar文件中的作业被提交到远程jobtracker,它工作正常,如下所示:java-jarF:/hadoop/mapred.jar13/12/1912:40:27WARNmapred.JobClient:UseGenericOptionsParserforparsingthearguments.ApplicationsshouldimplementToolforthesame.13/12/1912:40:27INFOinput

java - 将 MapReduce 输出拆分为多个输出文件

是否可以将mapreduce作业的输出拆分为多个文件而不是单个“part-r-00000”文件?我遇到过MultipleOutputFormat类,但从我读到的内容来看,它似乎只根据键将输出分解为文件。MultipleOutputFormat我正在寻找的是,以WordCount作业为例,将输出分成多个文件。 最佳答案 关于Wordcount,我也有类似的问题。在我的例子中,我需要将以每个字母开头的单词写到单独的文件中。这里我使用了MultipleOutputs。publicclassNameCountReducerextendsRe

hadoop - 来自两个 HBase 表的 MapReduce

我对Hadoop和HBase概念还很陌生。如果我的问题的答案过于明显,请原谅我。我需要从两个HBase表中获取销售报告。我试图在这里展示我正在处理的问题的最简化形式。有两个表,Products和Sales。产品表ProductCodeProductName----------------------APLAppleBANBananaMNGMangoORGOrange销售表ProductCodeQuantity-------------------MNG100BAN8MNG3APL24APL57BAN33ORG40ORG15我需要的那种减少输出:报告ProductNameTotalSal

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