[ 
https://issues.apache.org/jira/browse/MAHOUT-751?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13059022#comment-13059022
 ] 

patrick.J commented on MAHOUT-751:
----------------------------------

You Remind me the key point...Much appreciate(and sorry for place it here,I'll 
remember appropriate place next time)

> (Mapreduce)ClassCastException: org.apache.hadoop.io.LongWritable cannot be 
> cast to ....io.Text
> ----------------------------------------------------------------------------------------------
>
>                 Key: MAHOUT-751
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-751
>             Project: Mahout
>          Issue Type: Bug
>          Components: build
>         Environment: ubuntu 10.04/hadoop 0.21.0
>            Reporter: patrick.J
>              Labels: hadoop
>
> Could somebody help me ?
> My mapreduce program cast a Exception like:
> 11/07/01 20:18:06 INFO mapreduce.Job: Task Id : 
> attempt_201107011635_0005_m_000000_0, Status : FAILED
> java.lang.ClassCastException: org.apache.hadoop.io.LongWritable cannot be 
> cast to org.apache.hadoop.io.Text
>         at Sum$MapClass.map(Sum.java:15)
>         at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
>         at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:652)
>         at org.apache.hadoop.mapred.MapTask.run(MapTask.java:328)
>         at org.apache.hadoop.mapred.Child$4.run(Child.java:217)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at javax.security.auth.Subject.doAs(Subject.java:396)
>         at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:742)
>         at org.apache.hadoop.mapred.Child.main(Child.java:211)
> There's the code:
> import java.io.*;
> import java.util.*;
> import org.apache.hadoop.fs.Path;
> import org.apache.hadoop.conf.*;
> import org.apache.hadoop.io.*;
> import org.apache.hadoop.mapreduce.*;
> import org.apache.hadoop.mapreduce.split.*;
> import org.apache.hadoop.mapreduce.lib.input.*;
> import org.apache.hadoop.mapreduce.lib.output.*;
> import org.apache.hadoop.util.*;
> public class Sum extends Configured implements Tool{
>         public static class MapClass extends 
>         Mapper<Text, Text, Text, IntWritable>{
>         private  static int i;
>         private  static int j;
>         private  static int a;
>         private  static int b;
>         private String user;
>                 public void map(Text key,Text value,Context context) 
>                                 throws IOException, InterruptedException{
>                                 String[] user_score = 
> value.toString().split(" ");
>                                 for(i=1;i<user_score.length-1;i+=2)
>                                    for(j=i+2;j<user_score.length-1;j+=2){
>                                    user = user_score[i]+" "+user_score[j];
>                                    a = Integer.parseInt(user_score[i+1]);
>                                    b = Integer.parseInt(user_score[j+1]);
>                                    context.write(new Text(user),new 
> IntWritable(a*b));
>                                    }
>                             }
>                             }
>         public static class Reduce extends
>         Reducer<Text,IntWritable,Text,IntWritable>{
>                 public void reduce(Text key,Iterable<IntWritable> values, 
> Context context) throws IOException, InterruptedException{
>                            int sum = 0;  
>          
>              for(IntWritable val:values){
>                              sum += val.get();     
>                                 } 
>              context.write(key, new IntWritable(sum));  
>                            }
>                            }
>      public int run(String[] args) throws Exception{
>                Configuration conf = getConf();
>                 Job job = new Job(conf,"Myjob");
>                 job.setJarByClass(Sum.class);
>                 Path in = new Path(args[0]);
>                 Path out = new Path(args[1]);
>                 FileInputFormat.setInputPaths(job,in);
>                 FileOutputFormat.setOutputPath(job,out);
>                 job.setMapperClass(MapClass.class);
>                 job.setCombinerClass(Reduce.class); 
>                 job.setReducerClass(Reduce.class);
>                 job.setInputFormatClass(TextInputFormat.class);
>                 job.setOutputFormatClass(TextOutputFormat.class);
>               
>                 job.setMapOutputKeyClass(Text.class);  
>                 job.setMapOutputValueClass(IntWritable.class);
>                 job.setOutputKeyClass(Text.class);
>                 job.setOutputValueClass(IntWritable.class);
>                 System.exit(job.waitForCompletion(true)?0:1);
>                 
>                 return 0;
>                 }
>         public static void main (String[] args) throws Exception{
>                 int res = ToolRunner.run(new Configuration(),new Sum(),args);
>                 System.exit(res);
>                 }
>  }
>  

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to