使用beeline shell拒绝用户匿名的Hive权限

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用beeline shell拒绝用户匿名的Hive权限相关的知识,希望对你有一定的参考价值。

我创建了一个3节点Hadoop集群,其中包含1个namenode和2个datanode。

我可以从Hive shell执行读/写查询,但不能直接执行。

我发现了许多与此问题相关的建议和答案。 在每一个建议中都提到了为每张桌子授予userX的许可。 但我不知道如何一劳永逸地为匿名用户设置权限。

为什么我在从直线或Java程序访问数据时让用户匿名?

我能够从beeline shell和使用Java JDBC连接读取数据。 但是我无法在表格中插入数据。

这是我的jdbc连接:jdbc:hive2:// hadoop01:10000。

下面是我在插入请求时得到的错误:

权限被拒绝:user = anonymous,access = WRITE,inode =“/ user / hive / warehouse / test_log / .hive -staging_hive_2017-10-07_06-54-36_347_6034469031019245441-1”:hadoop:supergroup:drwxr-xr-x

答案

直线语法是

beeline -n username -u "url"

我假设你错过了用户名。此外,除了hadoop用户之外,没有人能够对该表进行WRITE访问

如果您无法完全控制表权限,可以尝试使用hive.exec.stagingdir设置重定位登台目录

另一答案

如果没有在要连接的连接URL中指定数据库,例如

JDBC:hive2:// hadoop01:10000 /默认

然后直线连接到数据库DEFAULT,并在将数据插入表中时 - 首先将数据加载到默认数据库中的临时表,然后加载到实际表中。

因此,您还需要授予用户访问DEFAULT数据库的权限,或者您可以连接到您有权访问的数据库。

JDBC:hive2:// hadoop01:10000 / your_db

以上是关于使用beeline shell拒绝用户匿名的Hive权限的主要内容,如果未能解决你的问题,请参考以下文章

hive里的扩展接口

无法使用直线连接到配置单元,用户 root 无法模拟匿名

HIV组件

将 Beeline 生成的表格重定向到没有网格的文本文件(Shell 脚本)

SparkSQL介绍与Hive整合Spark的th/beeline/jdbc/thriftserve2shell方式使用SQL

如何在 asp.net core razor 页面中拒绝匿名用户?