You need to enable JavaScript to run this app.
导航

StarRocks参数配置

最近更新时间2024.05.06 15:39:16

首次发布时间2024.05.06 15:39:16

本文为您介绍StarRocks FE、BE、Broker以及系统参数的部分配置项以及修改方式。

1 背景信息

StarRocks配置项分为动态参数和静态参数:

  • 动态参数主要是FE有部分动态配置,支持在线修改。

  • 静态参数是需要重启服务生效的配置项, 包括FE的静态参数和BE的全部配置项

1.1 动态参数

动态参数表示不需要重启服务的参数, 可以通过如下命令动态修改, 也可以通过页面方式重启修改.

ADMIN SET FRONTEND CONFIG ("key" = "value");

1.2 静态参数

静态参数必须通过页面方式修改, 修改后需要重启服务才能生效.

  1. 进入到集群页面的"服务列表" -> "StarRocks服务" -> "服务参数"页面中

  1. 左上角的搜索框中, 搜索对应配置项, 如果找对对应参数, 则可以在下面的参数值输入框中, 修改对应数值. 修改后, EMR会检查到参数变化, 立马提示需要保存参数变化.

  1. 如果在搜索框中, 无法搜索到对应的参数, 则可以点击搜索框上方的"添加自定义参数"按钮, 添加自定义的参数. "配置项文件"选择FE或者BE, "生效范围"一般选择"组件范围", "组件"上对应的组件名称, 最后在"参数名称"填写好参数并在"参数值"上填写好参数的数值.

  1. 无论修改已经存在的参数还是添加新的参数, 都只是修改了参数的记录, 并没有立即生效, 需要重启集群节点才能生效. 只要按照集群提示, 重启对应主键即可.

2 FE动态参数

2.1 LOG相关配置

配置项默认值描述
qe_slow_log_ms5000Slow query的认定时长,单位为ms。

2.2 元数据与集群管理相关配置

配置项默认值描述
catalog_try_lock_timeout_ms5000Catalog Lock获取的超时时长,单位为ms。
edit_log_roll_num50000Image日志拆分大小。
ignore_unknown_log_idFALSE是否忽略未知的logID:TRUE:FE会忽略这些未知的logID。FALSE:针对未知的logID,FE会退出进程。当FE回滚到低版本时,可能存在低版本BE无法识别的logID。
ignore_meta_checkFALSE是否忽略元数据落后的情形:FALSE:忽略。TRUE:不忽略。
max_backend_down_time_second3600BE和FE失联之后,FE能够容忍BE重新加回来的最长时间,单位为s。
drop_backend_after_decommissionTRUEBE被下线后,是否删除该BE:TRUE:删除该BE。FALSE:不删除该BE。

2.3 查询引擎相关配置

配置项默认值描述
max_create_table_timeout_second60建表最大超时时间,单位为s。
max_running_rollup_job_num_per_table1每个Table执行Rollup任务的最大并发度。
max_planner_scalar_rewrite_num10_0000优化器重写ScalarOperator允许的最大次数。
statistics_manager_sleep_time_sec60*10自动创建统计信息表的周期,单位为s。
statistic_collect_interval_sec120*60统计信息功能执行周期,单位为s。
statistic_update_interval_sec24 *60* 60统计信息Job的默认收集间隔时间,单位为s。
statistic_sample_collect_rows200000采样统计信息Job的默认采样行数,默认为200000行。
enable_statistic_collectTRUE统计信息收集功能开关:TRUE:开启统计信息收集功能。FALSE:不开启统计信息收集功能。
enable_local_replica_selectionFALSE优化器是否优先选择与该FE相同IP的BE节点上的tablet:TRUE:是。FALSE:否。
max_distribution_pruner_recursion_depth100分区裁剪允许的最大递归深度。

2.4 导入和导出相关配置

配置项默认值描述
max_running_txn_num_per_db100并发导入的任务数。
max_load_timeout_second259200适用于所有导入,单位为s。
min_load_timeout_second1适用于所有导入,单位为s。
load_parallel_instance_num1单个BE上并发实例数,默认1个。
db_used_data_quota_update_interval_secs300更新数据库使用配额的时间周期,单位为s。
history_job_keep_max_second604800历史任务最大的保留时长,单位为s。
label_keep_max_num1000一定时间内所保留导入任务的最大数量。保留时间在label_keep_max_second中设置。
label_keep_max_second259200label保留时长,单位为s。
period_of_auto_resume_min5自动恢复Routine Load的时间间隔。
stream_load_default_timeout_second600StreamLoad超时时间,单位为s。
max_stream_load_timeout_second259200Stream导入的超时时间允许设置的最大值,单位为s。
insert_load_default_timeout_second3600Insert Into语句的超时时间,单位为s。
broker_load_default_timeout_second14400Broker Load的超时时间,单位为s。
export_max_bytes_per_be_per_task268435456单个导出任务在单个BE上导出的最大数据量,默认256 MB。
export_running_job_num_limit5导出作业最大的运行数目。
export_task_default_timeout_second7200导出作业超时时长,单位为s,默认2小时。

2.5 存储相关配置

配置项默认值描述
capacity_used_percent_high_water0.75Backend上磁盘使用容量的度量值。超过0.75之后,尽量不再往该tablet上发送建表和克隆的任务,直至恢复正常。
storage_high_watermark_usage_percent85BE存储目录下空间使用率的最大值。
storage_min_left_capacity_bytes2 *1024* 1024*1024BE存储目录下剩余空间的最小值,默认2 GB。
storage_flood_stage_left_capacity_bytes100 *1024* 1024*1024BE存储目录的剩余空间。如果剩余空间小于该值,则会拒绝Load Restore作业。默认1 GB。
storage_flood_stage_usage_percent95BE存储目录下空间使用率。如果空间使用率超过该值,则会拒绝Load和Restore作业。
catalog_trash_expire_second86400删表或数据库之后,元数据在回收站中保留的时长,单位为s,默认1天。如果超过该时长,则数据无法恢复。
alter_table_timeout_second86400Schema change超时时间,单位为s,默认1天。
balance_load_disk_safe_threshold0.5仅对disk_and_tablet策略有效。如果所有BE的磁盘使用率低于50%,则认为磁盘使用均衡。
balance_load_score_threshold0.1针对be_load_score策略,负载比平均负载低10%的BE处于低负载状态,比平均负载高10% 的BE处于高负载状态。针对disk_and_tablet策略,如果最大和最小BE磁盘使用率之差高于10%,则认为磁盘使用不均衡,会触发tablet重新均衡。
disable_balanceFALSE是否禁用Tablet调度:FALSE:禁用。TRUE:不禁用。
max_scheduling_tablets2000正在调度的tablet数量。如果正在调度的tablet数量超过该值,则跳过tablet均衡检查。
max_balancing_tablets100正在均衡的tablet数量。如果正在均衡的tablet数量超过该值,则跳过tablet重新均衡。
disable_colocate_balanceFALSE是否禁用Colocate Table的副本均衡:TRUE:禁用。FALSE:不禁用。
recover_with_empty_tabletFALSE在tablet副本丢失或损坏时,是否使用空的tablet代替:TRUE:使用空的tablet代替。FALSE:不使用空的tablet代替。使用空的tablet代替可以保证在有tablet副本丢失或损坏时,query依然能被执行(但是由于缺失了数据,结果可能是错误的)。
min_clone_task_timeout_sec3*60克隆Tablet的最小超时时间,单位为s,默认3min。
max_clone_task_timeout_sec2 *60* 60克隆 Tablet 的最大超时时间,单位为s,默认2h。
tablet_create_timeout_second1建表超时时长,单位为s。
tablet_delete_timeout_second2删除表的超时时间,单位为s。
tablet_repair_delay_factor_second60FE 控制进行副本修复的间隔,单位为s。
consistency_check_start_time23FE 发起副本一致性检测的起始时间,默认是23:00。
consistency_check_end_time4FE 发起副本一致性检测的终止时间,默认是4:00。
check_consistency_default_timeout_second600副本一致性检测的超时时间,单位为s。

2.6 其他配置

配置项默认值描述
plugin_enableTRUE是否开启了插件功能:TRUE:开启了插件功能。FALSE:没有开启插件功能。说明只能在Master节点安装或卸载插件。
max_small_file_number100允许存储小文件数目的最大值。
max_small_file_size_bytes1024*1024存储文件的大小上限,默认1 MB。
backup_job_default_timeout_ms86400*1000Backup作业的超时时间,单位为s,默认1天。
report_queue_size100Disk、Task或Tablet的Report的等待队列长度。

3 FE静态参数

3.1 LOG相关配置

配置项默认值描述
log_roll_size_mb1024日志拆分的大小,每1 GB拆分一个日志。
sys_log_dirStarRocksFe.STARROCKS_HOME_DIR/log日志保留的目录。
sys_log_levelINFO日志的级别。可以配置的等级从宽松到严格依次为INFO、WARNING、ERROR和FATAL。
sys_log_verbose_modules空字符串日志打印的模块。例如,如果填写为org.apache.starrocks.catalog,则只打印catalog模块下的日志。
sys_log_roll_intervalDAY日志拆分的时间间隔。
sys_log_delete_age7d日志删除的间隔。
sys_log_roll_num10每个sys_log_roll_interval时间内,保留的日志文件数目。
audit_log_dirstarrocksFe.STARROCKS_HOME_DIR/log审计日志保留的目录。
audit_log_roll_num90审计日志保留的数目。
audit_log_modules"slow_query", "query"审计日志打印的模块,默认保留slow_query和query。
audit_log_roll_intervalDAY审计日志拆分的时间间隔,取值为DAY或HOUR。
audit_log_delete_age30d审计日志删除的间隔。
dump_log_dirSTARROCKS_HOME_DIR/logDump日志的目录。
dump_log_modules"query"Dump日志打印的模块,默认保留query。
dump_log_roll_intervalDAYDump日志拆分的时间间隔。日志文件的后缀为yyyyMMdd(DAY)或yyyyMMddHH(HOUR)。
dump_log_roll_num90每个dump_log_roll_interval时间内,保留的Dump日志文件数目。
dump_log_delete_age30dDump日志保留的时间长度。

3.2 Server进程相关配置

配置项默认值描述
frontend_address0.0.0.0FE IP地址。
priority_networks空字符串以CIDR形式10.10.**.**/24指定BE的IP地址,适用于机器有多个IP,需要指定优先使用的网络。
http_port8030Http Server的端口。
http_backlog_num1024HTTP Server的backlog队列长度。
cluster_nameStarRocks ClusterWeb页面中Title显示的集群名称。
rpc_port9020FE上的Thrift Server端口。
thrift_backlog_num1024Thrift Server的backlog队列长度。
thrift_server_typeTHREAD_POOLFE的Thrift服务使用的服务模型。例如,SIMPLE、THREADED和THREAD_POOL。
thrift_server_max_worker_threads4096Thrift Server最大工作线程数。
thrift_client_timeout_ms0Client超时时间。默认值为0,表示永远不会超时。
brpc_idle_wait_max_time10000BRPC的空闲等待时间,单位为ms,默认为10s。
query_port9030FE上的MySQL Server端口。
mysql_service_nio_enabledTRUE是否开启FE连接服务的nio:TRUE:开启。FALSE:不开启。
mysql_service_io_threads_num4FE连接服务线程数。
mysql_nio_backlog_num1024MySQL Server的backlog队列长度。
max_mysql_service_task_threads_num4096MySQL Server处理任务的最大线程数。
max_connection_scheduler_threads_num4096连接定时器的线程池的最大线程数。
qe_max_connection1024FE上最多接收的连接数,适用于所有用户。
check_java_versionTRUE是否检查执行时的版本与编译的Java版本的兼容性:TRUE:检查。FALSE:不检查。

3.3 元数据与集群管理相关配置

配置项默认值描述
meta_dirStarRocksFe.STARROCKS_HOME_DIR/meta元数据保留目录。
heartbeat_mgr_threads_num8HeartbeatMgr中发送心跳任务的线程数。
heartbeat_mgr_blocking_queue_size1024HeartbeatMgr中发送心跳任务的线程池的队列长度。
metadata_failure_recoveryFALSE强制重置FE的元数据。说明请谨慎使用该参数。
edit_log_port9010FE Group(Master、Follower、Observer)之间通信用的端口。
edit_log_typeBDBEdit log的类型,只能为BDB。
bdbje_heartbeat_timeout_second30BDBJE心跳超时的间隔,单位为s。
bdbje_lock_timeout_second1BDBJE锁超时的间隔,单位为s。
max_bdbje_clock_delta_ms5000Master与Non-master最大容忍的时钟偏移,单位为ms。
txn_rollback_limit100事务回滚的上限。
bdbje_replica_ack_timeout_second10BDBJE Master等待足够多的FOLLOWER ACK的最长时间c
master_sync_policySYNCMaster日志刷盘的方式,默认是SYNC。
replica_sync_policySYNCFollower日志刷盘的方式,默认是SYNC。
meta_delay_toleration_second300非Master节点能够容忍的最大元数据落后的时间,单位为s。
cluster_id-1相同cluster_id的FE或BE节点属于haode同一个集群。默认值-1,表示在Master FE第一次启动时随机生成一个cluster_id。

3.4 查询引擎相关配置

配置项默认值描述
disable_colocate_joinFALSE是否开启Colocate Join:FALSE:不开启Colocate Join。TRUE:开启Colocate Join。
enable_udfFALSE是否开启UDF:FALSE:不开启UDF。TRUE:开启UDF。
publish_version_interval_ms10发送版本生效任务的时间间隔。
statistic_cache_columns10_0000缓存统计信息表的行数。

3.5 导入和导出相关配置

配置项默认值描述
async_load_task_pool_size10导入任务执行的线程池大小。
load_checker_interval_second5导入轮询的间隔,单位为s。
transaction_clean_interval_second30清理已结束事务的周期,单位为s。
label_clean_interval_second14400label清理的间隔,单位为s。
export_checker_interval_second5导出线程轮询间隔,单位为s。
export_task_pool_size5导出任务线程池大小。
export_checker_interval_second5导出作业调度器的调度周期,单位为s。

3.6 存储相关配置

配置项默认值描述
storage_cooldown_second2592000介质迁移的时间,单位为s,默认30天。
default_storage_mediumHDD默认的存储介质,取值为HDD和SSD。在创建表或分区时,如果没有指定存储介质,则会使用该值。
schedule_slot_num_per_path2一个BE存储目录能够同时执行tablet相关任务的数目。
tablet_balancer_strategydisk_and_tabletTablet均衡策略,取值为disk_and_tablet或be_load_score。
tablet_stat_update_interval_second300FE向每个BE请求收集tablet信息的时间间隔,单位为s,默认5min。

4 BE配置项

BE配置项全部是静态参数。

4.1 日志相关

配置项默认值描述
sys_log_dir${DORIS_HOME}/log存放日志的目录。日志级别包括INFO、WARNING、ERROR和FATAL。
sys_log_levelINFO日志的等级。可以配置的等级从宽松到严格依次为INFO、WARNING、ERROR和FATAL。
sys_log_roll_modeSIZE-MB-1024日志拆分的大小,每1 GB拆分一个日志。
sys_log_roll_num10日志保留的数目。
sys_log_verbose_modules空字符串日志打印的模块。如果写olap,则只打印olap模块下的日志。
sys_log_verbose_level10日志显示的级别,用于控制代码中VLOG开头的日志输出。
log_buffer_level空字符串日志刷盘的策略,默认保持在内存中。

4.2 合并相关

配置项默认值描述
base_compaction_check_interval_seconds60BaseCompaction线程轮询的间隔,单位为s。
base_compaction_num_threads_per_disk1每个磁盘BaseCompaction线程的数目。
base_cumulative_delta_ratio0.3BaseCompaction触发条件之一:Cumulative文件大小达到Base文件的比例。
base_compaction_interval_seconds_since_last_operation86400BaseCompaction触发条件之一:上一轮BaseCompaction距今的间隔。
cumulative_compaction_check_interval_seconds1CumulativeCompaction线程轮询的间隔,单位为s。
min_cumulative_compaction_num_singleton_deltas5CumulativeCompaction触发条件之一:Singleton文件数目要达到的下限。
max_cumulative_compaction_num_singleton_deltas1000CumulativeCompaction 触发条件之一:Singleton文件数目要达到的上限。
cumulative_compaction_num_threads_per_disk1每个磁盘CumulativeCompaction线程的数目。
min_compaction_failure_interval_sec120Tablet Compaction失败之后,再次被调度的间隔,单位为s。
max_compaction_concurrency-1BaseCompaction + CumulativeCompaction的最大并发。默认值-1表示没有限制。

4.3 线程相关

配置项默认值描述
heartbeat_service_thread_count1心跳线程数。
create_tablet_worker_count3创建tablet的线程数。
drop_tablet_worker_count3删除tablet的线程数。
push_worker_count_normal_priority3导入线程数,处理NORMAL优先级任务。
push_worker_count_high_priority3导入线程数,处理HIGH优先级任务。
publish_version_worker_count2生效版本的线程数。
clear_transaction_task_worker_count1清理事务的线程数。
alter_tablet_worker_count3进行Schema Change的线程数。
clone_worker_count3克隆的线程数。
storage_medium_migrate_count1介质迁移的线程数。例如,热数据从SSD迁移到SATA盘的线程数。
check_consistency_worker_count1计算tablet的校验和checksum。
num_threads_per_core3每个CPU core启动的线程数。
doris_scanner_thread_pool_thread_num48存储引擎并发扫描磁盘的线程数,统一管理在线程池中。
doris_scanner_thread_pool_queue_size102400存储引擎最多接收的任务数。
webserver_num_workers48Http Server线程数。
fragment_pool_thread_num64查询线程数,默认启动64个线程,后续查询请求动态创建线程。
fragment_pool_queue_size2048单节点上能够处理的查询请求上限。

4.4 服务相关

配置项默认值描述
be_port9060BE上Thrift Server的端口,用于接收来自FE的请求。
brpc_port8060BRPC的端口,可以查看BRPC的一些网络统计信息。
brpc_num_threads-1BRPC的bthreads线程数量。默认值-1表示和CPU核数一样。
priority_networks空字符串以CIDR形式10.10.**.**/24指定BE的IP地址,适用于机器有多个IP,需要指定优先使用的网络。
heartbeat_service_port9050心跳服务端口(Thrift),接收来自FE的心跳。
user_function_dir${DORIS_HOME}/lib/udf存放UDF程序的目录。
storage_root_path空字符串存储数据的目录。
webserver_port8040Http Server端口。

4.5 其他配置

配置项默认值描述
report_task_interval_seconds10汇报单个任务的间隔,单位为s。建表、删除表、导入和Schema Change都可以被认定是任务。
report_disk_state_interval_seconds60汇报磁盘状态的间隔,单位为s。汇报各个磁盘的状态及其数据量等。
report_tablet_interval_seconds60汇报tablet的间隔,单位为s。汇报所有的tablet的最新版本。
alter_tablet_timeout_seconds86400Schema Change超时时间,单位为s。
compress_rowbatchesTRUEBE之间RPC通信是否压缩RowBatch,用于查询层之间的数据传输。
serialize_batchFALSEBE之间RPC通信是否序列化RowBatch,用于查询层之间的数据传输。
status_report_interval5查询汇报profile的间隔,单位为s,用于FE收集查询统计信息。
memory_limitation_per_thread_for_schema_change2单个Schema Change任务允许占用的最大内存。
file_descriptor_cache_clean_interval3600文件句柄缓存清理的间隔,单位为s,用于清理长期不用的文件句柄。
disk_stat_monitor_interval5磁盘状态检测的间隔,单位为s。
unused_rowset_monitor_interval30清理过期Rowset的时间间隔,单位为s。
max_tablet_num_per_shard1024每个shard的tablet数目,用于划分tablet,防止单个目录下tablet子目录过多。
pending_data_expire_time_sec1800存储引擎保留的未生效数据的最大时长,单位为s。
inc_rowset_expired_sec1800在增量克隆场景下,已导入的数据,在存储引擎中保留的时间,单位为s。
max_garbage_sweep_interval3600磁盘进行垃圾清理的最大间隔,单位为s。
min_garbage_sweep_interval180磁盘进行垃圾清理的最小间隔,单位为s。
snapshot_expire_time_sec172800快照文件清理的间隔,单位为s,默认为48小时。
trash_file_expire_time_sec259200回收站清理的间隔,单位为s,默认为72小时。
file_descriptor_cache_capacity16384文件句柄缓存的容量。
min_file_descriptor_number60000BE进程的文件句柄limit要求的下限。
index_stream_cache_capacity10737418240BloomFilter、Min或Max等统计信息缓存的容量。
storage_page_cache_limit0PageCache的容量。
disable_storage_page_cacheTRUE是否禁用Page Cache。TRUE:禁用Page Cache。FALSE:不禁用Page Cache。
periodic_counter_update_period_ms500Counter统计信息的间隔,单位为ms。
load_data_reserve_hours4小批量导入生成的文件保留的时间,单位为h。
load_error_log_reserve_hours48导入数据信息保留的时长,单位为h。
number_tablet_writer_threads16流式导入的线程数。
streaming_load_max_mb10240流式导入单个文件大小的上限。
streaming_load_rpc_max_alive_time_sec1200流式导入RPC的超时时间。
enable_partitioned_aggregationTRUE是否使用PartitionAggregation:TRUE:使用PartitionAggregation。FALSE:不使用PartitionAggregation。
enable_token_checkTRUE是否开启Token检验:TRUE:开启Token检验。FALSE:不开启Token检验。
load_process_max_memory_limit_bytes107374182400单节点上所有的导入线程占据的内存上限,默认为100 GB。
load_process_max_memory_limit_percent30单节点上所有的导入线程占据的内存上限比例。
sync_tablet_metaFALSE存储引擎是否开sync保留到磁盘上。
thrift_rpc_timeout_ms5000Thrift超时的时长,单位为ms。
txn_commit_rpc_timeout_ms10000Txn超时的时长,单位为ms。
routine_load_thread_pool_size10例行导入的线程池数目。
tablet_meta_checkpoint_min_new_rowsets_num10TabletMeta Checkpoint的最小Rowset数目。
tablet_meta_checkpoint_min_interval_secs600TabletMeta Checkpoint线程轮询的时间间隔,单位为s。
brpc_max_body_size209715200BRPC最大的包容量,默认为200 MB。
max_runnings_transactions2000存储引擎支持的最大事务数。
tablet_map_shard_size32Tablet分组数。
enable_bitmap_union_disk_format_with_setFALSEBitmap新存储格式,可以优化bitmap_union性能。