hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anoop Sam John (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-9970) HBase BulkLoad, table is creating with the timestamp key also as a column to the table.
Date Thu, 14 Nov 2013 14:37:39 GMT

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

Anoop Sam John commented on HBASE-9970:
---------------------------------------

Create a patch for 94 and Trunk and attach here Sreenivas. Good catch.

> HBase BulkLoad, table is creating with the timestamp key also as a column to the table.

> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-9970
>                 URL: https://issues.apache.org/jira/browse/HBASE-9970
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.94.11
>            Reporter: Y. SREENIVASULU REDDY
>            Assignee: Y. SREENIVASULU REDDY
>             Fix For: 0.98.0, 0.96.1, 0.94.14
>
>
> If BulkLoad job is running with out creating a table.
> job itself will create the table if table is not found.
> {quote}
> if (!doesTableExist(tableName)) {
>         createTable(conf, tableName);
>       }
> {quote}
> if columns contains timestamp also then table is creating with defined columns and timestamp
key.
> {quote}
> eg: -Dimporttsv.columns=HBASE_ROW_KEY,HBASE_TS_KEY,d:num
> {quote}
> table is creating with the following columnFamilies.
> 'HBASE_TS_KEY' and 'd' 
> while iterating timestamp key also need to avoid while describing the column descriptors.
> {code}
> private static void createTable(HBaseAdmin admin, String tableName, String[] columns)
>       throws IOException {
>     HTableDescriptor htd = new HTableDescriptor(TableName.valueOf(tableName));
>     Set<String> cfSet = new HashSet<String>();
>     for (String aColumn : columns) {
>       if (TsvParser.ROWKEY_COLUMN_SPEC.equals(aColumn)) continue;
>       // we are only concerned with the first one (in case this is a cf:cq)
>       cfSet.add(aColumn.split(":", 2)[0]);
>     }
>     for (String cf : cfSet) {
>       HColumnDescriptor hcd = new HColumnDescriptor(Bytes.toBytes(cf));
>       htd.addFamily(hcd);
>     }
>     LOG.warn(format("Creating table '%s' with '%s' columns and default descriptors.",
>       tableName, cfSet));
>     admin.createTable(htd);
>   }
> {code}
> {quote}
> Index: hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/ImportTsv.java
> ===================================================================
> --- hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/ImportTsv.java	(revision
1539967)
> +++ hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/ImportTsv.java	(working
copy)
> @@ -413,7 +413,8 @@
>      HTableDescriptor htd = new HTableDescriptor(TableName.valueOf(tableName));
>      Set<String> cfSet = new HashSet<String>();
>      for (String aColumn : columns) {
> -      if (TsvParser.ROWKEY_COLUMN_SPEC.equals(aColumn)) continue;
> +      if (TsvParser.ROWKEY_COLUMN_SPEC.equals(aColumn)
> +          || TsvParser.TIMESTAMPKEY_COLUMN_SPEC.equals(aColumn)) continue;
>        // we are only concerned with the first one (in case this is a cf:cq)
>        cfSet.add(aColumn.split(":", 2)[0]);
>      }
> {quote}



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

Mime
View raw message