Hi, here i am trying to read rows from a table, and put them to a file as
it is.For that my mapper class and run method are as shown below. (Correct
me if any thing wrong).

public static class SIMapper extends
TableMapper<ImmutableBytesWritable,Text> {
        Configuration config=HBaseConfiguration.create();

        private Text TABLE=new Text("HS3");

        public void map(ImmutableBytesWritable row, Text value, Context
context) throws IOException {

               try {
            context.write(row, TABLE);
               } catch (InterruptedException e) {
            throw new IOException(e);
            }

        }

      }


Run method:---

public int run(String[] args) throws Exception {

         Job job = new Job(getConf());
         job.setJobName("Job-1");
         job.setJarByClass(setjar.class);

         Scan s=new Scan();
         s.setCacheBlocks(false);
         s.setCaching(1000);

         TableMapReduceUtil.initTableMapperJob(args[0],s, SIMapper.class,
null,null, job);  // args[0] is the table name, which is the input table
for mapper.
         TableMapReduceUtil.addDependencyJars(job);

         FileOutputFormat.setOutputPath(job, new Path(args[1]));


        return job.waitForCompletion(true)? 0:1 ;
       }

When i try to execute the job, i am getting following error. I don't know
what is the mistake.For what the LongWritable it is expected?

12/01/28 11:57:23 INFO mapred.JobClient:  map 0% reduce 0%
12/01/28 11:57:34 INFO mapred.JobClient: Task Id :
attempt_201201281010_0004_m_000000_0, Status : FAILED
java.io.IOException: Type mismatch in key from map: expected
org.apache.hadoop.io.LongWritable, recieved
org.apache.hadoop.hbase.io.ImmutableBytesWritable
    at
org.apache.hadoop.mapred.MapTask$MapOutputBuffer.collect(MapTask.java:845)
    at
org.apache.hadoop.mapred.MapTask$NewOutputCollector.write(MapTask.java:541)
    at
org.apache.hadoop.mapreduce.TaskInputOutputContext.write(TaskInputOutputContext.java:80)
    at org.apache.hadoop.mapreduce.Mapper.map(Mapper.java:124)
    at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:621)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305)
    at org.apache.hadoop.mapred.Child.main(Child.java:170)

please some body help..

-- 
*Regards*
*
Vamshi Krishna
*

Reply via email to