hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "rajeshbabu (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-8859) truncate_preserve should get table split keys as it is instead of converting them to string type and then again to bytes
Date Thu, 24 Oct 2013 18:56:07 GMT

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

rajeshbabu commented on HBASE-8859:
-----------------------------------

These are APIs related to split keys need to be added in HTI
getStartKeys()
getEndKeys()
getStartEndKeys()
getSplitKeys()  - New

and 3 more APIs related to find region location when we specify row also can be added to HTI
getRegionLocation(final String row)
getRegionLocation(final byte [] row)
getRegionLocation(final byte [] row, boolean reload)


> truncate_preserve should get table split keys as it is instead of converting them to
string type and then again to bytes
> ------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-8859
>                 URL: https://issues.apache.org/jira/browse/HBASE-8859
>             Project: HBase
>          Issue Type: Bug
>          Components: scripts
>    Affects Versions: 0.95.1
>            Reporter: rajeshbabu
>            Assignee: rajeshbabu
>             Fix For: 0.98.0, 0.96.1
>
>         Attachments: HBASE-8859-Test_to_reproduce.patch, HBASE-8859_trunk_2.patch, HBASE-8859_trunk.patch
>
>
> If we take int,long or double bytes as split keys then we are not creating table with
same split keys because converting them to strings directly and to bytes is giving different
split keys, sometimes getting IllegalArgument exception because of same split keys(converted).
Instead we can get split keys directly from HTable and pass them while creating table.
> {code}
>       h_table = org.apache.hadoop.hbase.client.HTable.new(conf, table_name)
>       splits = h_table.getRegionLocations().keys().map{|i| i.getStartKey} :byte
>       splits = org.apache.hadoop.hbase.util.Bytes.toByteArrays(splits)
> {code}
> {code}
> Truncating 'emp3' table (it may take a while):
>  - Disabling table...
>  - Dropping table...
>  - Creating table with region boundaries...
> ERROR: java.lang.IllegalArgumentException: All split keys must be unique, found duplicate:
B\x11S\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\x00\x00, B\x11S\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\x00\x00
> {code}



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Mime
View raw message