FE 配置项
FE 参数分为动态参数和静态参数。
-
动态参数可通过 SQL 命令进行在线配置和调整,方便快捷。需要注意通过 SQL 命令所做的动态设置在重启 FE 后会失效。如果想让设置长期生效,建议同时修改 fe.conf 文件。
-
静态参数必须在 FE 配置文件 fe.conf 中进行配置和调整。调整完成后,需要重启 FE 使变更生效。
参数是否为动态参数可通过 ADMIN SHOW CONFIG 返回结果中的 IsMutable
列查看。TRUE
表示动态参数。
静态和动态参数均可通过 fe.conf 文件进行修改。
查看 FE 配置项
FE 启动后,您可以在 MySQL 客户端执行 ADMIN SHOW FRONTEND CONFIG 命令来查看参数配置。如果您想查看具体参数的配置,执行如下命令:
ADMIN SHOW FRONTEND CONFIG [LIKE "pattern"];
详细的命令返回字段解释,参见 ADMIN SHOW CONFIG。
只有拥有 cluster_admin
角色的用户才可以执行集群管理相关命令。
配置 FE 参数
配置 FE 动态参数
您可以通过 ADMIN SET FRONTEND CONFIG 命令在线修改 FE 动态参数。
ADMIN SET FRONTEND CONFIG ("key" = "value");
动态设置的配置项,在 FE 重启之后会恢复成 fe.conf 文件中的配置或者默认值。如果需要让配置长期生效,建议设置完之后同时修改 fe.conf 文件,防止重启后修改失效。
配置 FE 静态参数
FE 静态参数不支持在线修改,您需要在 fe.conf
中修改并重启 FE 以使修改生效。
FE 参数描述
日志
log_roll_size_mb
- 默认值:1024
- 类型:Int
- 单位:MB
- 是否动态:否
- 描述:单个系统日志或审计日志文件的大小上限。
- 引入版本:-
sys_log_dir
- 默认值:StarRocksFE.STARROCKS_HOME_DIR + "/log"
- 类型:String
- 单位:-
- 是否动态:否
- 描述:系统日志文件的保存目录。
- 引入版本:-
sys_log_level
- 默认值:INFO
- 类型:String
- 单位:-
- 是否动态:否
- 描述:系统日志的级别,从低到高依次为
INFO
、WARN
、ERROR
、FATAL
。 - 引入版本:-
sys_log_roll_num
- 默认值:10
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:每个
sys_log_roll_interval
时间段内,允许保留的系统日志文件的最大数目。 - 引入版本:-
sys_log_verbose_modules
- 默认值:空字符串
- 类型:String[]
- 单位:-
- 是否动态:否
- 描述:打印系统日志的模块。如果设置参数取值为
org.apache.starrocks.catalog
,则表示只打印 Catalog 模块下的日志。 - 引入版本:-
sys_log_roll_interval
- 默认值:DAY
- 类型:String
- 单位:-
- 是否动态:否
- 描述:系统日志滚动的时间间隔。取值范围:
DAY
和HOUR
。- 取值为
DAY
时,日志文件名的后缀为yyyyMMdd
。 - 取值为
HOUR
时,日志文件名的后缀为yyyyMMddHH
。
- 取值为
- 引入版本:-
sys_log_delete_age
- 默认值:7d
- 类型:String
- 单位:-
- 是否动态:否
- 描述:系统日志文件的保留时长。默认值
7d
表示系统日志文件可以保留 7 天,保留时长超过 7 天的系统日志文件会被删除。 - 引入版本:-
audit_log_dir
- 默认值:StarRocksFE.STARROCKS_HOME_DIR + "/log"
- 类型:String
- 单位:-
- 是否动态:否
- 描述:审计日志文件的保存目录。
- 引 入版本:-
audit_log_roll_num
- 默认值:90
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:每个
audit_log_roll_interval
时间段内,允许保留的审计日志文件的最大数目。 - 引入版本:-
audit_log_modules
- 默认值:slow_query, query
- 类型:String[]
- 单位:-
- 是否动态:否
- 描述:打印审计日志的模块。默认打印
slow_query
和query
模块的日志。自 v3.0 起 支持connection
模块,即连接日志。可以指定多个模块,模块名称之间用英文逗号加一个空格分隔。 - 引入版本:-
qe_slow_log_ms
- 默认值:5000
- 类型:Long
- 单位:Milliseconds
- 是否动态:是
- 描述:Slow query 的认定时长。如果查询的响应时间超过此阈值,则会在审计日志
fe.audit.log
中记录为 slow query。 - 引入版本:-
audit_log_roll_interval
- 默认值:DAY
- 类型:String
- 单位:-
- 是否动态:否
- 描述:审计日志滚动的时间间隔。取值范围:
DAY
和HOUR
。- 取值为
DAY
时,日志文件名的后缀为yyyyMMdd
。 - 取值为
HOUR
时,日志文件名的后缀为yyyyMMddHH
。
- 取值为
- 引入版本:-
audit_log_delete_age
- 默认值:30d
- 类型:String
- 单位:-
- 是否动态:否
- 描述:审计日志文件的保留时长。默认值
30d
表示审计日志文件可以保留 30 天,保留时长超过 30 天的审计日志文件会被删除。 - 引入版本:-
dump_log_dir
- 默认值:StarRocksFE.STARROCKS_HOME_DIR + "/log"
- 类型:String
- 单位:-
- 是否动态:否
- 描述:Dump 日志文件的保存目录。
- 引入版本:-
dump_log_roll_num
- 默认值:10
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:每个
dump_log_roll_interval
时间内,允许保留的 Dump 日志文件的最大数目。 - 引入版本:-
dump_log_modules
- 默认值:query
- 类型:String[]
- 单位:-
- 是否动态:否
- 描述:打印 Dump 日志的模块。默认打印 query 模块的日志。可以指定多个模块,模块名称之间用英文逗号加一个空格分隔。
- 引入版本:-
dump_log_roll_interval
- 默认值:DAY
- 类型:String
- 单位:-
- 是否动态:否
- 描述:Dump 日志滚动的时间间隔。取值范围:
DAY
和HOUR
。- 取值为
DAY
时,日志文件名的后缀为yyyyMMdd
。 - 取值为
HOUR
时,日志文件名的后缀为yyyyMMddHH
。
- 取值为
- 引入版本:-
dump_log_delete_age
- 默认值:7d
- 类型:String
- 单位:-
- 是否动态:否
- 描述:Dump 日志文件的保留时长。默认值
7d
表示 Dump 日志文件可以保留 7 天,保留时长超过 7 天的 Dump 日志文件会被删除。 - 引入版本:-
Server
frontend_address
- 默认值:0.0.0.0
- 类型:String
- 单位:-
- 是否动态:否
- 描述:FE 节点的 IP 地址。
- 引入版本:-
priority_networks
- 默认值:空字符串
- 类型:String
- 单位:-
- 是否动态:否
- 描述:为那些有多个 IP 地址的服务器声明一个选择策略。 请注意,最多应该有一个 IP 地址与此列表匹配。这是一个以分号分隔格式的列表,用 CIDR 表示法,例如
10.10.10.0/24
。 如果没有匹配这条规则的ip,会随机选择一个。 - 引入版本:-
http_port
- 默认值:8030
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:FE 节点上 HTTP 服务器的端口。
- 引入版本:-
http_worker_threads_num
- 默认值:0
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:Http Server 用于处理 HTTP 请求的线程数。如果配置为负数或 0 ,线程数将设置为 CPU 核数的 2 倍。
- 引入版本:v2.5.18,v3.0.10,v3.1.7,v3.2.2
http_backlog_num
- 默认值:1024
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:HTTP 服务器支持的 Backlog 队列长度。
- 引入版本:-
cluster_name
- 默认值:StarRocks Cluster
- 类型:String
- 单位:-
- 是否动态:否
- 描述:FE 所在 StarRocks 集群的名称,显示为网页标题。
- 引入版本:-
rpc_port
- 默认值:9020
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:FE 节点上 Thrift 服务器的端口。
- 引入版本:-
thrift_server_max_worker_threads
- 默认值:4096
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:Thrift 服务器支持的最大工作线程数。
- 引入版本:-
thrift_server_queue_size
- 默认值:4096
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:Thrift 服务器 pending 队列长度。如果当前处理线程数量超过了配置 项
thrift_server_max_worker_threads
的值,则将超出的线程加入 Pending 队列。 - 引入版本:-
thrift_client_timeout_ms
- 默认值:5000
- 类型:Int
- 单位:Milliseconds
- 是否动态:否
- 描述:Thrift 客户端链接的空闲超时时间,即链接超过该时间无新请求后则将链接断开。
- 引入版本:-
thrift_backlog_num
- 默认值:1024
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:Thrift 服务器支持的 Backlog 队列长度。
- 引入版本:-
brpc_idle_wait_max_time
- 默认值:10000
- 类型:Int
- 单位:ms
- 是否动态:否
- 描述:bRPC 的空闲等待时间。
- 引入版本:-
query_port
- 默认值:9030
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:FE 节点上 MySQL 服务器的端口。
- 引入版本:-
mysql_nio_backlog_num
- 默认值:1024
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:MySQL 服务器支持的 Backlog 队列长度。
- 引入版本:-
mysql_service_nio_enabled
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否动态:否
- 描述:是否开启 MySQL 服务器的异步 I/O 选项。
- 引入版本:-
mysql_service_io_threads_num
- 默认值:4
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:MySQL 服务器中用于处理 I/O 事件的最大线程数。
- 引入版本:-
max_mysql_service_task_threads_num
- 默认值:4096
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:MySQL 服务器中用于处理任务的最大线程数。
- 引入版本:-
mysql_server_version
- 默认值:5.1.0
- 类型:String
- 单位:-
- 是否动态:是
- 描述:MySQL 服务器的版本。修改该参数配置会影响以下场景中返回的版本号:
select version();
- Handshake packet 版本
- 全局变量
version
的取值 (show variables like 'version';
)
- 引入版本:-
qe_max_connection
- 默认值:4096
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:FE 支持的最大连接数,包括所有用户发起的连接。默认值由 v3.1.12、v3.2.7 起由
1024
变为4096
。 - 引入版本:-
max_connection_scheduler_threads_num
- 默认值:4096
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:连接调度器支持的最大线程数。
- 引入版本:-
元数据与集群管理
cluster_id
- 默认值:-1
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:FE 所在 StarRocks 集群的 ID。具有相同集群 ID 的 FE 或 BE 属于同一个 StarRocks 集群。取值范围:正整数。默认值
-1
表示在 Leader FE 首次启动时随机生成一个。 - 引入版本:-
meta_dir
- 默认值:StarRocksFE.STARROCKS_HOME_DIR + "/meta"
- 类型:String
- 单位:-
- 是否动态:否
- 描述:元数据的保存目录。
- 引入版本:-
edit_log_type
- 默认值:BDB
- 类型:String
- 单位:-
- 是否动态:否
- 描述:编辑日志的类型。取值只能为
BDB
。 - 引入版本:-
edit_log_port
- 默认值:9010
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:FE 所在 StarRocks 集群中各 Leader FE、Follower FE、Observer FE 之间通信用的端口。
- 引入版本:-
edit_log_roll_num
- 默认值:50000
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:该参数用于控制日志文件的大小,指定了每写多少条元数据日志,执行一次日志滚动操作来为这些日志生成新的日志文件。新日志文件会写入到 BDBJE Database。
- 引入版本:-
ignore_unknown_log_id
- 默认值:false
- 类型:Boolean
- 单位:-
- 是否动态:是
- 描述:是否忽略未知的 logID。当 FE 回滚到低版本时,可能存在低版本 FE 无法识别的 logID。如果设置为
TRUE
,则 FE 会忽略这些 logID;否则 FE 会退出。 - 引入版本:-
meta_delay_toleration_second
- 默认值:300
- 类型:Int
- 单位:Seconds
- 是否动态:是
- 描述:FE 所在 StarRocks 集群中,非 Leader FE 能够容忍的元数据落后的最大时间。如果非 Leader FE 上的元数据与 Leader FE 上的元数据之间的延迟时间超过该参数取值,则该非 Leader FE 将停止服务。
- 引入版本:-
master_sync_policy
-
默认值:SYNC
-
类型:String
-
单位:-
-
是否动态:否
-
描述:FE 所在 StarRocks 集群中,Leader FE 上的日志刷盘方式。该参数仅在当前 FE 为 Leader 时有效。取值范围:
SYNC
:事务提交时同步写日志并刷盘。NO_SYNC
:事务提交时不同步写日志。WRITE_NO_SYNC
:事务提交时同步写日志,但是不刷盘。
如果您只部署了一个 Follower FE,建议将其设置为
SYNC
。 如果您部署了 3 个及以上 Follower FE,建议将其与下面的replica_sync_policy
均设置为WRITE_NO_SYNC
。 -
引入版本:-
replica_sync_policy
- 默认值:SYNC
- 类型:String
- 单位:-
- 是否动态:否
- 描述:FE 所在 StarRocks 集群中,Follower FE 上的日志刷盘方式。取值范围:
SYNC
:事务提交时同步写日志并刷盘。NO_SYNC
:事务提交时不同步写日志。WRITE_NO_SYNC
:事务提交时同步写日志,但是不刷盘。
- 引入版本:-
replica_ack_policy
- 默认值:SIMPLE_MAJORITY
- 类型:String
- 单位:-
- 是否动态:否
- 描述:判定日志是否有效的策略,默认值表示多数 Follower FE 返回确认消息,就认为生效。
- 引入版本:-
bdbje_heartbeat_timeout_second
- 默认值:30
- 类型:Int
- 单位:Seconds
- 是否动态:否
- 描述:FE 所在 StarRocks 集群中 Leader FE 和 Follower FE 之间的 BDB JE 心跳超时时间。
- 引入版本:-
bdbje_replica_ack_timeout_second
- 默认值:10
- 类型:Int
- 单位:Seconds
- 是否动态:否
- 描述:FE 所在 StarRocks 集群中,元数据从 Leader FE 写入到多个 Follower FE 时,Leader FE 等待足够多的 Follower FE 发送 ACK 消息的超时时间。当写入的元数据较多时,可能返回 ACK 的时间较长,进而导致等待超时。如果超时,会导致写元数据失败,FE 进程退出,此时可以适当地调大该参数取值。
- 引入版本:-
bdbje_lock_timeout_second
- 默认值:1
- 类型:Int
- 单位:Seconds
- 是否动态:否
- 描述:BDB JE 操作的锁超时时间。
- 引入版本:-
bdbje_reset_election_group
- 默认值:false
- 类型:String
- 单位:-
- 是否动态:否
- 描述:是否重置 BDBJE 复制组。如果设置为
TRUE
,FE 将重置 BDBJE 复制组(即删除所有 FE 节点的信息)并以 Leader 身份启动。重置后,该 FE 将成为集群中唯一的成员,其他 FE 节点通过ALTER SYSTEM ADD/DROP FOLLOWER/OBSERVER 'xxx'
重新加入该集群。仅当无法成功选举出 leader FE 时(因为大部分 follower FE 数据已损坏)才使用此配置。该参数用来替代metadata_failure_recovery
。 - 引入版本:-
max_bdbje_clock_delta_ms
- 默认值:5000
- 类型:Long
- 单位:Milliseconds
- 是否动态:否
- 描述:FE 所在 StarRocks 集群中 Leader FE 与非 Leader FE 之间能够容忍的最大时钟偏移。
- 引入版本:-
txn_rollback_limit
- 默认值:100
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:允许回滚的最大事务数。
- 引入版本:-
heartbeat_mgr_threads_num
- 默认值:8
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:Heartbeat Manager 中用于发送心跳任务的最大线程数。
- 引入版本:-
heartbeat_mgr_blocking_queue_size
- 默认值:1024
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:Heartbeat Manager 中存储心跳任务的阻塞队列大小。
- 引入版本:-
catalog_try_lock_timeout_ms
- 默认值:5000
- 类型:Long
- 单位:Milliseconds
- 是否动态:是
- 描述:全局锁(Global Lock)获取的超时时长。
- 引入版本:-
ignore_materialized_view_error
- 默认值:false
- 类型:Boolean
- 单位:-
- 是否动态:是
- 描述:是否忽略因物化视图错误导致的元数据异常。如果 FE 因为物化视图错误导致的元数据异常而无法启动,您可以通过将该参数设置为
true
以忽略错误。 - 引入版本:v2.5.10
ignore_meta_check
- 默认值:false
- 类型:Boolean
- 单位:-
- 是否动态:是
- 描述:是否忽略元数据落后的情形。如果为 true,非主 FE 将忽略主 FE 与其自身之间的元数据延迟间隙,即使元数据延迟间隙超过
meta_delay_toleration_second
,非主 FE 仍将提供读取服务。当您尝试停止 Leader FE 较长时间,但仍希望非 Leader FE 可以提供读取服务时,该参数会很有帮助。 - 引入版本:-
drop_backend_after_decommission
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否动态:是
- 描述:BE 被下线后,是否删除该 BE。true 代表 BE 被下线后会立即删除该 BE。False 代表下线完成后不删除 BE。
- 引入版本:-
enable_collect_query_detail_info
- 默认值:false
- 类型:Boolean
- 单位:-
- 是否动态:是
- 描述:是否收集查询的 Profile 信息。设置为
true
时,系统会收集查询的 Profile。设置为false
时,系统不会收集查询的 profile。 - 引入版本:-
enable_background_refresh_connector_metadata
- 默认值:true in v3.0 and later and false in v2.5
- 类型:Boolean
- 单位:-
- 是否动态:是
- 描述:是否开启 Hive 元数据缓存周期性刷新。开启后,StarRocks 会轮询 Hive 集群的元数据服务(Hive Metastore 或 AWS Glue),并刷新经常访问的 Hive 外部数据目录的元数据缓存,以感知数据更新。
true
代表开启,false
代表关闭。 - 引入版本:v2.5.5
background_refresh_metadata_interval_millis
- 默认值:600000
- 类型:Int
- 单位:Milliseconds
- 是否动态:是
- 描述:接连两次 Hive 元数据缓存刷新之间的间隔。
- 引入版本:v2.5.5
background_refresh_metadata_time_secs_since_last_access_secs
- 默认值:3600 * 24
- 类型:Long
- 单位:Seconds
- 是否动态:是
- 描述:Hive 元数据缓存刷新任务过期时间。对于已被访问过的 Hive Catalog,如果超过该时间没有被访问,则停止刷新其元数据缓存。对于未被访问过的 Hive Catalog,StarRocks 不会刷新其元数据缓存。
- 引入版本:v2.5.5
enable_statistics_collect_profile
- 默认值:false
- 类型:Boolean
- 单位:-
- 是否动态:是
- 描述:统计信息查询时是否生成 Profile。您可以将此项设置为
true
,以允许 StarRocks 为系统统计查询生成 Profile。 - 引入版本:v3.1.5
metadata_enable_recovery_mode
- 默认值:false
- 类型:Boolean
- 单位:-
- 是否动态:否
- 描述:是否开启元数据恢复模式。开启此模式后,在部分元数据丢失的情况下,系统会根据 BE 上的信息恢复元数据。当前仅支持恢复分区的版本信息。
- 引入版本:v3.3.0
enable_legacy_compatibility_for_replication
- 默认值:false
- 类型:Boolean
- 单位:-
- 是否动态:是
- 描述:是否为跨集群数据迁移开启旧版本兼容。新旧版本的集群间可能存在行为差异,从而导致跨集群数据迁移时出现问题。因此在数据迁移前,您需要为目标集群开启旧版本兼容,并在数据迁移完成后关闭。
true
表示开启兼容。 - 引入版本:v3.1.10, v3.2.6