2017-02-13 261 views
0

我們正在將現有的(生產CDH 5.8集羣)oozie + hive2作業遷移到新的CDH 5.8集羣。不幸的是,遷移後,hive2操作失敗,出現以下錯誤。爲什麼oozie hive2操作失敗?

Error: Could not open client transport with JDBC Uri: jdbc:hive2://xxxxx.yyy.net:10000/default: Peer indicated failure: DIGEST-MD5: IO error acquiring \ password (state=08S01,code=0)

有人能幫我理解下面的錯誤信息的原因嗎?

+0

hive.server2.use.SSL已禁用,我們的羣集已通過KERBEROS身份驗證。你認爲該物業仍然有效? –

+0

「hive.server2.thrift.sasl.qop」的值是多少? – franklinsijo

+0

參數本身不存在於配置文件中。 –

回答

0

在某些環境中,默認的Hive Kerberos委託令牌存儲方法可能會導致Oozie HiveServer2操作失敗。 Cloudera建議使用org.apache.hadoop.hive.thrift.ZooKeeperTokenStore或連接到負載均衡器後面的單個HiveServer2實例,以避免此連接失敗。

當負載平衡器使用多個HiveServer2實例前端時,Oozie Hive2操作可以啓動連接並在第一個HiveServer2上獲得委託令牌,然後由於負載平衡,在下一個HiveServer2時獲得另一個連接進行查詢。這會導致第二個連接失敗。

對於HiveMetaStore HA,建議使用DBTokenStore而不是ZookeeperTokenStore,以便更好地支持大量的HiveMetaStore請求。對於HiveServer2 HA,使用ZookeeperTokenStore,直到DBTokenStore在HIVE-12270的CDH中變得穩定。

CM>配置單元>配置> HiveServer2高級配置片段(安全閥)的蜂房的site.xml,然後輸入:

<property> 
    <name>hive.cluster.delegation.token.store.class</name>  
    <value>org.apache.hadoop.hive.thrift.ZooKeeperTokenStore</value> 
</property> 

CM>配置單元>配置>蜂巢Metastore Server高級配置片段(安全閥)爲蜂房的site.xml,然後輸入:

<property> 
    <name>hive.cluster.delegation.token.store.class</name> 
    <value>org.apache.hadoop.hive.thrift.DBTokenStore</value> </property> 

(這是可選的,如果你設置了「蜂巢Metastore代表團令牌存儲裝置」,以「org.apache.hadoop.hive.thrift.DBTokenStore」)