[Hive] - Beeline 偶发 Unable to read HiveServer2 uri from ZooKeeper 问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Hive] - Beeline 偶发 Unable to read HiveServer2 uri from ZooKeeper 问题相关的知识,希望对你有一定的参考价值。
参考技术A 用户有大量的并发 beeline hive sql 任务,偶发 Unable to read HiveServer2 uri from ZooKeeper 报错。
hive 版本:hdp 1.2.1
修改 beeline connect url 增加 retries。
beeline url 修改前:
beeline url 修改后 :
通过阅读源码,hiveserver2 连接步骤大致如下:
1)获取连接 url,如果是 serviceDiscoveryMode=zooKeeper ,动态的方式获取真正的连接信息与配置
2)通过 ZK 获取 hiveserver2 所有节点,对应的路径为/hiveserver2/。路径格式为: "/" + zooKeeperNamespace :这个 zooKeeperNamespace 就是连接串里面配置的 hiveserver2。
3)从 list 中随机取一个 Znode,获取 zk 中 Znode 的值
4)解析 url ,获取真正的 hiveserver2 的地址与端口等信息
5)创建连接,支持重试
问题在于:
一个小建议:遇到此类问题,直接看源码是最好的, 不要去网上瞎找。
Hive 3.x 的版本请注意这个 issue: https://issues.apache.org/jira/browse/HIVE-19825 ,也可能会导致随机的失败
以上是关于[Hive] - Beeline 偶发 Unable to read HiveServer2 uri from ZooKeeper 问题的主要内容,如果未能解决你的问题,请参考以下文章
Hive 8Hive2 beeline 和 Hive jdbc