Description
Accessing Azure file system with 'wasbs' scheme fails on enabling wasb authorization.
Stack trace :
adminuser1@hn0-f6adaa:/etc/hadoop/conf$ yarn jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar wordcount "/examplefile" "/output" 17/03/20 07:58:48 INFO client.AHSProxy: Connecting to Application History server at hn0-f6adaa.team2testdomain.onmicrosoft.com/10.45.0.190:10200 17/03/20 07:58:48 INFO security.TokenCache: Got dt for wasbs://vahemesw-2v6-201703200848@storagewuteam02.blob.core.windows.net; Kind: WASB delegation, Service: 10.45.0.190:50911, Ident: (owner=adminuser1, renewer=yarn, realUser=, issueDate=1489996728687, maxDate=1490601528687, sequenceNumber=15, masterKeyId=11) org.apache.hadoop.fs.azure.WasbAuthorizationException: getFileStatus operation for Path : wasbs://vahemesw-2v6-201703200848@storagewuteam02.blob.core.windows.net/output not allowed at org.apache.hadoop.fs.azure.NativeAzureFileSystem.performAuthCheck(NativeAzureFileSystem.java:1425) at org.apache.hadoop.fs.azure.NativeAzureFileSystem.getFileStatus(NativeAzureFileSystem.java:2058) at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:1447) at org.apache.hadoop.mapreduce.lib.output.FileOutputFormat.checkOutputSpecs(FileOutputFormat.java:145) at org.apache.hadoop.mapreduce.JobSubmitter.checkSpecs(JobSubmitter.java:266) at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:139) at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1290) at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1287) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1866) at org.apache.hadoop.mapreduce.Job.submit(Job.java:1287) at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1308) at org.apache.hadoop.examples.WordCount.main(WordCount.java:87) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:71) at org.apache.hadoop.util.ProgramDriver.run(ProgramDriver.java:144) at org.apache.hadoop.examples.ExampleDriver.main(ExampleDriver.java:74) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.hadoop.util.RunJar.run(RunJar.java:233) at org.apache.hadoop.util.RunJar.main(RunJar.java:148)
In the above fs.defaultFS is set to "wasbs://vahemesw-2v6-201703200848@storagewuteam02.blob.core.windows.net"
If fs.defaultFS is changed to "wasb://vahemesw-2v6-201703200848@storagewuteam02.blob.core.windows.net", the job runs fine