Return-Path: X-Original-To: apmail-hbase-issues-archive@www.apache.org Delivered-To: apmail-hbase-issues-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 5E4A710972 for ; Thu, 29 Aug 2013 22:11:58 +0000 (UTC) Received: (qmail 8950 invoked by uid 500); 29 Aug 2013 22:11:54 -0000 Delivered-To: apmail-hbase-issues-archive@hbase.apache.org Received: (qmail 8885 invoked by uid 500); 29 Aug 2013 22:11:54 -0000 Mailing-List: contact issues-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list issues@hbase.apache.org Received: (qmail 8840 invoked by uid 99); 29 Aug 2013 22:11:54 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 29 Aug 2013 22:11:54 +0000 Date: Thu, 29 Aug 2013 22:11:54 +0000 (UTC) From: "Ted Yu (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/HBASE-8859?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13754121#comment-13754121 ] Ted Yu commented on HBASE-8859: ------------------------------- {code} + public byte[][] getSplitKeys() throws IOException { {code} Should the above method be added to HTableInterface ? > 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.0 > > 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 is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira