![](/img/trans.png)
[英]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.