求助一个 MapReduce 问题,关于 Mapper 的 Type 不正确问题

2014-11-16 10:40:01 +08:00
 SharkIng
Error: java.io.IOException: Type mismatch in key from map: expected org.apache.hadoop.io.Text, received org.apache.hadoop.io.LongWritable
at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.collect(MapTask.java:1069)
at org.apache.hadoop.mapred.MapTask$NewOutputCollector.write(MapTask.java:703)
at org.apache.hadoop.mapreduce.task.TaskInputOutputContextImpl.write(TaskInputOutputContextImpl.java:89)
at org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.write(WrappedMapper.java:112)
at org.apache.hadoop.mapreduce.Mapper.map(Mapper.java:124)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:775)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:167)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1548)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162)


这里是Error, 因为初学MapReduce所以不很弄的清楚他的Type
2218 次点击
所在节点    问与答
6 条回复
libo26
2014-11-16 12:40:05 +08:00
这不很明显么。。
expected org.apache.hadoop.io.Text, received org.apache.hadoop.io.LongWritable
把你的mapper函数贴出来看看?
SharkIng
2014-11-16 13:38:22 +08:00
SharkIng
2014-11-16 13:38:59 +08:00
@libo26 求教了,非常感谢。
写的头都大了还是不知道问题出在哪里了,初学者多多指教
lcj2class
2014-11-16 14:03:36 +08:00
从map函数的定义<LongWritable, Text, Text, IntWritable>来看是没有错的,
你的main函数里面是怎么设置map的输出类型的呢?
SharkIng
2014-11-17 01:50:07 +08:00
@lcj2class

job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);

// TODO: Need add args for input.
job.setInputFormatClass(TextInputFormat.class);
job.setOutputFormatClass(TextOutputFormat.class);

感觉所有地方都没错所以不知道是怎么会有这么一个Error
lcj2class
2014-11-17 12:51:59 +08:00
@SharkIng
把整个代码都贴出来吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/146868

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX