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。
备注
您必须具有管理员权限才能运行集群管理相关命令。
配置 FE 参数
配置 FE 动态参数
您可以使用 ADMIN SET FRONTEND CONFIG 命令配置或修改 FE 动态参数。
ADMIN SET FRONTEND CONFIG ("key" = "value");
备注
动态设置的配置项,在 FE 重启之后会恢复成 fe.conf 文件中的配置或者默认值。如果需要让配置长期生效,建议设置完之后同时修改 fe.conf 文件,防止重启后修改失效。
配置 FE 静态参数
备注
FE 静态参数不支持在线修改,您需要在 fe.conf 中修改并重启 FE 以使修改生效。
当前主题包含以下类型的 FE 配置:
存算分离
aws_s3_access_key
- 默认值: 空字符串
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 用于访问 S3 存储桶的 Access Key ID。
- 引入版本: v3.0
aws_s3_endpoint
- 默认值: 空字符串
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 用于访问 S3 存储桶的 endpoint,例如
https://s3.us-west-2.amazonaws.com。 - 引入版本: v3.0
aws_s3_external_id
- 默认值: 空字符串
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 用于跨账户访问 S3 存储桶的 AWS 账户的外部 ID。
- 引入版本: v3.0
aws_s3_iam_role_arn
- 默认值: 空字符串
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 对存储数据文件的 S3 存储桶具有权限的 IAM 角色的 ARN。
- 引入版本: v3.0
aws_s3_path
- 默认值: 空字符串
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 用于存储数据的 S3 路径。它由 S3 存储桶的名称和其下的子路径(如果有)组成,例如
testbucket/subpath。 - 引入版本: v3.0
aws_s3_region
- 默认值: 空字符串
- 类型: String
- 单位: -
- 是否可变: No
- 描述: S3 存储桶所在的区域,例如
us-west-2。 - 引入版本: v3.0
aws_s3_secret_key
- 默认值: 空字符串
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 用于访问 S3 存储桶的 Secret Access Key。
- 引入版本: v3.0
aws_s3_use_aws_sdk_default_behavior
- 默认值: false
- 类型: Boolean
- 单位: -
- 是否可变: No
- 描述: 是否使用 AWS SDK 的默认认证凭据。有效值:true 和 false (默认)。
- 引入版本: v3.0
aws_s3_use_instance_profile
- 默认值: false
- 类型: Boolean
- 单位: -
- 是否可变: No
- 描述: 是否使用实例配置文件和 assumed role 作为访问 S3 的凭证方法。有效值:true 和 false (默认)。
- 如果您使用基于 IAM 用户(Access Key 和 Secret Key)的凭证访问 S3,则必须将此项指定为
false,并指定aws_s3_access_key和aws_s3_secret_key。 - 如果您使用实例配置文件访问 S3,则必须将此项指定为
true。 - 如果您使用 assumed role 访问 S3,则必须将此项指定为
true,并指定aws_s3_iam_role_arn。 - 如果您使用外部 AWS 账户,则还必须指定
aws_s3_external_id。
- 如果您使用基于 IAM 用户(Access Key 和 Secret Key)的凭证访问 S3,则必须将此项指定为
- 引入版本: v3.0
azure_adls2_endpoint
- 默认值: 空字符串
- 类型: String
- 单位: -
- 是否可变: No
- 描述: Azure Data Lake Storage Gen2 账户的 endpoint,例如
https://test.dfs.core.windows.net。 - 引入版本: v3.4.1
azure_adls2_oauth2_client_id
- 默认值: 空字符串
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 用于授权 Azure Data Lake Storage Gen2 请求的托管标识的客户端 ID。
- 引入版本: v3.4.4
azure_adls2_oauth2_tenant_id
- 默认值: 空字符串
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 用于授权 Azure Data Lake Storage Gen2 请求的托管标识的租户 ID。
- 引入版本: v3.4.4
azure_adls2_oauth2_use_managed_identity
- 默认值: false
- 类型: Boolean
- 单位: -
- 是否可变: No
- 描述: 是否使用托管标识授权 Azure Data Lake Storage Gen2 请求。
- 引入版本: v3.4.4
azure_adls2_path
- 默认值: 空字符串
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 用于存储数据的 Azure Data Lake Storage Gen2 路径。它由文件系统名称和目录名称组成,例如
testfilesystem/starrocks。 - 引入版本: v3.4.1
azure_adls2_sas_token
- 默认值: 空字符串
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 用于授权 Azure Data Lake Storage Gen2 请求的共享访问签名 (SAS)。
- 引入版本: v3.4.1
azure_adls2_shared_key
- 默认值: 空字符串
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 用于授权 Azure Data Lake Storage Gen2 请求的共享密钥。
- 引入版本: v3.4.1
azure_blob_endpoint
- 默认值: 空字符串
- 类型: String
- 单位: -
- 是否可变: No
- 描述: Azure Blob Storage 账户的 endpoint,例如
https://test.blob.core.windows.net。 - 引入版本: v3.1
azure_blob_path
- 默认值: 空字符串
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 用于存储数据的 Azure Blob Storage 路径。它由存储账户中容器的名称和容器下的子路径(如果有)组成,例如
testcontainer/subpath。 - 引入版本: v3.1
azure_blob_sas_token
- 默认值: 空字符串
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 用于授权 Azure Blob Storage 请求的共享访问签名 (SAS)。
- 引入版本: v3.1
azure_blob_shared_key
- 默认值: 空字符串
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 用于授权 Azure Blob Storage 请求的共享密钥。
- 引入版本: v3.1
azure_use_native_sdk
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 是否使用原生 SDK 访问 Azure Blob Storage,从而允许使用托管标识和服务主体进行身份验证。如果此项设置为
false,则仅允许使用共享密钥和 SAS Token 进行身份验证。 - 引入版本: v3.4.4
cloud_native_hdfs_url
- 默认值: 空字符串
- 类型: String
- 单位: -
- 是否可变: No
- 描述: HDFS 存储的 URL,例如
hdfs://127.0.0.1:9000/user/xxx/starrocks/。 - 引入版本: -
cloud_native_meta_port
- 默认值: 6090
- 类型: Int
- 单位: -
- 是否可变: No
- 描述: FE 云原生元数据服务器 RPC 监听端口。
- 引入版本: -
cloud_native_storage_type
- 默认值: S3
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 您使用的对象存储类型。在共享数据模式下,StarRocks 支持将数据存储在 HDFS、Azure Blob(v3.1.1 起支持)、Azure Data Lake Storage Gen2(v3.4.1 起支持)、Google Storage(带原生 SDK,v3.5.1 起支持)以及与 S3 协议兼容的对象存储系统(如 AWS S3 和 MinIO)中。有效值:
S3(默认)、HDFS、AZBLOB、ADLS2和GS。如果您将此参数指定为S3,则必须添加以aws_s3为前缀的参数。如果您将此参数指定为AZBLOB,则必须添加以azure_blob为前缀的参数。如果您将此参数指定为ADLS2,则必须添加以azure_adls2为前缀的参数。如果您将此参数指定为GS,则必须添加以gcp_gcs为前缀的参数。如果您将此参数指定为HDFS,则只需指定cloud_native_hdfs_url。 - 引入版本: -
enable_load_volume_from_conf
- 默认值: false
- 类型: Boolean
- 单位: -
- 是否可变: No
- 描述: 是否允许 StarRocks 使用 FE 配置文件中指定的对象存储相关属性创建内置存储卷。从 v3.4.1 开始,默认值从
true更改为false。 - 引入版本: v3.1.0
gcp_gcs_impersonation_service_account
- 默认值: 空字符串
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 如果您使用基于模拟的身份验证访问 Google Storage,则要模拟的服务账户。
- 引入版本: v3.5.1
gcp_gcs_path
- 默认值: 空字符串
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 用于存储数据的 Google Cloud 路径。它由 Google Cloud 存储桶的名称和其下的子路径(如果有)组成,例如
testbucket/subpath。 - 引入版本: v3.5.1
gcp_gcs_service_account_email
- 默认值: 空字符串
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 服务账户创建时生成的 JSON 文件中的电子邮件地址,例如
user@hello.iam.gserviceaccount.com。 - 引入版本: v3.5.1
gcp_gcs_service_account_private_key
- 默认值: 空字符串
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 服务账户创建时生成的 JSON 文件中的私钥,例如
-----BEGIN PRIVATE KEY----xxxx-----END PRIVATE KEY-----\n。 - 引入版本: v3.5.1
gcp_gcs_service_account_private_key_id
- 默认值: 空字符串
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 服务账户创建时生成的 JSON 文件中的私钥 ID。
- 引入版本: v3.5.1
gcp_gcs_use_compute_engine_service_account
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: No
- 描述: 是否使用绑定到 Compute Engine 的服务账户。
- 引入版本: v3.5.1
hdfs_file_system_expire_seconds
- 默认值: 300
- 类型: Int
- 单位: 秒
- 是否可变: Yes
- 描述: 由 HdfsFsManager 管理的未使用的缓存 HDFS/ObjectStore FileSystem 的存活时间(秒)。FileSystemExpirationChecker(每 60 秒运行一次)使用此值调用每个 HdfsFs.isExpired(...);过期时,管理器关闭底层 FileSystem 并将其从缓存中删除。访问器方法(例如
HdfsFs.getDFSFileSystem、getUserName、getConfiguration)更新最后访问时间戳,因此过期基于不活动。较低的值会减少空 闲资源占用,但会增加重新打开的开销;较高的值会保持句柄更长时间,并可能消耗更多资源。 - 引入版本: v3.2.0
lake_autovacuum_grace_period_minutes
- 默认值: 30
- 类型: Long
- 单位: 分钟
- 是否可变: Yes
- 描述: 共享数据集群中保留历史数据版本的时间范围。在此时间范围内的历史数据版本不会在 Compactions 后通过 AutoVacuum 自动清理。您需要将此值设置得大于最大查询时间,以避免正在运行的查询访问的数据在查询完成之前被删除。从 v3.3.0、v3.2.5 和 v3.1.10 开始,默认值已从
5更改为30。 - 引入版本: v3.1.0
lake_autovacuum_parallel_partitions
- 默认值: 8
- 类型: Int
- 单位: -
- 是否可变: No
- 描述: 共享数据集群中可同时进行 AutoVacuum 的分区最大数量。AutoVacuum 是 Compactions 后的垃圾回收。
- 引入版本: v3.1.0
lake_autovacuum_partition_naptime_seconds
- 默认值: 180
- 类型: Long
- 单位: 秒
- 是否可变: Yes
- 描述: 共享数据集群中同一分区两次 AutoVacuum 操作之间的最小间隔。
- 引入版本: v3.1.0
lake_autovacuum_stale_partition_threshold
- 默认值: 12
- 类型: Long
- 单位: 小时
- 是否可变: Yes
- 描述: 如果分区在此时间范围内没有更新(加载、DELETE 或 Compactions),系统将不会对此分区执行 AutoVacuum。
- 引入版本: v3.1.0
lake_compaction_allow_partial_success
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 如果此项设置为
true,则在共享数据集群中,当子任务之一成功时,系统将认为 Compaction 操作成功。 - 引入版本: v3.5.2
lake_compaction_disable_ids
- 默认值: ""
- 类型: String
- 单位: -
- 是否可变: Yes
- 描述: 在共享数据模式下禁用 Compaction 的表或分区列表。格式为
tableId1;partitionId2,以分号分隔,例如12345;98765。 - 引入版本: v3.4.4
lake_compaction_history_size
- 默认值: 20
- 类型: Int
- 单位: -
- 是否可变: Yes
- 描述: 在共享数据集群中,Leader FE 内存中保留的最近成功 Compaction 任务记录数。您可以使用
SHOW PROC '/compactions'命令查看最近成功的 Compaction 任务记录。请注意,Compaction 历史记录存储在 FE 进程内存中,如果 FE 进程重启,它将丢失。 - 引入版本: v3.1.0
lake_compaction_max_parallel_default
- 默认值: 3
- 类型: Int
- 单位: -
- 是否可变: Yes
- 描述: 当建表时未指定
lake_compaction_max_parallel表属性时,每个 tablet 的默认最大并行 Compaction 子任务数。0表示禁 用并行 Compaction。此配置作为表属性lake_compaction_max_parallel的默认值。
lake_compaction_max_tasks
- 默认值: -1
- 类型: Int
- 单位: -
- 是否可变: Yes
- 描述: 共享数据集群中允许的最大并发 Compaction 任务数。将此项设置为
-1表示以自适应方式计算并发任务数。将此值设置为0将禁用 Compaction。 - 引入版本: v3.1.0
lake_compaction_score_selector_min_score
- 默认值: 10.0
- 类型: Double
- 单位: -
- 是否可变: Yes
- 描述: 触发共享数据集群中 Compaction 操作的 Compaction Score 阈值。当分区的 Compaction Score 大于或等于此值时,系统会对该分区执行 Compaction。
- 引入版本: v3.1.0
lake_compaction_score_upper_bound
- 默认值: 2000
- 类型: Long
- 单位: -
- 是否可变: Yes
- 描述: 共享数据集群中分区的 Compaction Score 上限。
0表示无上限。此项仅在lake_enable_ingest_slowdown设置为true时生效。当分区的 Compaction Score 达到或超过此上限时,传入的加载任务将被拒绝。从 v3.3.6 开始,默认值从0更改为2000。 - 引入版本: v3.2.0
lake_compaction_interval_ms_on_success
- 默认值:10000
- 类型:Long
- 单位:毫秒
- 是否动态:是
- 描述:存算分离集群某个分区 Compaction 成功后,间隔多少时间,对这个分区发起下一次 Compaction。别名为
lake_min_compaction_interval_ms_on_success。 - 引入版本:v3.2.0
lake_enable_balance_tablets_between_workers
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 在共享数据集群中,云原生表 tablet 迁移期间是否平衡计算节点之间的 tablet 数量。
true表示在计算节点之间平衡 tablet,false表示禁用此功能。 - 引入版本: v3.3.4
lake_enable_ingest_slowdown
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 是否在共享数据集群中启用数据摄取减速。当数据摄取减速启用时,如果分区的 Compaction Score 超过
lake_ingest_slowdown_threshold,则该分区上的加载任务将受到限制。此配置仅在run_mode设置为shared_data时生效。从 v3.3.6 开始,默认值从false更改为true。 - 引入版本: v3.2.0
lake_ingest_slowdown_threshold
- 默认值: 100
- 类型: Long
- 单位: -
- 是否可变: Yes
- 描述: 触发共享数据集群中数据摄取减速的 Compaction Score 阈值。此配置仅在
lake_enable_ingest_slowdown设置为true时生效。 - 引入版本: v3.2.0
lake_publish_version_max_threads
- 默认值: 512
- 类型: Int
- 单位: -
- 是否可变: Yes
- 描述: 共享数据集群中版本发布任务的最大线程数。
- 引入版本: v3.2.0
meta_sync_force_delete_shard_meta
- 默认值: false
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 是否允许直接删除共享数据集群的元数据,绕过清理远程存储文件。建议仅在存在大量待清理分片,导致 FE JVM 内存压力过大时才将此项设置为
true。请注意,启用此功能后,属于分片或 tablet 的数据文件无法自动清理。 - 引入版本: v3.2.10, v3.3.3
run_mode
-
默认值:
shared_nothing -
类型: String
-
单位: -
-
是否可变: No
-
描述: StarRocks 集群的运行模式。有效值:
shared_data和shared_nothing(默认)。shared_data表示以共享数据模式运行 StarRocks。shared_nothing表示以共享无数据模式运行 StarRocks。
CAUTION
- StarRocks 集群不能同时采用
shared_data和shared_nothing模式。不支持混合部署。 - 集群部署后,请勿更改
run_mode