配置Spark多租户模式
配置场景
多租户模式是将JDBCServer和租户绑定,每一个租户对应一个或多个JDBCServer,一个JDBCServer只给一个租户提供服务。不同的租户可以配置不同的Yarn队列,从而达到资源隔离。
Yarn资源不足情况下,不建议开启多租户模式。
配置描述
登录Manager,选择“集群 > 待操作集群的名称 > 服务 > Spark2x > 配置”,单击“全部配置”,搜索并修改以下参数。
| 参数 | 说明 | 默认值 |
|---|---|---|
| spark.proxyserver.hash.enabled | 是否使用Hash算法连接ProxyServer。
| true 说明: 该参数修改后需要重新下载客户端。 |
| spark.thriftserver.proxy.enabled | 是否使用多租户模式。
| true |
| spark.thriftserver.proxy.maxThriftServerPerTenancy | 多租户模式下,一个租户可启动JDBCServer实例的最大个数。 | 1 |
| spark.thriftserver.proxy.maxSessionPerThriftServer | 多租户模式下,单个JDBCServer实例的session数量超过该值时,如果租户的JDBCServer最大实例数量没超过限制,则启动新的JDBCServer,否则输出警告日志。 | 50 |
| spark.thriftserver.proxy.sessionWaitTime | 多租户模式下,当JDBCServer的session连接数为0时,停止JDBCServer前的等待时间。 | 180000 |
| spark.thriftserver.proxy.sessionThreshold | 多租户模式下,当JDBCServer的session使用率(公式:当前session数 / (spark.thriftserver.proxy.maxSessionPerThriftServer * 当前JDBCServer个数))达到阈值时,自动新增JDBCServer。 | 100 |
| spark.thriftserver.proxy.healthcheck.period | 多租户模式下,JDBCServer代理检查JDBCServer健康状态周期。 | 60000 |
| spark.thriftserver.proxy.healthcheck.recheckTimes | 多租户模式下,JDBCServer代理检查JDBCServer健康状态失败后重试次数。 | 3 |
| spark.thriftserver.proxy.healthcheck.waitTime | 多租户模式下,JDBCServer代理发送健康检查,等待JDBCServer响应的超时时间。 | 10000 |
| spark.thriftserver.proxy.session.check.interval | 多租户模式下,JDBCServer代理检查session的周期。 | 6h |
| spark.thriftserver.proxy.idle.session.timeout | 多租户模式下,JDBCServer代理session的空闲超时时间。如果在这段时间内没有做任何操作,session会被关闭。 | 7d |
| spark.thriftserver.proxy.idle.session.check.operation | 多租户模式下,JDBCServer代理session的过期是否要判断该session上还存在operation。 | true |
| spark.thriftserver.proxy.idle.operation.timeout | 多租户模式下,operation的超时时间。如果operation超时,operation会被关闭。 | 5d |
| hive.spark.client.server.connect.timeout | 多租户模式下,客户端连接超时时间。 | 5min |