配置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 |