小编ton*_*rbo的帖子

hadoop MultipleInputs因ClassCastException而失败

我的hadoop版本是1.0.3,当我使用multipleinputs时,我收到了这个错误.

java.lang.ClassCastException: org.apache.hadoop.mapreduce.lib.input.TaggedInputSplit cannot be cast to org.apache.hadoop.mapreduce.lib.input.FileSplit
at org.myorg.textimage$ImageMapper.setup(textimage.java:80)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:142)
at org.apache.hadoop.mapreduce.lib.input.DelegatingMapper.run(DelegatingMapper.java:55)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:416)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121)
at org.apache.hadoop.mapred.Child.main(Child.java:249)
Run Code Online (Sandbox Code Playgroud)

我测试了单输入路径,没问题.只有我用的时候

MultipleInputs.addInputPath(job, TextInputpath, TextInputFormat.class,
            TextMapper.class);
    MultipleInputs.addInputPath(job, ImageInputpath,
            WholeFileInputFormat.class, ImageMapper.class); 
Run Code Online (Sandbox Code Playgroud)

我用Google搜索并发现此链接https://issues.apache.org/jira/browse/MAPREDUCE-1178,其中说0.21有此错误.但是我使用1.0.3,这个bug又回来了.任何人都有同样的问题或任何人都可以告诉我如何解决它?谢谢

这是图像映射器的设置代码,第4行是发生错误的地方:

protected void setup(Context context) throws IOException,
            InterruptedException {
        InputSplit split = context.getInputSplit();
        Path path = ((FileSplit) split).getPath();
        try {
            pa = new Text(path.toString());
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
Run Code Online (Sandbox Code Playgroud)

hadoop classcastexception

17
推荐指数
1
解决办法
6204
查看次数

标签 统计

classcastexception ×1

hadoop ×1