簡體   English   中英

使用Beeline Shell拒絕用戶匿名的Hive權限

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM