MapReduce服务 MRS-Spark2x多租户:实现方案

时间:2025-02-12 15:03:44

实现方案

多租户模式的HA方案原理如图1所示。

图1 Spark JD BCS erver多租户
  1. ProxyServer在启动时,向ZooKeeper注册自身消息,在指定目录中写入节点信息,节点信息包含了该实例对应的IP,端口,版本号和序列号等信息(多节点信息之间以逗号隔开)。

    多租户模式下, MRS 页面上的JDB CS erver实例是指ProxyServer(JDBCServer代理)。

    示例如下:
    serverUri=192.168.169.84:22550;version=8.1.0.1;sequence=0000001244,serverUri=192.168.195.232:22550;version=8.1.0.1;sequence=0000001242,serverUri=192.168.81.37:22550;version=8.1.0.1;sequence=0000001243, 
  2. 客户端连接ProxyServer时,需要指定Namespace,即访问ZooKeeper哪个目录下的ProxyServer实例。在连接的时候,会根据当前租户名的Hash值与Zookeeper下的Namespace实例个数取模获取连接的实例,详细URL参见URL连接介绍
  3. 客户端成功连接ProxyServer服务,ProxyServer服务首先确认是否有该租户的JDBCServer存在,如果有,直接将Beeline连上真正的JDBCServer;如果没有,则以YARN-Cluster模式启动一个新的JDBCServer。JDBCServer启动成功后,ProxyServer会获取JDBCServer的地址,并将Beeline连上JDBCServer。
  4. 客户端发送SQL语句给ProxyServer,ProxyServer将语句转交给真正连上的JDBCServer处理。最后JDBCServer服务将结果返回给ProxyServer,ProxyServer再将结果返回给客户端。

在HA方案中,每个ProxyServer服务(即实例)都是独立且等同的,当其中一个实例在升级或者业务中断时,其他的实例也能接受客户端的连接请求。

support.huaweicloud.com/productdesc-mrs/mrs_08_007104.html