Tag: mapreduce

使用MultithreadMapper替换Mapper时,键入地图中的键不匹配

我想为MapReduce作业实现一个MultithreadMapper。 为此,我在一个工作代码中用MultithreadMapper替换了Mapper。 这是我得到的例外: java.io.IOException: Type mismatch in key from map: expected org.apache.hadoop.io.IntWritable, recieved org.apache.hadoop.io.LongWritable at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.collect(MapTask.java:862) at org.apache.hadoop.mapred.MapTask$NewOutputCollector.write(MapTask.java:549) at org.apache.hadoop.mapreduce.TaskInputOutputContext.write(TaskInputOutputContext.java:80) at org.apache.hadoop.mapreduce.lib.map.MultithreadedMapper$SubMapRecordWriter.write(MultithreadedMapper.java:211) at org.apache.hadoop.mapreduce.TaskInputOutputContext.write(TaskInputOutputContext.java:80) at org.apache.hadoop.mapreduce.Mapper.map(Mapper.java:124) at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144) at org.apache.hadoop.mapreduce.lib.map.MultithreadedMapper$MapRunner.run(MultithreadedMapper.java:264) 这是代码设置: public static void main(String[] args) { try { if (args.length != 2) { System.err.println(“Usage: MapReduceMain “); System.exit(123); } Job job = new Job(); job.setJarByClass(MapReduceMain.class); […]

map中的mapreduce – gzip输入文件

我正在使用java ,我正在尝试编写一个mapreduce ,它将接收一个包含多个gz文件的文件夹。 我一直在寻找,但我发现的所有教程都是如何处理一个简单的文本文件,但没有找到解决我问题的任何东西。 我在我的工作场所问过,但只提到scala,我并不熟悉。 任何帮助,将不胜感激。

从Eclipse在AWS-EMR上运行MapReduce作业

我在Eclipse中有WordCount MapReduce示例。 我将它导出到Jar,并将其复制到S3。 然后我在AWS-EMR上运行它。 成功。 然后,我阅读了这篇文章 – http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-common-programming-sample.html它展示了如何使用AWS-EMR Api来运行MapReduce作业。 它仍假设您的MapReduce代码打包在Jar中。 我想知道是否有一种方法可以直接在AWS-EMR上从Eclipse运行MapReduce代码,而无需将其导出到Jar。

java.lang.IllegalArgumentException:错误的FS:,期望:hdfs:// localhost:9000

我正在尝试实现reduce side join,并使用mapfile reader查找分布式缓存但是在stderr中检查时它没有查找值,它显示以下错误,lookupfile文件已经存在于hdfs中,并且似乎正确加载进入缓存,如stdout中所示。 java.lang.IllegalArgumentException:Wrong FS:file:/ app / hadoop / tmp / mapred / local / taskTracker / distcache / -8118663285704962921_-1196516983_170706299 / localhost / input / delivery_status / DeliveryStatusCodes / data,expected:hdfs:// localhost:9000 org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:390)org.apache.hadoop.hdfs.DistributedFileSystem.getPathName(DistributedFileSystem.java:140)org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus (DistributedFileSystem.java:554)org.apache.hadoop.fs.FileSystem.getLength(FileSystem.java:816)org.apache.hadoop.io.SequenceFile $ Reader。(SequenceFile.java:1479)org.apache .hadoop.io.SequenceFile $ Reader。(SequenceFile.java:1474)org.apache.hadoop.io.MapFile $ Reader.createDataFileReader(MapFile.java:302)at org.apache.hadoop.io.MapFile $ Reader。打开(MapFile.java:284)org.apache.hadoop.io.MapFile $ Reader。(MapFile.java:273)org.apache.hadoop.io.MapFile $ Reader。(MapFile.java:260)at org .apache.hadoop.io.MapFile $读卡器(MapFile.java: 253)在mr_poc.reducerrsj.initializeDepartmentsMap(reducerrsj.java:59)mr_poc.reducerrsj.setup(reducerrsj.java:42)atg.apache.hadoop.mapreduce.Reducer.run(Reducer.java:174)at org。位于org.apache.hadoop.mapred.Child $ 4.run的org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:418)中的apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:649) […]

hadoop中的mapreduce距离计算

是否有使用hadoop map / reduce的距离计算实现。 我想计算一组给定点之间的距离。 寻找任何资源。 编辑 这是一个非常智能的解决方案。 我尝试了一些与第一种算法相似的方法,而且我几乎得到了我想要的东西。 我现在并不关心优化程序,但我的问题是dist(X,Y)函数无效。 当我得到减速器上的所有点时,我无法通过迭代器上的所有点并计算距离。 stackoverflow.com上的某个人告诉我,hadoop上的Iterator与普通的JAVA Iterator不同,我不确定。 但是,如果我能找到一种简单的方法来通过我的dist()函数上的迭代器,我可以使用你的第二个算法进行优化。 //This is your code and I am refering to that code too, just to make my point clear. map(x,y) { for i in 1:N #number of points emit(i, (x,y)) //i did exactly like this reduce (i, X) p1 = X[i] for […]

Apache Spark mapPartitionsWithIndex

有人能举例说明在Java中正确使用mapPartitionsWithIndex吗? 我发现了许多Scala示例,但缺少Java。 我的理解是正确的,使用此函数时,单独的节点将处理单独的分区。 我收到以下错误 method mapPartitionsWithIndex in class JavaRDD cannot be applied to given types; JavaRDD rdd = sc.textFile(filename).mapPartitionsWithIndex required: Function2<Integer,Iterator,Iterator>,boolean found: <anonymous Function2<Integer,Iterator,Iterator<JavaRDD>>> 做的时候 JavaRDD rdd = sc.textFile(filename).mapPartitionsWithIndex( new Function2<Integer, Iterator, Iterator<JavaRDD> >() { @Override public Iterator<JavaRDD> call(Integer ind, String s) {

在哪里可以看到从hadoop pig语句生成的mapreduce代码

我们都知道hadoop pig语句被转换成java mapreduce代码。 我想知道有什么办法可以看到pig语句生成的mapreduce代码吗?

将1GB数据加载到hbase中需要1小时

我想将1GB(1000万条记录)CSV文件加载到Hbase中。 我为它写了Map-Reduce程序。 我的代码工作正常但需要1小时才能完成。 最后减速机耗时超过半小时。 有人可以帮帮我吗? 我的守则如下: Driver.Java 包com.cloudera.examples.hbase.bulkimport; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.KeyValue; import org.apache.hadoop.hbase.client.HTable; import org.apache.hadoop.hbase.io.ImmutableBytesWritable; import org.apache.hadoop.hbase.mapreduce.HFileOutputFormat; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.input.TextInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; / ** * HBase批量导入示例 *数据准备MapReduce作业驱动* * args [0]:HDFS输入路径* args [1]:HDFS输出路径* args [2]:HBase表名* * / public class Driver {public static void main(String [] args)throws Exception {Configuration […]

Hadoop多个输入

我正在使用hadoop map reduce,我想计算两个文件。 我的第一个Map / Reduce迭代给了我一个带有ID号码的文件,如下所示: A 30 D 20 我的目标是使用文件中的ID与另一个文件关联,并使用另一个三重奏输出:ID,Number,Name,如下所示: A ABC 30 D EFGH 20 但我不确定使用Map Reduce是否是最好的方法。 例如,使用文件读取器读取第二个输入文件并通过ID获取名称会更好吗? 或者我可以使用Map Reduce吗? 如果是这样,我正试图找出方法。 我尝试了一个MultipleInput解决方案: MultipleInputs.addInputPath(job2, new Path(args[1]+”-tmp”), TextInputFormat.class, FlightsByCarrierMapper2.class); MultipleInputs.addInputPath(job2, new Path(“inputplanes”), TextInputFormat.class, FlightsModeMapper.class); 但我想不出任何解决方案来结合两个并得到我想要的输出。 我现在的方式就是给我这样的列表: A ABC A 30 B ABCD C ABCDEF D EFGH D 20 在我最后减少之后我得到了这个: N125DL 767-332 N125DL 7 , N126AT […]

在Map中跳过.csv的第一行会减少java

由于映射器函数针对每一行运行,我是否可以知道如何跳过第一行。 对于某些文件,它包含我想忽略的列标题