拒绝使用beeline shell的匿名用户的配置单元权限

8xiog9wr  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(455)

我创建了一个3节点 Hadoop 具有1个namenode和2个datanode的群集。
我可以从中执行读/写查询 Hive 贝壳,但不是直线。
我发现了许多与这个问题相关的建议和答案。
在每一项建议中,都提到要允许 userX 对于每个单独的表。
但我不知道如何一次性地为匿名用户设置权限。
为什么在从beeline或java程序访问数据时让用户匿名?
我能够从beelineshell和使用javajdbc连接读取数据。
但我不能在表中插入数据。
这是我的jdbc连接:jdbc:hive2://hadoop01:10000。
以下是我在请求插入时遇到的错误:
权限被拒绝:user=anonymous,access=write,inode=“/user/hive/warehouse/test\u log/.hive-staging\u hive\u 2017-10-07\u 06-54-36\u 347\u 6034469031019245441-1”:hadoop:supergroup:drwxr-xr-x

cqoc49vn

cqoc49vn1#

如果在连接url中没有指定要连接的数据库,例如
jdbc:hive2://hadoop01:10000/默认值
然后beeline连接到数据库default,并在将数据插入表时-首先将数据加载到default数据库中的临时表,然后再加载到实际表。
因此,您还需要为用户提供对默认数据库的访问权限,或者您可以连接到您有权访问的数据库。
jdbc:hive2://hadoop01:10000/您的\u db

nhhxz33t

nhhxz33t2#

直线语法是

beeline -n username -u "url"

我猜你缺少用户名了。另外,除了hadoop用户之外,没有人可以对该表进行写访问
如果您对表权限没有完全控制权,可以尝试使用设置重新定位临时目录 hive.exec.stagingdir

相关问题