使用Beeline Shell拒绝用户匿名的Hive权限

sac*_*hin 2 hadoop hive beeline

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

我可以从Hive外壳执行读/写查询,但不能执行直线操作。

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

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

我既可以从beeline外壳读取数据,也可以使用Java JDBC连接读取数据。
但是我不能在表中插入数据。

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

以下是我在插入请求时遇到的错误:

权限被拒绝:用户=匿名,访问=写,inode =“ / user / hive / warehouse / test_log / .hive-staging_hive_2017-10-07_06-54-36_347_6034469031019245441-1”:hadoop:supergroup:drwxr-xr-x

cri*_*007 6

直线语法为

beeline -n username -u "url"
Run Code Online (Sandbox Code Playgroud)

我认为您缺少用户名。另外,除了hadoop用户以外,其他任何人都没有对该表的WRITE访问权限

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