hadoop - 使用直线 shell 拒绝匿名用户的 Hive 权限

标签 hadoop hive beeline

我创建了一个包含 1 个名称节点和 2 个数据节点的 3 节点 Hadoop 集群。

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

我找到了很多与这个问题相关的建议和答案。
在每个建议中都提到了为每个单独的表授予 userX 的权限。
但是我不知道如何一劳永逸地为匿名用户设置权限。

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

我能够从直线外壳和使用 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 重新定位暂存目录

关于hadoop - 使用直线 shell 拒绝匿名用户的 Hive 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46606303/

相关文章:

hadoop - Hadoop的连接被拒绝错误

mysql - hive 中的分区

hadoop - Hive CLI和Beeline jdbc:hive2在执行引擎tez中对插入百万条记录的行为有所不同吗?

java - 通过 Java Program 传递 Hadoop 程序命令

hadoop - 尝试运行 Hadoop 2.4.0 时出错(-bash : bin/start-all. sh:没有这样的文件或目录)

hadoop - 如何使用cloudera演示虚拟机设置hadoop集群

apache-spark - parquet支持哪些压缩类型

hadoop - 我们可以在同一群集中安装多个配置单元服务器吗?

hadoop - 使用 Beeline 连接到 Hive