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



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

最佳答案

在某些环境中,默认的Hive Kerberos委派 token 存储方法可能导致Oozie HiveServer2操作失败。 Cloudera建议使用org.apache.hadoop.hive.thrift.ZooKeeperTokenStore,或连接到负载均衡器后面的单个HiveServer2实例,以避免此连接失败。

当使用负载平衡器前端的多个HiveServer2实例时,Oozie Hive2操作可以启动连接并在第一个HiveServer2上获取委派 token ,然后由于负载平衡,在进行查询时获得与下一个HiveServer2的另一个连接。这将导致第二个连接失败。

对于HiveMetaStore HA,建议使用DBTokenStore而不是ZookeeperTokenStore,以便更好地支持对HiveMetaStore的大量请求。对于HiveServer2 HA,请使用ZookeeperTokenStore,直到DBTokenStore通过HIVE-12270在CDH中变得稳定为止。

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> Hive>配置> 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授权 token 存储”设置为“org.apache.hadoop.hive.thrift.DBTokenStore”,则这是可选的)

关于hadoop - 为什么oozie hive2 Action 失败?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42208225/

10-13 01:14