使用由kerberos保护的hadoop-2.6.0。尝试使用以下命令为目录设置acl
命令
hadoop fs -setfacl --set user::rwx,user:user1:---,group::rwx,other::rwx /test1
它给出的信息是“太多的论据”
错误
-setfacl: Too many arguments
Usage: hadoop fs [generic options] -setfacl [-R] [{-b|-k} {-m|-x <acl_spec>} <path>]|[--set <acl_spec> <path>]
我确信命令语法是正确的,而且当从restapi执行时,同样的命令也可以正常工作。
需要一个解决方案。
1条答案
按热度按时间kfgdxczn1#
这是hdfs setfacl命令的正确语法。如果您是从windows cmd.exe运行的,那么如果命令行参数包含任何cmd.exe参数分隔符,则可能需要将其括在引号中。在cmd.exe中,参数分隔符是空格、逗号、分号和等号。acl规范的语法包含逗号,因此我们需要将其括在引号中。否则,cmd.exe会在调用hadoop代码之前将其拆分为多个参数,这就是为什么您会看到参数过多的错误。当我在windows上运行时,它起了作用: