You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Zhang Wei (JIRA)" <ji...@apache.org> on 2015/06/15 10:04:01 UTC

[jira] [Commented] (HADOOP-12053) Harfs defaulturiport should be Zero ( should not -1)

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

Zhang Wei commented on HADOOP-12053:
------------------------------------

Hi guys, any progress about this issue? I checked the related code,   "-1" means the port is omitted from the given URI. When "-1" is given in the URI,  checkPath() will get the default port from the implemented class of AbstractFileSystem, in this scenario the implemented class indicates HarFs. HarFs should tell checkPath the default port is "0" , which means "I don't have a port". then It will match the default port "0"  in HarFileSystem and pass the check.
At present, HarFs returns "-1", It seems like a Q&A:
 checkPath : What's the default port? 
getUriDefaultPort: The default port is default port.

BTW: I think RawLocalFs may have the same issue.

> Harfs defaulturiport should be Zero ( should not -1)
> ----------------------------------------------------
>
>                 Key: HADOOP-12053
>                 URL: https://issues.apache.org/jira/browse/HADOOP-12053
>             Project: Hadoop Common
>          Issue Type: Bug
>            Reporter: Brahma Reddy Battula
>            Assignee: Brahma Reddy Battula
>
> The harfs overrides the "getUriDefaultPort" method of AbstractFilesystem, and returns "-1" . But "-1" can't pass the "checkPath" method when the {{fs.defaultfs}} is setted without port(like hdfs://hacluster)
>  *Test Code :* 
> {code}
> for (FileStatus file : files) {
>           String[] edges = file.getPath().getName().split("-");
>           if (applicationId.toString().compareTo(edges[0]) >= 0 && applicationId.toString().compareTo(edges[1]) <= 0) {
>             Path harPath = new Path("har://" + file.getPath().toUri().getPath());
>             harPath = harPath.getFileSystem(conf).makeQualified(harPath);
>             remoteAppDir = LogAggregationUtils.getRemoteAppLogDir(
>                 harPath, applicationId, appOwner,
>                 LogAggregationUtils.getRemoteNodeLogDirSuffix(conf));
>             if (FileContext.getFileContext(remoteAppDir.toUri()).util().exists(remoteAppDir)) {
>                 remoteDirSet.add(remoteAppDir);
>             }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)