kerberos环境下hive server2使用负载均衡异常

 hive server2在集群启用kerberos 环境下使用 haproxy 进行负载均衡时,会出现连接hive server2失败。异常产生的原因是hive server2实例DBTokenStore缓存的票据信息没有共享给其它实例,每个实例是独立的,客户端从一个hive server2获取票据,查询时可能访问的就是另外一个hive server2实例,导致失败。在这里有人可能就会想到用 ip hash负载方法将请求连接到同一台服务器,这种方法是解决不了这个问题的,举个例子:oozie 调度hive 任务,oozie首先从一个hive server2获取票据,hive任务调度时会在另外一个节点执行去访问另外一个hive server2。

解决方案:

  1. 在官方没有修改DBTokenStore前,可以将hive server2  delegation token store的存储策略改为:

 <property>

<name>hive.cluster.delegation.token.store.class</name>

<value>org.apache.hadoop.hive.thrift.ZooKeeperTokenStore</value>

</property>

2. 升级hive,cdh在5.13.0后修复了此问题,apache hive 在2.1版本后修复了此问题

 

 


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值