1
votes

I am trying to change the Access Control List for a file located in an Azure Data Lake Store Gen 1 from an HDInsight 3.6 Cluster with the following command:

hdfs dfs -setfacl -m user:d7de0903-abcabc-44c1-8f1c-31311f5caa69:r-x adl://<myadls>.azuredatalakestore.net/user/pics/sammple.jpeg

It fails with:

-setfacl: Fatal internal error
java.lang.NullPointerException
    at 
org.apache.hadoop.fs.adl.HdiAdlFileSystem.shouldUseDaemonUserOrGroup(Unknown Source)
    at 
org.apache.hadoop.fs.adl.HdiAdlFileSystem.getEffectiveAclEntries(Unknown Source)
    at org.apache.hadoop.fs.adl.HdiAdlFileSystem.modifyAclEntries(Unknown Source)
    at 
 org.apache.hadoop.fs.shell.AclCommands$SetfaclCommand.processPath(AclCommands.java:240)
    at org.apache.hadoop.fs.shell.Command.processPaths(Command.java:317)
    at 
org.apache.hadoop.fs.shell.Command.processPathArgument(Command.java:289)
    at org.apache.hadoop.fs.shell.Command.processArgument(Command.java:271)
    at org.apache.hadoop.fs.shell.Command.processArguments(Command.java:255)
    at 
org.apache.hadoop.fs.shell.FsCommand.processRawArguments(FsCommand.java:119)
    at org.apache.hadoop.fs.shell.Command.run(Command.java:165)
    at org.apache.hadoop.fs.FsShell.run(FsShell.java:297)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:90)
    at org.apache.hadoop.fs.FsShell.main(FsShell.java:356)

As

 hdfs dfs -getfacl adl://<myadls>.azuredatalakestore.net/user/pics/sample.jpeg

works fine I am wondering if an ESP (Enterprise Security Package) Configuration is needed.

1

1 Answers

0
votes

You can try the below steps to set acls on Azure Data Lake Gen1 as follows.

Before: Getting acls of ADLS folder example and user:bd04d6b3-xxx-xxxx-xxxx-3e30e6c99f3c:r--

hdfs dfs -getfacl adl://<adlsname>.azuredatalakestore.net/clusters/example

enter image description here

Set ACLs on ADLS: Use the following command to set acls for specific user as follows:

hdfs dfs -setfacl -m user:bd04d6b3-xxxx-xxxx-xxxx--3e30e6c99f3c:rwx adl://<adlsname>.azuredatalakestore.net/clusters/example

After: Now you can notice the acls are changed.

enter image description here

Hope this helps.