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

Alejandro Abdelnur commented on HDFS-8337:
------------------------------------------

I'll look. BTW, a workaround until there is a release with this fix is adding 
the following to the {{httpfs-site.xml}}:

{code}
  <property>
    <name>httpfs.authentication.type</name>
    
<value>org.apache.hadoop.security.token.delegation.web.KerberosDelegationTokenAuthenticationHandler</value>
  </property>

  <property>
    <name>httpfs.authentication.delegation-token.token-kind</name>
    <value>WEBHDFS delegation</value>
  </property>
{code}

> httpfs doesn't work with creates from a jar with kerberos
> ---------------------------------------------------------
>
>                 Key: HDFS-8337
>                 URL: https://issues.apache.org/jira/browse/HDFS-8337
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: HDFS, hdfs-client, security, webhdfs
>            Reporter: Yongjun Zhang
>            Assignee: Yongjun Zhang
>         Attachments: HDFS-8337.001.patch, HDFS-8337.002.patch, 
> HDFS-8337.003.patch
>
>
> In a secure cluster, running a simple program:
> {code}
> import org.apache.hadoop.conf.*; 
> import org.apache.hadoop.fs.*; 
> import org.apache.hadoop.security.*;
> class Foo { 
>   public static void main(String args[]) throws Exception { 
>     FileSystem fs = FileSystem.get(new 
> java.net.URI("webhdfs://<host>:14000/"), new Configuration()); 
>     System.out.println(fs.listStatus(new Path("/"))[0]); 
>     java.io.OutputStream os = fs.create(new Path("/tmp/foo")); 
>     os.write('a'); 
>     os.close(); 
>   } 
> } 
> {code}
> Basically to access httpfs via webhdfs, the following exception is thrown:
> {code}
> [systest@yj52s ~]$ /usr/java/jdk1.7.0_67-cloudera/bin/java -cp $(hadoop 
> classpath):. Foo
> 15/05/06 23:51:38 WARN ssl.FileBasedKeyStoresFactory: The property 
> 'ssl.client.truststore.location' has not been set, no TrustStore will be 
> loaded
> Exception in thread "main" 
> org.apache.hadoop.ipc.RemoteException(com.sun.jersey.api.ParamException$QueryParamException):
>  java.lang.IllegalArgumentException: No enum constant 
> org.apache.hadoop.fs.http.client.HttpFSFileSystem.Operation.GETDELEGATIONTOKEN
>       at 
> org.apache.hadoop.hdfs.web.JsonUtil.toRemoteException(JsonUtil.java:163)
>       at 
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem.validateResponse(WebHdfsFileSystem.java:354)
>       at 
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem.access$200(WebHdfsFileSystem.java:91)
>       at 
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem$AbstractRunner.runWithRetry(WebHdfsFileSystem.java:608)
>       at 
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem$AbstractRunner.access$100(WebHdfsFileSystem.java:458)
>       at 
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem$AbstractRunner$1.run(WebHdfsFileSystem.java:487)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at javax.security.auth.Subject.doAs(Subject.java:415)
>       at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1614)
>       at 
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem$AbstractRunner.run(WebHdfsFileSystem.java:483)
>       at 
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem.getDelegationToken(WebHdfsFileSystem.java:1299)
>       at 
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem.getDelegationToken(WebHdfsFileSystem.java:237)
>       at 
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem.getAuthParameters(WebHdfsFileSystem.java:423)
>       at 
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem.toUrl(WebHdfsFileSystem.java:444)
>       at 
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem$AbstractFsPathRunner.getUrl(WebHdfsFileSystem.java:691)
>       at 
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem$AbstractRunner.runWithRetry(WebHdfsFileSystem.java:603)
>       at 
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem$AbstractRunner.access$100(WebHdfsFileSystem.java:458)
>       at 
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem$AbstractRunner$1.run(WebHdfsFileSystem.java:487)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at javax.security.auth.Subject.doAs(Subject.java:415)
>       at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1614)
>       at 
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem$AbstractRunner.run(WebHdfsFileSystem.java:483)
>       at 
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem.listStatus(WebHdfsFileSystem.java:1277)
>       at Foo.main(Foo.java:7)
> {code}
> Thanks [~qwertymaniac] and [~caseyjbrotherton] for reporting the issue.



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

Reply via email to