我正在使用 Cloudera 的 Hadoop 的 CDH 发行版,并且最近从 CDH3 升级到了 CDH4。
在 CDH3 中,我曾经能够将用户名添加到hadoop-policy.xml中:
security.client.protocol.acl
security.job.submission.protocol.acl
然后运行:
hadoop dfsadmin -refreshServiceAcl
hadoop mradmin -refreshServiceAcl
而且,瞧,用户可以访问 HDFS 并运行 MR 作业。
现在添加自升级到 CDH4 以来的第一个用户,看起来有些事情发生了变化。
仍然像上面一样在hadoop-policy.xml中添加用户。对于 HDFS 访问,我运行:
hdfs dfsadmin -refreshServiceAcl
但是,我无法弄清楚什么是合适的让用户访问“security.job.submission.protocol.acl”。当我运行时:
hadoop mradmin -refreshServiceAcl
我得到:
不推荐使用:不推荐使用此脚本执行 mapred 命令。而是使用 mapred 命令。refreshServiceAcl:java.io.IOException:未知协议:org.apache.hadoop.security.authorize.RefreshAuthorizationPolicyProtocol
当然,用户会得到:
org.apache.hadoop.security.authorize.AuthorizationException:用户用户名 (auth:SIMPLE) 未授权协议接口 org.apache.hadoop.mapred.JobSubmissionProtocol,预期客户端 Kerberos 主体为空
我没有安装 YARN/MRv2,“/usr/lib/hadoop-0.20-mapreduce/bin/mapred”只是一个指向“/usr/lib/hadoop-0.20-mapreduce/bin/hadoop”的软链接。
知道如何更新 JobSubmissionProtocol 以接受新用户吗?