Hi,

I have this map class that is accepting input files with a key as LongWritable and a value of Text.

The input file is in [1]. Here we can see that it contains a key as a Long (I think) and bytes as value. In [2], it is my map class. The goal of the map class is to read the input data, and sent it out as it is. I was expecting that the key was the index number, and the value was the gibberish. But, I am having a strange error [3], as the key is getting there a s Text, and not the index.

Can anyone tell me why I get this error, and how I can solve it?

[1] Input file

|xubuntu@hadoop-coc-1:~/Programs/hadoop$ hdfs dfs -cat 
/output1-1434970707/part-m-00000
15/06/26 12:01:35 WARN util.NativeCodeLoader: Unable to load native-hadoop 
library for your platform... using builtin-java classes where applicable
0    
SEQ"org.apache.hadoop.io.BytesWritable"org.apache.hadoop.io.BytesWritableI���#HA��u��BZ��n��tXeX����zZi��ndFw�{>�H�\���Bi�'�gb�Y�a�*4�7;���uL_��gs���`��*
187    
����tAj#�5*nX�b"��>�˥k�c2�)�1z�1���6�l���Q�be3'$�G��!{��u����z@�t����v���r�gj8fq�P��.�m���y��n��!��֌�_w�U8e�����v0���S���2c�_�ջ�R\x*��
                                                                                
                                                                             
�܁���|x
                                                                                
                                                                                
       U�3���l���qaq�)�N��k�L��a�2�ն���k    NL
404    ��)i�g    
A�2)L��W,���ܺ�V�w��M7ڭCϣ����ZI��be��$�f[���W�7��5�6.}�ѽb�    
����C��%|�h�lj�D}@F�"�(K��xh�'6
|

[2] My map class

|
    /** Identity mapper set by the user. */
    public static class MyFullyIndentityMapperWebdataScan
    extends Mapper<LongWritable, Text, LongWritable, Text>{

        //        private LongWritable word = new LongWritable();
        private LongWritable word = new LongWritable();
        private Text rvalue = new Text();

        public void map(LongWritable key, Text value, Context context
                ) throws IOException, InterruptedException {

            System.out.println("1: " + key.getClass().getName() + " " + 
value.getClass().getName());
            System.out.println("2: " + context.getCurrentKey().getClass() + " " 
+ context.getCurrentValue().getClass());
            context.write(key, value);
        }
    }
|

[3] Output of execution

|
             Log Type: stdout

             Log Upload Time: 26-Jun-2015 11:58:53

             Log Length: 138

1: org.apache.hadoop.io.LongWritable org.apache.hadoop.io.Text 2: class 
org.apache.hadoop.io.LongWritable class org.apache.hadoop.io.Text



             Log Type: syslog

             Log Upload Time: 26-Jun-2015 11:58:53

             Log Length: 4367

             Showing 4096 bytes of 4367 total. Click              here          
    for the full log.

operties from hadoop-metrics2.properties 2015-06-26 11:58:32,118 INFO [main] 
org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Scheduled snapshot period at 
10 second(s). 2015-06-26 11:58:32,118 INFO [main] 
org.apache.hadoop.metrics2.impl.MetricsSystemImpl: MapTask metrics system 
started 2015-06-26 11:58:32,128 INFO [main] org.apache.hadoop.mapred.YarnChild: 
Executing with tokens: 2015-06-26 11:58:32,128 INFO [main] 
org.apache.hadoop.mapred.YarnChild: Kind: mapreduce.job, Service: 
job_1435332416394_0009, Ident: 
(org.apache.hadoop.mapreduce.security.token.JobTokenIdentifier@5d7657) 
2015-06-26 11:58:32,208 INFO [main] org.apache.hadoop.mapred.YarnChild: 
Sleeping for 0ms before retrying again. Got null now. 2015-06-26 11:58:32,439 
INFO [main] org.apache.hadoop.mapred.YarnChild: mapreduce.cluster.local.dir for 
child: 
/tmp/hadoop-temp/nm-local-dir/usercache/xubuntu/appcache/application_1435332416394_0009
 2015-06-26 11:58:32,611 INFO [main] 
org.apache.hadoop.conf.Configuration.deprecation: session.id is deprecated. 
Instead, use dfs.metrics.session-id 2015-06-26 11:58:33,038 INFO [main] 
org.apache.hadoop.mapred.Task:  Using ResourceCalculatorProcessTree : [ ] 
2015-06-26 11:58:33,180 INFO [main] org.apache.hadoop.mapred.MapTask: 
Processing split: 
hdfs://hadoop-coc-1:9000/output1-1434970707/part-m-00000:0+17853 2015-06-26 
11:58:33,252 INFO [main] org.apache.hadoop.mapred.MapTask: (EQUATOR) 0 kvi 
26214396(104857584) 2015-06-26 11:58:33,252 INFO [main] 
org.apache.hadoop.mapred.MapTask: mapreduce.task.io.sort.mb: 100 2015-06-26 
11:58:33,252 INFO [main] org.apache.hadoop.mapred.MapTask: soft limit at 
83886080 2015-06-26 11:58:33,252 INFO [main] org.apache.hadoop.mapred.MapTask: 
bufstart = 0; bufvoid = 104857600 2015-06-26 11:58:33,252 INFO [main] 
org.apache.hadoop.mapred.MapTask: kvstart = 26214396; length = 6553600 
2015-06-26 11:58:33,255 INFO [main] org.apache.hadoop.mapred.MapTask: Map 
output collector class = org.apache.hadoop.mapred.MapTask$MapOutputBuffer 
2015-06-26 11:58:33,269 INFO [main] org.apache.hadoop.mapred.MapTask: Starting 
flush of map output 2015-06-26 11:58:33,276 WARN [main] 
org.apache.hadoop.mapred.YarnChild: Exception running child : 
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:712)  
   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.mapred.examples.MyWebDataScan$MyFullyIndentityMapperWebdataScan.map(MyWebDataScan.java:144)
     at 
org.apache.hadoop.mapred.examples.MyWebDataScan$MyFullyIndentityMapperWebdataScan.map(MyWebDataScan.java:131)
     at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145)     at 
org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:784)     at 
org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)     at 
org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163)     at 
java.security.AccessController.doPrivileged(Native Method)     at 
javax.security.auth.Subject.doAs(Subject.java:422)     at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)
     at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
|

​

--
--
Thanks,

Reply via email to