hadoop-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Utester Utester <utest...@yahoo.com>
Subject java.lang.ClassCastException: org.apache.hadoop.io.LongWritable cannot be cast to java.lang.String
Date Mon, 19 Nov 2012 02:35:43 GMT

I have Hadoop 1.0.3 running on Ubuntu Linux. I am playing around with a simple Map-Reduce

Details of the code
1. Since this exercise is mainly to learn basic Hadoop APIs and learn how to run these jobs,
the logic in the Map job is irrelevant. 
2. The code snippet is below with just the APIs (which I believe is causing a problem - PLEASE
correct me if I am wrong and I will post the entire code snippet)public
  Reporter reporter) 
}publicvoidmap(String sourceKey, String sourceValue, OutputCollector<String, String>
outputC,throwsIOException {

hduser@utester-VirtualBox:/usr/local/hadoop/bin$ /usr/local/hadoop/bin/hadoop jar ~/HadoopCodeProjectsFolder/JobOrganizerMapRedProject/11182012/HadoopMapRedProject.jar
Warning: $HADOOP_HOME is deprecated.
12/11/18 16:36:22 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments.
Applications should implement Tool for the same.
12/11/18 16:36:22 INFO util.NativeCodeLoader: Loaded the native-hadoop library
12/11/18 16:36:22 WARN snappy.LoadSnappy: Snappy native library not loaded
12/11/18 16:36:22 INFO mapred.FileInputFormat: Total input paths to process : 1
12/11/18 16:36:22 INFO mapred.JobClient: Running job: job_201211181608_0002
12/11/18 16:36:23 INFO mapred.JobClient:  map 0% reduce 0%
12/11/18 16:36:42 INFO mapred.JobClient: Task Id : attempt_201211181608_0002_m_000000_0, Status
java.lang.ClassCastException: org.apache.hadoop.io.LongWritable cannot be cast to java.lang.String
 at org.u.hadoopmapred.JobOrganizer$JobOrganizerMapper.map(JobOrganizer.java:1)
 at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50)
 at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:436)

The Mapper Interface as per the javadoc is: Interface Mapper <K1, V1, K2, V2> and its
map function is: map(K1 key, V1 value, OutputCollector<K2, V2> output, Reporter). I
wanted to parameterize K1, V1, K2, V2 to all be String. Is something wrong in the way I am
thinking? Is this what is wrong? I have found similar questions on the internet but the asnwers
did not clarify how I am breaking the Mapper contract (I did not have any compile errors -
just a runtime error). 
@OverridestaticclassJobOrganizerMapper extendsMapReduceBase implementsMapper<String, String,
String, String> {classJobOrganizer 
View raw message