Beeline連線Hiveserver2錯誤

2021-09-26 18:44:38 字數 1510 閱讀 3885

錯誤定位

最近給hadoop集群配置了kerberos認證,之後準備配置sentry進行許可權管理。安裝並啟用sentry服務後需要在beeline進行grant等授權操作。

note that since hive cli does not work with hiveserver2, it cannot be used to configure sentry permissions.
在啟用sentry之前基本都用的hive cli,所以也沒有注意到beeline的問題,在嘗試進行連線後beeline出現錯誤:

error: could not open client transport with jdbc uri: jdbc:hive2://test-1:10000/default;: peer indicated failure: unsupported mechanism type plain (state=08s01,code=0)

出現這個錯誤是因為連線時沒有提供kerberos的principal資訊應該如下進行連線:

!connect jdbc:hive2://localhost:10000/default;principal=hive/[email protected]但是仍出現錯

誤:error: could not establish connection to jdbc:hive2://test-1:10000/default;principal=hive/test-

[email protected]: required field 'client_protocol' is unset! struct:topensessionreq(client_protocol:null,

configuration:) (state=08s01,code=0)

針對這個錯誤,在網上搜到了這樣的結果確認是beeline client的版本比hiveserver2的版本要高之後檢查jar包classpath中/opt/cloudera/parcels/cdh-5.3.0-1.cdh5.3.0.p0.30/jars/hive-jdbc-0.13.1-cdh5.3.0.jar和lib中/opt/cloudera/parcels/cdh-5.3.0-1.cdh5.3.0.p0.30/lib/hive/lib/hive-jdbc-0.13.1-cdh5.3.0.jar的jar包版本都對無果。最後留意到登入beeline後顯示

beeline version 1.5.2 by apache hive

beeline>

在其他節點登入beeline時顯示

beeline version 0.13.1-cdh5.3.0 by apache hive

beeline>

終於確定問題所在

解決

用其他節點客戶端登入,或者更換beeline版本

hive的beeline連線方式

補充 關於後台執行任務的一些補充 1.這個用在乙個命令的最後,可以把這個命令放到後台執行 2.ctrl z 可以將乙個正在前台執行的命令放到後台,並且暫停 3.jobs 檢視當前有多少在後台執行的命令 4.fg 將後台中的命令調至前台繼續執行 如果後台中有多個命令,可以用 fg 後台程序號,將選中的...

beeline連線hive Hive行轉列詳解

孫悟空 白羊座 a 沙悟淨 射手座 a 宋鬆鬆 白羊座 b 豬八戒 白羊座 a 小鳳姐 射手座 a 轉換成以下格式 白羊座,a 孫悟空 豬八戒 白羊座,b 宋鬆鬆 射手座,a 沙悟淨 小鳳姐 知識點 concat string1,string2 string1和string2需要是列名 使用hive...

hive使用beeline配置遠端連線

hive以hadoop集群為基礎,提供hdfs的sql支援 介紹hive的遠端訪問 未配置之前使用beeline的話,每次都要為連線輸入使用者名稱密碼,較為麻煩 實現目標 在非集群節點上敲beeline命令,直接進入到hive的命令列 1,在hive服務的安裝節點的hive site.xml配置檔案...