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

Francis Liu commented on HCATALOG-155:
--------------------------------------

The main fix here is manually setting the output.key.class and 
output.value.class properties before it reaches sequenceFile. It could have 
been done easily by override createRecordWriter but it would be much cleaner to 
use composition to prevent other unwanted methods from bleeding through the 
class. 
                
> HBase bulkOSD requires value to be Put rather than HCatRecord
> -------------------------------------------------------------
>
>                 Key: HCATALOG-155
>                 URL: https://issues.apache.org/jira/browse/HCATALOG-155
>             Project: HCatalog
>          Issue Type: Bug
>          Components: hbase
>    Affects Versions: 0.3
>            Reporter: David Capwell
>            Assignee: Francis Liu
>              Labels: hbase
>             Fix For: 0.3
>
>         Attachments: HCATALOG-155.patch
>
>
> So I tried running a MR job writing to hcat+hbase and get the following error:
> [INFO] 02:42:47,857 [pool-1-thread-1] JobClient:1287 - Task Id : 
> attempt_201111040030_0023_r_000000_0, Status : FAILED
> java.io.IOException: wrong value class: org.apache.hadoop.hbase.client.Put is 
> not class org.apache.hcatalog.data.DefaultHCatRecord
>        at 
> org.apache.hadoop.io.SequenceFile$Writer.append(SequenceFile.java:988)
>        at 
> org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat$1.write(SequenceFileOutputFormat.java:74)
>        at 
> org.apache.hcatalog.mapreduce.DefaultRecordWriterContainer.write(DefaultRecordWriterContainer.java:64)
>        at 
> org.apache.hcatalog.mapreduce.DefaultRecordWriterContainer.write(DefaultRecordWriterContainer.java:33)
>        at 
> org.apache.hadoop.mapred.ReduceTask$NewTrackingRecordWriter.write(ReduceTask.java:587)
>        at 
> org.apache.hadoop.mapreduce.TaskInputOutputContext.write(TaskInputOutputContext.java:80)
> It looks like my key has to be ImmutableBytesWritable.class and my value must 
> be Put.class?  Shouldn't my key be WritableComparible and value 
> DefaultHCatRecord (HCatRecord)?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to