为什么oozie hive2的行动失败了?

时间:2017-02-13 15:55:37

标签: hadoop hive hdfs kerberos oozie

我们正在将现有(生产CDH 5.8群集)oozie + hive2作业迁移到新的CDH 5.8群集。遗憾的是,迁移后hive2操作失败并出现以下错误。

  

错误:无法使用JDBC Uri打开客户端传输:   jdbc:hive2://xxxxx.yyy.net:10000 / default:Peer表示失败:   DIGEST-MD5:IO错误获取\密码(状态= 08S01,代码= 0)

有人可以帮我理解以下错误消息的原因吗?

1 个答案:

答案 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在CDH中与HIVE-12270一起稳定。

CM> Hive>配置>用于hive-site.xml的HiveServer2高级配置代码段(安全阀)并输入:

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

CM&gt; Hive&gt;配置&gt;用于hive-site.xml的Hive Metastore Server高级配置代码段(安全阀)并输入:

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

(如果您已将“Hive Metastore委托令牌存储”设置为“org.apache.hadoop.hive.thrift.DBTokenStore”,则此选项可以选择)