2

我正在 CentOS 6.5 上尝试使用 Ambari 设置的 HDP2.2 集群,但在运行 Hive GRANT 查询时遇到问题。例如,一个查询

grant select on Tbl1 to user root;

给了我一个看起来像这样的例外

失败:执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 返回代码 1。无法检索 hdfs 的角色:此配置中禁用了远程 Metastore 的 Metastore 授权 api 调用。

这里发生了什么,你能解释一下'retrieve roles for hdfs'的含义吗?那是“hdfs”系统用户还是某些特定的 hadoop 用户?

从我一直在阅读的内容来看,似乎问题出在一些配置单元设置上。有没有办法以某种方式关闭安全性或使用 hive-site.xml 以正确的方式对其进行调整?

4

1 回答 1

2

以下是您的 hive-site.xml 中的设置?

hive.security.metastore.authorization.manager org.apache.hadoop.hive.ql.security.authorization.StorageBasedAuthorizationProvider,org.apache.hadoop.hive.ql.security.authorization.MetaStoreAuthzAPIAuthorizerEmbedOnly

这将仅通过 beeline/hive-server2 接口限制任何 Grant/Revoke 语句。

设置“MetaStoreAuthzAPIAuthorizerEmbedOnly”是对“StorageBasedAuthorizationProvider”的补充,其唯一目的是通过 hive-cli 禁用授权/撤销。要完全使用 SQL 授权,此设置为提供基于 SQL 的授权提供单点控制。如果删除此设置,Hive-CLI 中的任何人都可以设置他/她自己的管理员并绕过基于 SQL 的权限。

于 2015-04-30T21:52:37.463 回答