Livy Gateway配置示例

本文详细介绍了Livy的核心配置文件及其参数,帮助您在阿里云EMR Serverless Spark中正确配置Livy Gateway并使用相关功能。

spark-defaults.conf

作用

spark-defaults.conf文件用于设置通过Livy Gateway提交的Spark任务的默认参数。当用户创建Livy批处理或Session(会话)时,如果没有显式指定某些参数,则会自动使用这些默认值。

示例配置

以下是一些常见的默认参数配置。

spark.driver.cores 2
spark.driver.memory 7g
spark.dynamicAllocation.enabled true
spark.dynamicAllocation.initialExecutors 2
spark.dynamicAllocation.maxExecutors 100
spark.dynamicAllocation.minExecutors 1

涉及参数描述如下:

  • spark.driver.cores 和 spark.driver.memory:定义DriverCPU核心数和内存大小。

  • 动态资源分配相关参数:

    • spark.dynamicAllocation.enabled=true:启用动态资源分配。

    • spark.dynamicAllocation.minExecutorsspark.dynamicAllocation.maxExecutors:限制Executor的最小和最大数量。

    • spark.dynamicAllocation.initialExecutors:初始分配的Executor数量。

支持的增强参数

支持的增强参数是指阿里云EMR Serverless Spark提供的一些额外功能或扩展配置项,用于增强系统的安全性、灵活性或性能。这些参数通常针对特定场景(如多租户环境、权限管理等)设计,帮助用户更好地控制任务行为和资源分配。

参数

说明

spark.livy.proxyUser

用于指定用户提交Spark任务时的代理用户(proxy-user)。默认值为root

仅当livy.conf中的livy.impersonation.enabled设置为true时有效。配合spark-blacklist.conf可以防止用户修改proxyUser参数,确保安全性。

livy.conf

作用

livy.conf文件是Livy的核心配置文件,用于定义Livy Gateway的全局行为,包括鉴权方式、超时设置、会话管理等。

关键参数

参数

说明

livy.impersonation.enabled

是否允许用户通过proxyUser参数扮演Spark用户。默认值为false

livy.server.session.timeout

Session超时时间,超过时间不活跃的Session 会被自动关闭。默认值为2h

livy.server.session.timeout-check

是否检查超时的Session。默认值为true

如果设置为false,即使Session超时也不会被自动关闭。

livy.server.session.timeout-check.skip-busy

检查超时Session时是否跳过忙碌的Session。如果跳过,则不会关闭正在执行任务的Session。默认值为true

livy.server.auth.type

指定Livy Gateway的鉴权方式。例如,启用LDAP鉴权时设置为ldap

livy.server.auth.ldap.url

LDAP的地址。例如,ldap://master-1-1.c-xxxxxxxxxxxxx.cn-hangzhou.emr.aliyuncs.com:10389

livy.server.auth.ldap.base-dn

LDAP的基础DN。例如,ou=people,o=emr

livy.server.auth.ldap.enable-start-tls

是否开启LDAPTLS加密。默认值为false

livy.server.auth.ldap.security-authentication

LDAP的安全认证方式。默认值为simple

livy.server.session.state-retain.sec

结束的Session在内存中的保留时间。默认值为600s

livy.server.session.max-creation

同时创建的最大Session数量。默认值为100

livy-client.conf

作用

livy-client.conf文件用于定义Livy HTTP客户端的运行参数,主要用于优化客户端与Livy Gateway的交互行为。

关键参数

参数

说明

livy.rsc.retained-statements

Session内存中保留的最大statement数量。默认值为100。

livy.rsc.sql.num-rows

SQL解释器返回的最大行数。默认值为1000。

spark-blacklist.conf

作用

spark-blacklist.conf文件用于限制用户通过Livy Gateway提交的任务中不允许覆盖的参数。被列入黑名单的参数将被系统强制忽略,用户无法修改这些参数。

示例配置

以下是一些常见的黑名单参数示例。

spark.driver.cores
spark.driver.memory
spark.executor.cores
spark.executor.memory

该配置表示用户无法自行设定Spark DriverExecutor的资源(如CPU核心数和内存大小),从而防止资源滥用。

支持的增强参数

spark-blacklist.conf还支持以下增强参数,进一步提升任务的安全性和稳定性。

参数

说明

spark.livy.ttl

不允许用户设定Session的存活时间(TTL)。

确保Session的存活时间由管理员统一管理,避免用户设置过长或过短的TTL导致资源浪费或任务中断。

spark.livy.queue

不允许用户设定提交任务的队列。

所有任务默认采用Livy Gateway的队列,避免用户随意选择队列导致资源分配不均。

spark.livy.proxyUser

不允许用户设定代理用户(proxy-user)。默认为root用户。