hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jerry He (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-8304) Bulkload fail to remove files if fs.default.name / fs.defaultFS is configured without default port.
Date Thu, 06 Mar 2014 23:07:00 GMT

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

Jerry He commented on HBASE-8304:
---------------------------------

{code}
+    String srcServiceName = srcFs.getCanonicalServiceName();
+    String desServiceName = desFs.getCanonicalServiceName();
...
+      //If one serviceName is a HA format while the other is a no-HA format,
+      //maybe they are refer to the same FileSystem.
+      //For example, srcFs is "ha-hdfs://nameservices" and desFs is "hdfs://activeNamenode:port"
+      Set<InetSocketAddress> srcAddrs = getNNAddresses((DistributedFileSystem) srcFs,
conf);
+      Set<InetSocketAddress> desAddrs = getNNAddresses((DistributedFileSystem) desFs,
conf);
+      if (Sets.intersection(srcAddrs, desAddrs).size() > 0) {
+        return true;
{code}
A little unclear about this.  Given your example:
 //For example, srcFs is "ha-hdfs://nameservices" and desFs is "hdfs://activeNamenode:port"
If the desFs is HA enabled, then you will get the ''ha-hdfs://" format, right? 
If it returns "hdfs://", does it already tell you they are different FS?

It is good JIRA.
I didn't know fs.getCanonicalServiceName() will return "ha-hdfs://nameservices" in HA case.

> Bulkload fail to remove files if fs.default.name / fs.defaultFS is configured without
default port.
> ---------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-8304
>                 URL: https://issues.apache.org/jira/browse/HBASE-8304
>             Project: HBase
>          Issue Type: Bug
>          Components: HFile, regionserver
>    Affects Versions: 0.94.5
>            Reporter: Raymond Liu
>            Assignee: haosdent
>              Labels: bulkloader
>         Attachments: HBASE-8304-v2.patch, HBASE-8304-v3.patch, HBASE-8304.patch
>
>
> When fs.default.name or fs.defaultFS in hadoop core-site.xml is configured as hdfs://ip,
and hbase.rootdir is configured as hdfs://ip:port/hbaserootdir where port is the hdfs namenode's
default port. the bulkload operation will not remove the file in bulk output dir. Store::bulkLoadHfile
will think hdfs:://ip and hdfs:://ip:port as different filesystem and go with copy approaching
instead of rename.
> The root cause is that hbase master will rewrite fs.default.name/fs.defaultFS according
to hbase.rootdir when regionserver started, thus, dest fs uri from the hregion will not matching
src fs uri passed from client.
> any suggestion what is the best approaching to fix this issue? 
> I kind of think that we could check for default port if src uri come without port info.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message