You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Chia-Ping Tsai (JIRA)" <ji...@apache.org> on 2018/02/13 13:13:00 UTC

[jira] [Reopened] (HBASE-11622) completebulkload/loadIncrementalHFiles cannot specify table with namespace

     [ https://issues.apache.org/jira/browse/HBASE-11622?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Chia-Ping Tsai reopened HBASE-11622:
------------------------------------

> completebulkload/loadIncrementalHFiles cannot specify table with namespace
> --------------------------------------------------------------------------
>
>                 Key: HBASE-11622
>                 URL: https://issues.apache.org/jira/browse/HBASE-11622
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.98.0
>            Reporter: Jianshi Huang
>            Priority: Major
>
> I'm using completebulkload to load 500GB of data to a table (presplitted). However, it reports the following errors:
> Looks like completebulkload didn't recognize the namespace part (namespace:table).
> Caused by: java.net.URISyntaxException: Relative path in absolute URI: grapple:vertices,37.bottom
>         at java.net.URI.checkPath(URI.java:1804)
>         at java.net.URI.<init>(URI.java:752)
>         at org.apache.hadoop.fs.Path.initialize(Path.java:203)
> By looking at the source code of LoadIncrementalHFiles.java, it seems the temporary path created for splitting will contain ':',
> The error part should be this:
> String uniqueName = getUniqueName(table.getName());
>     HColumnDescriptor familyDesc = table.getTableDescriptor().getFamily(item.family);
>     Path botOut = new Path(tmpDir, uniqueName + ".bottom");
>     Path topOut = new Path(tmpDir, uniqueName + ".top");
>     splitStoreFile(getConf(), hfilePath, familyDesc, splitKey,
>         botOut, topOut);
> uniqueName will be "namespce:table" so "new Path(...)" will fail.
> A bug?
> P.S.
> Comment from Matteo Bertozzi:
> we don't need the name to be related to the table name.
> We can replace the getUniqueName() using something like this
>   String getUniqueName(TableName tableName) {
>     String name = UUID.randomUUID().toString().replaceAll("-", "") +
>                   "," + regionCount.incrementAndGet();
>     return name;
>   }



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)