hdfs dfs -setfacl 在 Azure Data Lake Store 上失败

Posted

技术标签:

【中文标题】hdfs dfs -setfacl 在 Azure Data Lake Store 上失败【英文标题】:hdfs dfs -setfacl fails on Azure Data Lake Store 【发布时间】:2019-10-24 13:19:49 【问题描述】:

我正在尝试使用以下命令从 HDInsight 3.6 群集更改位于 Azure Data Lake Store Gen 1 中的文件的访问控制列表:

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

它失败了:

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

作为

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

工作正常我想知道是否需要 ESP(企业安全包)配置。

【问题讨论】:

【参考方案1】:

您可以尝试以下步骤在 Azure Data Lake Gen1 上设置 acls,如下所示。

之前:获取ADLS文件夹示例和user:bd04d6b3-xxx-xxxx-xxxx-3e30e6c99f3c:r--的acls

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

在 ADLS 上设置 ACL: 使用以下命令为特定用户设置 acl,如下所示:

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

之后:现在您可以注意到 acl 发生了变化。

希望这会有所帮助。

【讨论】:

谢谢!这正是我所做的,但我得到了错误。您的集群是否配置了 ESP? 它不是 ESP 集群,但您也可以在 ESP 集群上进行配置。

以上是关于hdfs dfs -setfacl 在 Azure Data Lake Store 上失败的主要内容,如果未能解决你的问题,请参考以下文章

何时使用hadoop fs,hadoop dfs与hdfs dfs命令

“hdfs dfs -ls”和“hdfs dfs -ls /”之间的区别

云计算--hdfs dfs 命令

hadoop fs,hadoop dfs,hdfs dfs

hdfs dfs test 命令

大数据HDFS客户端命令行(hdfs dfs)详细使用说明