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

Matt Warhaftig commented on HBASE-15287:
----------------------------------------

Ok, attached 'hbase-15287-v2.patch' adds binary row test cases for 
TestImportExport, TestCopyTable, and TestCellCounter.

> org.apache.hadoop.hbase.mapreduce.RowCounter returns incorrect result with 
> binary row key inputs
> ------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-15287
>                 URL: https://issues.apache.org/jira/browse/HBASE-15287
>             Project: HBase
>          Issue Type: Bug
>          Components: mapreduce, util
>    Affects Versions: 1.1.1
>            Reporter: Randy Hu
>            Assignee: Matt Warhaftig
>         Attachments: hbase-15287-v1.patch
>
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> org.apache.hadoop.hbase.mapreduce.RowCounter takes optional start/end key as 
> inputs (-range option). It would work only when the string representation of 
> value is identical to the string. When row key is binary,  the string 
> representation of the value would look like this: "\x00\x01", which would be 
> incorrect interpreted as 8 char string in the current implementation:
> https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/RowCounter.java
> To fix that, we need change how the value is converted from command line 
> inputs:
> Change 
>       scan.setStartRow(Bytes.toBytes(startKey));
> to
>       scan.setStartRow(Bytes.toBytesBinary(startKey));
> Do the same conversion to end key as well.
> The issue was discovered when the utility was used to calcualte row 
> distribution on regions from table with binary row keys. The hbase:meta 
> contains the start key of each region in format of above example. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to