Matteo Bertozzi created HBASE-9890:
--------------------------------------

             Summary: MR jobs are not working if started by a delegated user
                 Key: HBASE-9890
                 URL: https://issues.apache.org/jira/browse/HBASE-9890
             Project: HBase
          Issue Type: Bug
          Components: security
    Affects Versions: 0.96.0, 0.94.12, 0.98.0
            Reporter: Matteo Bertozzi
            Assignee: Matteo Bertozzi
             Fix For: 0.98.0, 0.94.13, 0.96.1
         Attachments: HBASE-9890-94-v0.patch

If Map-Reduce jobs are started with by a proxy user that has already the 
delegation tokens, we get an exception on "obtain token" since the proxy user 
doesn't have the kerberos auth.

For example:
 * If we use oozie to execute RowCounter - oozie will get the tokens required 
(HBASE_AUTH_TOKEN) and it will start the RowCounter. Once the RowCounter tries 
to obtain the token, it will get an exception.
 * If we use oozie to execute LoadIncrementalHFiles - oozie will get the tokens 
required (HDFS_DELEGATION_TOKEN) and it will start the LoadIncrementalHFiles. 
Once the LoadIncrementalHFiles tries to obtain the token, it will get an 
exception.

{code}
 org.apache.hadoop.hbase.security.AccessDeniedException: Token generation only 
allowed for Kerberos authenticated clients
    at 
org.apache.hadoop.hbase.security.token.TokenProvider.getAuthenticationToken(TokenProvider.java:87)
{code}

{code}
org.apache.hadoop.ipc.RemoteException(java.io.IOException): Delegation Token 
can be issued only with kerberos or web authentication
        at 
org.apache.hadoop.hdfs.DFSClient.getDelegationToken(DFSClient.java:783)
        at 
org.apache.hadoop.hdfs.DistributedFileSystem.getDelegationToken(DistributedFileSystem.java:868)
        at 
org.apache.hadoop.fs.FileSystem.collectDelegationTokens(FileSystem.java:509)
        at 
org.apache.hadoop.fs.FileSystem.addDelegationTokens(FileSystem.java:487)
        at 
org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodesInternal(TokenCache.java:130)
        at 
org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodesInternal(TokenCache.java:111)
        at 
org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodes(TokenCache.java:85)
        at 
org.apache.hadoop.filecache.TrackerDistributedCacheManager.getDelegationTokens(TrackerDistributedCacheManager.java:949)
        at 
org.apache.hadoop.mapred.JobClient.copyAndConfigureFiles(JobClient.java:854)
        at 
org.apache.hadoop.mapred.JobClient.copyAndConfigureFiles(JobClient.java:743)
        at 
org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:945)
        at org.apache.hadoop.mapreduce.Job.submit(Job.java:566)
        at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:596)
        at 
org.apache.hadoop.hbase.mapreduce.RowCounter.main(RowCounter.java:173)
{code}



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to