Kyuubi高可用架构

2022-04-14 15:35:50 浏览数 (1)

作为建立在 Apache Spark 之上的企业级即席 SQL 查询服务,Kyuubi 以高可用性 (HA) 为主要特征,旨在确保约定的服务可用性级别,例如高于正常运行时间。

在 HA 模式下运行 Kyuubi 是在 Kyuubi 上使用支持 SQL 查询服务的计算机或容器组,这些服务可以在最少的停机时间内可靠地使用。 Kyuubi 通过使用 Apache ZooKeeper 来利用组中的冗余服务实例,当一个或多个组件发生故障时提供连续服务。

如果没有 HA,如果服务器崩溃,在修复崩溃的服务器之前,Kyuubi 将不可用。 使用 HA,这种情况将通过自动检测硬件/软件故障得到补救,并且另一个 Kyuubi 服务实例将立即准备好服务,而无需人工干预。

高可用架构

目前,Kyuubi 支持负载均衡,使整个系统高可用。

负载均衡旨在优化所有 Kyuubi 服务单元的使用,最大化吞吐量,最小化响应时间,避免单个单元过载。 使用具有负载平衡功能的多个 Kyuubi 服务单元而不是单个单元可以通过冗余提高可靠性和可用性。

主要优势

  1. 高并发 通过添加或删除 Kyuubi 服务器实例可以轻松地扩展或缩减以满足客户端请求的需要。
  2. 平滑升级 Kyuubi 服务器支持优雅停止。 我们可以删除一个 k.i. 但不会立即停止。 在这种情况下,k.i. 不会接受任何新的连接请求,而只会接受来自现有连接的操作请求。 释放所有连接后,它会停止。

部署指南

在将 HA 应用于 Kyuubi 部署时,我们需要基本了解以下两件事,

  • kyuubi.ha.zookeeper.quorum – 部署 k.i. 的外部 zookeeper 集群地址。
  • kyuubi.ha.zookeeper.namespace – 根目录,也就是部署 k.i 的服务器空间。

更多配置请参见Kyuubi配置系统简介的HA部分

伪分布模式

当 kyuubi.ha.zookeeper.quorum 没有配置时,一个 k.i. 将启动一个内嵌的 zookeeper 服务。 在这种伪模式下,k.i. 客户端可以通过原始 IP 地址和 zk quorum 命名空间连接。 但它没有任何高可用性的可用性。

生产模式

出于生产部署目的,kyuubi.ha.zookeeper.quorum 需要一个外部 Zookeeper 集群。 在这种模式下,可以将多个 k.i.s 注册到 kyuubi.ha.zookeeper.namespace 配置的同一个 ServerSpace 并一起服务。

客户端使用

使用 Kyuubi Hive JDBC Driver 或 vanilla Hive JDBC Driver,客户端可以在 JDBC 连接字符串中指定服务发现模式,即 serviceDiscoveryMode=zooKeeper; 并设置 zooKeeperNamespace=kyuubi;,则可以从 /kyuubi 路径中指定的 ZooKeeper 地址中随机选择一个 Kyuubi 服务 uri。

例如:

代码语言:javascript复制
bin/beeline -u 'jdbc:hive2://10.242.189.214:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=kyuubi' -n kentyao

本文为从大数据到人工智能博主「xiaozhch5」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://lrting.top/backend/bigdata/kyuubi/kyuubi-basic/4429/

0 人点赞