草庐IT

MapReduce2

全部标签

hadoop - 如何在没有键值对的情况下保存 Mapreduce 的 Reducer 输出?

我正在编写一个Mapreduce程序来处理Dicom图像。这个Mapreduce程序的目的是处理dicom图像,从中提取元数据,索引到solr,最后在Reducer阶段它应该将原始图像保存在hdfs中。我想在HDFS中保存相同的文件作为reducer输出所以我已经实现了大部分功能,但是在reducer阶段,当在hdfs中存储相同的文件时,它不起作用。我用dicom图像查看器测试了处理过的Dicom文件,它说文件被篡改了,而且处理过的dicom文件的大小也略有增加。Ex.原始Dicom大小为628Kb,当reducer将此文件保存在hdfs中时,它的大小变为630Kb。我尝试了这些链接的

MapReduce 中的 java.io.IOException

我想使用MapReduce获取txt文件中每年的最大值和最小值。文件中的内容如下所示:1979232324324252626262625261980262728282830313131303030198131323232333435363634343419843938393939414243403938381985383939393941414100403939第一列代表年份。我希望MapReduce给我这样的最终输出:19792,26198026,31...所以我用Java写代码是这样的:publicclassMaxValue_MinValue{publicstaticclassE_

hadoop - MapReduce,FileNotFoundException

Hadoop2.9.1,独立安装。hdfs目录按时间(yyyyMMdd/HH/mm)组织,例如,hdfs://server1:9000/foo/20190410/10/00。并且每分钟有几个文件。我需要做的是,每小时处理一次数据,比如处理hdfs://server1:9000/foo/20190410/10下的所有数据。所以mapreduce输入设置是这样的,job.setInputFormatClass(org.apache.hadoop.mapreduce.lib.input.SequenceFileAsBinaryInputFormat.class);PathinputPath=

java - hadoop mapreduce 和 s3 的多个输入文件夹

我目前在AWSS3上有一个存储桶,为简单起见,我们将其称为“bucketX”。在BucketX中,有4个文件夹:数据、docs1、docs2、docs3。我想在除“data”之外的所有目录上运行HDFSmapreduce作业,使用docs1、docs2和docs3作为输入目录,以及其他一些输出目录。我对如何在驱动程序中配置它感到有点困惑。我知道FileInputFormat.addInputPath(job,newPath(args[0]));存在,但我如何具体手动配置要使用的3个输入路径?任何帮助将不胜感激。 最佳答案 可以使用通

java - 如何单独测试作为 oozie 工作流一部分的 hadoop MapReduce java 操作(带有文件标签)?

我正在尝试在java中单独测试MapReduce作业,这是oozie工作流的一部分。我能够通过使用以下命令在Java中成功测试MapReduce作业。hadoopjar/tmp/lib/Example.jarcom.example.MRDrivermapper=com.example.DataTransformMapper挑战是当标记作为ooziejava操作的一部分时。请告知如何使用file标签模拟或测试此MapReduce作业。${hbase_site_xml}com.example.MRDriver-Dsun.security.krb5.debug=truemapper=com.

java - 具有 2 个值的 MapReduce

在MapReduce中是否可以有两个值?我的csv看起来像这样:month,date,deviceCategory,totalTransactionRevenue20160820160801Desktop100020160820160801Mobile700我想使用MapReduce来计算每种设备的平均每月收入。我希望输出看起来像这样:(month,deskRev,mobileRev)但是当我在Mapper中编写context.write(month,DesktopoutPut,MobileoutPut);时,它说不能应用于给定类型。是因为MapReduce必须在键值对中吗?谢谢!!

java - Hadoop:从 o.a.h.mapred 实现接口(interface),还是从 o.a.h.mapreduce 扩展类?

我正在学习Hadoop(0.20.205),我有点困惑。推荐哪种方式:A)从org.apache.hadoop.mapred实现Mapper和Reducer接口(interface),并使用JobConf,如PiEstimator示例中所示。B)从org.apache.hadoop.mapreduce扩展Mapper和Reducer类,并使用Job,如WordCount示例中所示。哪一个更有可能在未来被淘汰?Hbase(0.90.4)似乎更喜欢第二种方式,因为o.a.h.h.mapred中的TableOutputFormat已被弃用,而中的TableOutFormat>o.a.h.h.

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