[ https://issues.apache.org/jira/browse/HBASE-15287?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matt Warhaftig updated HBASE-15287: ----------------------------------- Attachment: hbase-15287-branch-1-v1.patch Attached 'hbase-15287-branch-1-v1.patch' ports this patch to branch-1. Note that TestRowCounter was not ported because the --range argument does not work on this branch (see [HBASE-14770|https://issues.apache.org/jira/browse/HBASE-14770?focusedCommentId=15135623&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15135623] for details). > 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 > Fix For: 2.0.0, 1.4.0 > > Attachments: 15287-v2.patch, hbase-15287-branch-1-v1.patch, > hbase-15287-v1.patch, hbase-15287-v2.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)