Ioakim Perros 2012-07-24, 19:40
Change the output of your job (or whatever you are using to seed this
reducer -- mapper, whatever), to output ImmutableBytesWritable as the key.
Then wrap your bytes in the writable. Basically, Bytes.toBytes() only
returns a raw byte object. You need an object that implements
WritableComparable, and ImmutableBytesWritable is what you should use. Use
it like this:
ImmutableBytesWritable outKey = new
or use it's setter:
ImmutableBytesWritable outKey = new ImmutableBytesWritable();
On Tue, Jul 24, 2012 at 3:40 PM, Ioakim Perros <[EMAIL PROTECTED]> wrote:
> I am bulk importing data through code and presplitting regions of a table
> - though I see all data to lead to the first server.
> The byte objects to compare with ( so to decide for each reducer' s output
> to which region it should go to ) are of the form :
> and the reducer's output key is an ImmutableBytesWritable - its' bytes are
> being formed like this :
> byte ckBytes = Bytes.toBytes(String.valueOf(#**reducer_task_id));
> The thing is that the reducer (KeyValueSortReducer) class allows only
> ImmutableBytesWritable objects to be the key of each table's record.
> Does anyone have an idea on how this comparison (between
> ImmutableBytesWritable and Bytes)is done and what should I do in order to
> make the comparison work?
> Thanks in advance!
Ioakim Perros 2012-07-25, 02:05