[英]Cannot connect to hive using beeline, user root cannot impersonate anonymous
[英]Hive permission denied for user anonymous using beeline shell
我创建了一个具有1个namenode和2个datanode的3节点Hadoop
集群。
我可以从Hive
Shell执行读/写查询,但不能执行beeline。
我发现了许多与此问题相关的建议和答案。
在每个建议中都提到要为每个单独的表授予userX
权限。
但是我不知道如何一劳永逸地为匿名用户设置权限。
为什么在从直线或Java程序访问数据时让用户匿名?
我既可以从beeline外壳读取数据,也可以使用Java JDBC连接读取数据。
但是我不能在表中插入数据。
这是我的jdbc连接:jdbc:hive2:// hadoop01:10000。
以下是我在插入请求时遇到的错误:
权限被拒绝:user =匿名,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 /默认
然后beeline连接到数据库DEFAULT ,并在将数据插入表中时-首先将数据加载到默认数据库中的临时表中,然后再加载到实际表中。
因此,您还需要授予用户访问DEFAULT数据库的权限,或者可以连接到您有权访问的数据库。
JDBC:hive2:// hadoop01:10000 / your_db
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.