[ 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)