V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
SharkIng
V2EX  ›  问与答

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

  •  
  •   SharkIng · 2014-11-16 10:40:01 +08:00 · 2201 次点击
    这是一个创建于 3472 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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
    6 条回复    2014-11-17 12:51:59 +08:00
    libo26
        1
    libo26  
       2014-11-16 12:40:05 +08:00   ❤️ 1
    这不很明显么。。
    expected org.apache.hadoop.io.Text, received org.apache.hadoop.io.LongWritable
    把你的mapper函数贴出来看看?
    SharkIng
        2
    SharkIng  
    OP
       2014-11-16 13:38:22 +08:00
    SharkIng
        3
    SharkIng  
    OP
       2014-11-16 13:38:59 +08:00
    @libo26 求教了,非常感谢。
    写的头都大了还是不知道问题出在哪里了,初学者多多指教
    lcj2class
        4
    lcj2class  
       2014-11-16 14:03:36 +08:00   ❤️ 1
    从map函数的定义<LongWritable, Text, Text, IntWritable>来看是没有错的,
    你的main函数里面是怎么设置map的输出类型的呢?
    SharkIng
        5
    SharkIng  
    OP
       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
        6
    lcj2class  
       2014-11-17 12:51:59 +08:00
    @SharkIng
    把整个代码都贴出来吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5639 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 02:07 · PVG 10:07 · LAX 19:07 · JFK 22:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.