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

Eli Collins commented on HBASE-5738:
------------------------------------

Shaneal,

Does using defaultFS fix the issues?

Looking at the exception..

{noformat}
Caused by: org.apache.hadoop.fs.InvalidPathException: Invalid path
name Wrong FS: hdfs://ha-nn-uri/hbase/-ROOT-/70236052/.logs/hlog.1327624121445,
expected: hdfs://ha-nn-uri:8020
       at 
org.apache.hadoop.fs.AbstractFileSystem.checkPath(AbstractFileSystem.java:361)
       at 
org.apache.hadoop.fs.AbstractFileSystem.create(AbstractFileSystem.java:462)
       at org.apache.hadoop.fs.FileContext$3.next(FileContext.java:657)
       at org.apache.hadoop.fs.FileContext$3.next(FileContext.java:654)
       at 
org.apache.hadoop.fs.FileContext$FSLinkResolver.resolve(FileContext.java:2319)
       at org.apache.hadoop.fs.FileContext.create(FileContext.java:654)
       at org.apache.hadoop.io.SequenceFile.createWriter(SequenceFile.java:501)
       at org.apache.hadoop.io.SequenceFile.createWriter(SequenceFile.java:468)
{noformat}

AFS#checkPath is failing because the authority of the FC URI (ha-nn-uri:8020) 
doesn't match the authority of the given URI (ha-nn-uri).

Looking at the FC URI, AFS#getUri...

{code}
    int port = uri.getPort();
    port = (port == -1 ? defaultPort : port);
    if (port == -1) { // no port supplied and default port is not specified
      return new URI(supportedScheme, authority, "/", null);
    }
{code}

So if we don't specify a port when creating the FC (which we don't, we're using 
hdfs://ha-nn-uri/hbase) we'll fail to match the authority because we didn't set 
a port and we're not using the default port for HDFS (8020).

Seems like a HADOOP bug to me, specifically the path given the AFS checkPath 
should be one of the configured NN addresses which will have a port (ie the 
address returned by the proxy provider) instead of the logical NN uri (or the 
AFS#checkPath should be more lenient if the given path doesn't specify a port).
                
> Using HBase with HA HDFS requires bogus hardcoded port value
> ------------------------------------------------------------
>
>                 Key: HBASE-5738
>                 URL: https://issues.apache.org/jira/browse/HBASE-5738
>             Project: HBase
>          Issue Type: Bug
>          Components: master
>    Affects Versions: 0.92.1, 0.94.0
>            Reporter: Shaneal Manek
>            Assignee: Shaneal Manek
>         Attachments: HBASE-5738.patch
>
>
> When configuring HBase with HDFS HA, we currently have to have the 8020 port 
> (regardless of what port HDFS is using for the namenode rpc address) in the 
> following property in hbase-site.xml:
> {noformat}
>   <property>
>     <name>hbase.rootdir</name>
>     <value>hdfs://ha-nn-uri:8020/hbase</value>
>   </property>
> {noformat}
> Otherwise the master and regionservers will not start.
> The value in the above property should really just be 
> "hdfs://ha-nn-uri/hbase" (replace "ha-nn-uri" with your uri and "hbase" with 
> the name of the hbase directory in HDFS that you are using, as appropriate).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to