You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Nick Dimiduk (Jira)" <ji...@apache.org> on 2020/08/10 23:04:00 UTC

[jira] [Updated] (HBASE-24403) FsDelegationToken should cache Token

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

Nick Dimiduk updated HBASE-24403:
---------------------------------
        Fix Version/s:     (was: 2.2.7)
                           (was: 2.3.1)
                           (was: 3.0.0-alpha-1)
    Affects Version/s: 3.0.0-alpha-1
                       2.3.0
                       2.2.5

Looks like original patch was reverted from master. Dropping the version numbers from "fixVersion" to "affectsVersion", let me know if I have this wrong.

> FsDelegationToken should cache Token
> ------------------------------------
>
>                 Key: HBASE-24403
>                 URL: https://issues.apache.org/jira/browse/HBASE-24403
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 3.0.0-alpha-1, 2.3.0, 2.2.5
>            Reporter: wuchang
>            Assignee: wuchang
>            Priority: Major
>         Attachments: 24403.patch
>
>
> When doing Bulkload, we find that FsDelegationToken will acquire token of NameNode everytime for a single file, although, from the comment of acquireDelegationToken(), it claims that it is trying to find token in cache firstly, but the newly requested token is never put to cache and thus the cache is still empty for the following request;
> In cases there are many files to do the bulk load, the token request will cause big short to NameNode.
>  
> {code:java}
> public void acquireDelegationToken(final FileSystem fs)
>  throws IOException {
>  if (userProvider.isHadoopSecurityEnabled()) {
>  this.fs = fs;
>  userToken = userProvider.getCurrent().getToken("HDFS_DELEGATION_TOKEN",
>  fs.getCanonicalServiceName());
>  if (userToken == null) {
>  hasForwardedToken = false;
>  try {
>  userToken = fs.getDelegationToken(renewer);
>  } catch (NullPointerException npe) {
>  // we need to handle NullPointerException in case HADOOP-10009 is missing
>  LOG.error("Failed to get token for " + renewer);
>  }
>  } else {
>  hasForwardedToken = true;
>  LOG.info("Use the existing token: " + userToken);
>  }
>  }
> }{code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)