附录1:配置参数
为方便IoTDB Server的配置与管理,IoTDB Server为用户提供三种配置项,使得用户可以在启动服务或服务运行时对其进行配置。
三种配置项的配置文件均位于IoTDB安装目录:$IOTDB_HOME/conf
文件夹下,其中涉及server配置的共有2个文件,分别为:iotdb-env.sh
, iotdb-engine.properties
。用户可以通过更改其中的配置项对系统运行的相关配置项进行配置。
配置文件的说明如下:
iotdb-env.sh
:环境配置项的默认配置文件。用户可以在文件中配置JAVA-JVM的相关系统配置项。
iotdb-engine.properties
:IoTDB引擎层系统配置项的默认配置文件。用户可以在文件中配置IoTDB引擎运行时的相关参数,如JDBC服务监听端口(rpc_port
)、overflow数据文件存储目录(overflow_data_dir
)等。此外,用户可以在文件中配置IoTDB存储时TsFile文件的相关信息,如每次将内存中的数据写入到磁盘时的数据大小(group_size_in_byte
),内存中每个列打一次包的大小(page_size_in_byte
)等。
热修改配置项
为方便用户使用,IoTDB Server为用户提供了热修改功能,即在系统运行过程中修改iotdb-engine.properties
中部分配置参数并即时应用到系统中。下面介绍的参数中,改后 生效方式为触发生效
的均为支持热修改的配置参数。
触发方式:客户端发送load configuration
命令至IoTDB Server,客户端的使用方式详见第4章
环境配置项
环境配置项主要用于对IoTDB Server运行的Java环境相关参数进行配置,如JVM相关配置。IoTDB Server启动时,此部分配置会被传给JVM。用户可以通过查看 iotdb-env.sh
(或iotdb-env.bat
)文件查看环境配置项内容。详细配置项说明如下:
名字 | JMX_LOCAL |
---|
描述 | JMX监控模式,配置为yes表示仅允许本地监控,设置为no的时候表示允许远程监控 |
类型 | 枚举String : “yes”, “no” |
默认值 | yes |
改后生效方式 | 重启服务生效 |
名字 | JMX_PORT |
---|
描述 | JMX监听端口。请确认该端口不是系统保留端口并且未被占用。 |
类型 | Short Int: [0,65535] |
默认值 | 31999 |
改后生效方式 | 重启服务生效 |
名字 | MAX_HEAP_SIZE |
---|
描述 | IoTDB启动时能使用的最大堆内存大小。 |
类型 | String |
默认值 | 取决于操作系统和机器配置。在Linux或MacOS系统下默认为机器内存的四分之一。在Windows系统下,32位系统的默认值是512M,64位系统默认值是2G。 |
改后生效方式 | 重启服务生效 |
名字 | HEAP_NEWSIZE |
---|
描述 | IoTDB启动时能使用的最小堆内存大小。 |
类型 | String |
默认值 | 取决于操作系统和机器配置。在Linux或MacOS系统下默认值为机器CPU核数乘以100M的值与MAX_HEAP_SIZE四分之一这二者的最小值。在Windows系统下,32位系统的默认值是512M,64位系统默认值是2G。。 |
改后生效方式 | 重启服务生效 |
系统配置项
系统配置项是IoTDB Server运行的核心配置,它主要用于设置IoTDB Server文件层和引擎层的参数,便于用户根据自身需求调整Server的相关配置,以达到较好的性能表现。系统配置项可分为两大模块:文件层配置项和引擎层配置项。用户可以通过iotdb-engine.properties
,文件查看和修改两种配置项的内容。在0.7.0版本中字符串类型的配置项大小写敏感。
文件层配置
名字 | compressor |
---|
描述 | 数据压缩方法 |
类型 | 枚举String : “UNCOMPRESSED”, “SNAPPY”, “LZ4” |
默认值 | SNAPPY |
改后生效方式 | 触发生效 |
名字 | group_size_in_byte |
---|
描述 | 每次将内存中的数据写入到磁盘时的最大写入字节数 |
类型 | Int32 |
默认值 | 134217728 |
改后生效方式 | 触发生效 |
- max_number_of_points_in_page
名字 | max_number_of_points_in_page |
---|
描述 | 一个页中最多包含的数据点(时间戳-值的二元组)数量 |
类型 | Int32 |
默认值 | 1048576 |
改后生效方式 | 触发生效 |
名字 | max_degree_of_index_node |
---|
描述 | 元数据索引树的最大度(即每个节点的最大子节点个数) |
类型 | Int32 |
默认值 | 256 |
改后生效方式 | 仅允许在第一次启动服务前修改 |
名字 | max_string_length |
---|
描述 | 针对字符串类型的数据,单个字符串最大长度,单位为字符 |
类型 | Int32 |
默认值 | 128 |
改后生效方式 | 触发生效 |
名字 | page_size_in_byte |
---|
描述 | 内存中每个列写出时,写成的单页最大的大小,单位为字节 |
类型 | Int32 |
默认值 | 65536 |
改后生效方式 | 触发生效 |
名字 | time_series_data_type |
---|
描述 | 时间戳数据类型 |
类型 | 枚举String: “INT32”, “INT64” |
默认值 | Int64 |
改后生效方式 | 触发生效 |
名字 | time_encoder |
---|
描述 | 时间列编码方式 |
类型 | 枚举String: “TS_2DIFF”,“PLAIN”,“RLE” |
默认值 | TS_2DIFF |
改后生效方式 | 触发生效 |
名字 | value_encoder |
---|
描述 | value列编码方式 |
类型 | 枚举String: “TS_2DIFF”,“PLAIN”,“RLE” |
默认值 | PLAIN |
改后生效方式 | 触发生效 |
名字 | float_precision |
---|
描述 | 浮点数精度,为小数点后数字的位数 |
类型 | Int32 |
默认值 | 默认为2位。注意:32位浮点数的十进制精度为7位,64位浮点数的十进制精度为15位。如果设置超过机器精度将没有实际意义。 |
改后生效方式 | 触发生效 |
引擎层配置
名字 | data_dirs |
---|
描述 | IoTDB数据存储路径,默认存放在和sbin目录同级的data目录下。相对路径的起始目录与操作系统相关,建议使用绝对路径。 |
类型 | String |
默认值 | data/data |
改后生效方式 | 触发生效 |
名字 | system_dirs |
---|
描述 | IoTDB元数据存储路径,默认存放在和sbin目录同级的data目录下。相对路径的起始目录与操作系统相关,建议使用绝对路径。 |
类型 | String |
默认值 | data/system |
改后生效方式 | 触发生效 |
名字 | wal_dirs |
---|
描述 | IoTDB写前日志存储路径,默认存放在和sbin目录同级的data目录下。相对路径的起始目录与操作系统相关,建议使用绝对路径。 |
类型 | String |
默认值 | data/wal |
改后生效方式 | 触发生效 |
名字 | enable_wal |
---|
描述 | 是否开启写前日志,默认值为true表示开启,配置成false表示关闭 |
类型 | Bool |
默认值 | true |
改后生效方式 | 触发生效 |
- enable_discard_out_of_order_data
名字 | enable_discard_out_of_order_data |
---|
描述 | 是否删除无序数据,默认值为false表示关闭 |
类型 | Bool |
默认值 | false |
改后生效方式 | 触发生效 |
名字 | tag_attribute_total_size |
---|
描述 | 每个时间序列标签和属性的最大持久化字节数 |
类型 | Int32 |
默认值 | 700 |
改后生效方式 | 仅允许在第一次启动服务前修改 |
名字 | enable_partial_insert |
---|
描述 | 在一次insert请求中,如果部分测点写入失败,是否继续写入其他测点 |
类型 | Bool |
默认值 | true |
改后生效方式 | 重启服务生效 |
名字 | mtree_snapshot_interval |
---|
描述 | 创建 MTree snapshot 时至少累积的 mlog 日志行数。单位为日志行数 |
类型 | Int32 |
默认值 | 100000 |
改后生效方式 | 重启服务生效 |
名字 | mlog_buffer_size |
---|
描述 | mlog的buffer大小 |
类型 | Int32 |
默认值 | 1048576 |
改后生效方式 | 触发生效 |
名字 | sync_mlog_period_in_ms |
---|
描述 | mlog定期刷新到磁盘的周期,单位毫秒。如果该参数为0,则表示每次对元数据的更新操作都会被立即写到磁盘上。 |
类型 | Int64 |
默认值 | 100 |
改后生效方式 | 重启服务生效 |
名字 | force_wal_period_in_ms |
---|
描述 | 写前日志定期刷新到磁盘的周期,单位毫秒,有可能丢失至多force_wal_period_in_ms毫秒的操作。 |
类型 | Int32 |
默认值 | 100 |
改后生效方式 | 触发生效 |
名字 | flush_wal_threshold |
---|
描述 | 写前日志的条数达到该值之后,刷新到磁盘,有可能丢失至多flush_wal_threshold个操作 |
类型 | Int32 |
默认值 | 10000 |
改后生效方式 | 触发生效 |
名字 | wal_buffer_size |
---|
描述 | 写前日志的buffer大小 |
类型 | Int32 |
默认值 | 16777216 |
改后生效方式 | 触发生效 |
名字 | enable_mem_control |
---|
描述 | 开启内存控制,避免爆内存 |
类型 | Bool |
默认值 | true |
改后生效方式 | 重启服务生效 |
名字 | memtable_size_threshold |
---|
描述 | 内存缓冲区 memtable 阈值 |
类型 | Long |
默认值 | 1073741824 |
改后生效方式 | enable_mem_control为false时生效、重启服务生效 |
- avg_series_point_number_threshold
名字 | avg_series_point_number_threshold |
---|
描述 | 内存中平均每个时间序列点数最大值,达到触发flush |
类型 | Int32 |
默认值 | 10000 |
改后生效方式 | 重启服务生效 |
名字 | tsfile_size_threshold |
---|
描述 | 每个 tsfile 大小 |
类型 | Long |
默认值 | 1 |
改后生效方式 | 重启服务生效 |
名字 | enable_partition |
---|
描述 | 是否开启将数据按时间分区存储的功能,如果关闭,所有数据都属于分区 0 |
类型 | Bool |
默认值 | false |
改后生效方式 | 仅允许在第一次启动服务前修改 |
名字 | partition_interval |
---|
描述 | 用于存储组分区的时间段长度,用户指定的存储组下会使用该时间段进行分区,单位:秒 |
类型 | Int64 |
默认值 | 604800 |
改后生效方式 | 仅允许在第一次启动服务前修改 |
名字 | multi_dir_strategy |
---|
描述 | IoTDB在tsfile_dir中为TsFile选择目录时采用的策略。可使用简单类名或类名全称。系统提供以下三种策略: 1. SequenceStrategy:IoTDB按顺序从tsfile_dir中选择目录,依次遍历tsfile_dir中的所有目录,并不断轮循; 2. MaxDiskUsableSpaceFirstStrategy:IoTDB优先选择tsfile_dir中对应磁盘空余空间最大的目录; 3. MinFolderOccupiedSpaceFirstStrategy:IoTDB优先选择tsfile_dir中已使用空间最小的目录; 4. UserDfineStrategyPackage(用户自定义策略) 您可以通过以下方法完成用户自定义策略: 1. 继承cn.edu.tsinghua.iotdb.conf.directories.strategy.DirectoryStrategy类并实现自身的Strategy方法; 2. 将实现的类的完整类名(包名加类名,UserDfineStrategyPackage)填写到该配置项; 3. 将该类jar包添加到工程中。 |
类型 | String |
默认值 | MaxDiskUsableSpaceFirstStrategy |
改后生效方式 | 触发生效 |
名字 | rpc_address |
---|
描述 | |
类型 | String |
默认值 | “0.0.0.0” |
改后生效方式 | 重启服务生效 |
名字 | rpc_port |
---|
描述 | jdbc服务监听端口。请确认该端口不是系统保留端口并且未被占用。 |
类型 | Short Int : [0,65535] |
默认值 | 6667 |
改后生效方式 | 重启服务生效 |
- rpc_max_concurrent_client_num
名字 | rpc_max_concurrent_client_num |
---|
描述 | 最大连接数。 |
类型 | Short Int : [0,65535] |
默认值 | 65535 |
改后生效方式 | 重启服务生效 |
- rpc_thrift_compression_enable
名字 | rpc_thrift_compression_enable |
---|
描述 | 是否启用thrift的压缩机制。 |
类型 | true 或者 false |
默认值 | false |
改后生效方式 | 重启服务生效 |
- rpc_advanced_compression_enable
名字 | rpc_advanced_compression_enable |
---|
描述 | 是否启用thrift的自定制压缩机制。 |
类型 | true 或者 false |
默认值 | false |
改后生效方式 | 重启服务生效 |
名字 | enable_stat_monitor |
---|
描述 | 选择是否启动后台统计功能 |
类型 | Boolean |
默认值 | false |
改后生效方式 | 重启服务生效 |
名字 | concurrent_flush_thread |
---|
描述 | 当IoTDB将内存中的数据写入磁盘时,最多启动多少个线程来执行该操作。如果该值小于等于0,那么采用机器所安装的CPU核的数量。默认值为0。 |
类型 | Int32 |
默认值 | 0 |
改后生效方式 | 重启服务生效 |
名字 | tsfile_storage_fs |
---|
描述 | Tsfile和相关数据文件的存储文件系统。目前支持LOCAL(本地文件系统)和HDFS两种 |
类型 | String |
默认值 | LOCAL |
改后生效方式 | 仅允许在第一次启动服务前修改 |
名字 | core_site_path |
---|
描述 | 在Tsfile和相关数据文件存储到HDFS的情况下用于配置core-site.xml的绝对路径 |
类型 | String |
默认值 | /etc/hadoop/conf/core-site.xml |
改后生效方式 | 重启服务生效 |
名字 | hdfs_site_path |
---|
描述 | 在Tsfile和相关数据文件存储到HDFS的情况下用于配置hdfs-site.xml的绝对路径 |
类型 | String |
默认值 | /etc/hadoop/conf/hdfs-site.xml |
改后生效方式 | 重启服务生效 |
名字 | hdfs_ip |
---|
描述 | 在Tsfile和相关数据文件存储到HDFS的情况下用于配置HDFS的IP。如果配置了多于1个hdfs_ip,则表明启用了Hadoop HA |
类型 | String |
默认值 | localhost |
改后生效方式 | 重启服务生效 |
名字 | hdfs_port |
---|
描述 | 在Tsfile和相关数据文件存储到HDFS的情况下用于配置HDFS的端口 |
类型 | String |
默认值 | 9000 |
改后生效方式 | 重启服务生效 |
名字 | hdfs_nameservices |
---|
描述 | 在使用Hadoop HA的情况下用于配置HDFS的nameservices |
类型 | String |
默认值 | hdfsnamespace |
改后生效方式 | 重启服务生效 |
名字 | hdfs_ha_namenodes |
---|
描述 | 在使用Hadoop HA的情况下用于配置HDFS的nameservices下的namenodes |
类型 | String |
默认值 | nn1,nn2 |
改后生效方式 | 重启服务生效 |
- dfs_ha_automatic_failover_enabled
名字 | dfs_ha_automatic_failover_enabled |
---|
描述 | 在使用Hadoop HA的情况下用于配置是否使用失败自动切换 |
类型 | Boolean |
默认值 | true |
改后生效方式 | 重启服务生效 |
- dfs_client_failover_proxy_provider
名字 | dfs_client_failover_proxy_provider |
---|
描述 | 在使用Hadoop HA且使用失败自动切换的情况下配置失败自动切换的实现方式 |
类型 | String |
默认值 | org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider |
改后生效方式 | 重启服务生效 |
名字 | hdfs_use_kerberos |
---|
描述 | 是否使用kerberos验证访问hdfs |
类型 | String |
默认值 | false |
改后生效方式 | 重启服务生效 |
- kerberos_keytab_file_path
名字 | kerberos_keytab_file_path |
---|
描述 | kerberos keytab file 的完整路径 |
类型 | String |
默认值 | /path |
改后生效方式 | 重启服务生效 |
名字 | kerberos_principal |
---|
描述 | Kerberos 认证原则 |
类型 | String |
默认值 | your principal |
改后生效方式 | 重启服务生效 |
- authorizer_provider_class
名字 | authorizer_provider_class |
---|
描述 | 权限服务的类名 |
类型 | String |
默认值 | org.apache.iotdb.db.auth.authorizer.LocalFileAuthorizer |
改后生效方式 | 重启服务生效 |
其他可选值 | org.apache.iotdb.db.auth.authorizer.OpenIdAuthorizer |
名字 | openID_url |
---|
描述 | openID 服务器地址 (当OpenIdAuthorizer被启用时必须设定) |
类型 | String (一个http地址) |
默认值 | 无 |
改后生效方式 | 重启服务生效 |
名字 | thrift_max_frame_size |
---|
描述 | RPC 请求/响应的最大字节数 |
类型 | long |
默认值 | 67108864 (应大于等于 8 1024 1024) |
改后生效方式 | 重启服务生效 |
名字 | thrift_init_buffer_size |
---|
描述 | 字节数 |
类型 | long |
默认值 | 1024 |
改后生效方式 | 重启服务生效 |
名字 | timestamp_precision |
---|
描述 | 时间戳精度,支持ms、us、ns |
类型 | String |
默认值 | ms |
改后生效方式 | 触发生效 |
名字 | default_ttl |
---|
描述 | ttl时间,单位ms |
类型 | long |
默认值 | 36000000 |
改后生效方式 | 重启服务生效 |
数据类型自动推断
- enable_auto_create_schema
名字 | enable_auto_create_schema |
---|
描述 | 当写入的序列不存在时,是否自动创建序列到Schema |
取值 | true or false |
默认值 | true |
改后生效方式 | 重启服务生效 |
- default_storage_group_level
名字 | default_storage_group_level |
---|
描述 | 当写入的数据不存在且自动创建序列时,若需要创建相应的存储组,将序列路径的哪一层当做存储组. 例如, 如果我们接到一个新序列 root.sg0.d1.s2, 并且level=1, 那么root.sg0被视为存储组(因为root是level 0 层) |
取值 | 整数 |
默认值 | 1 |
改后生效方式 | 重启服务生效 |
- boolean_string_infer_type
名字 | boolean_string_infer_type |
---|
描述 | “true” 或者 “false” 被视为什么数据 |
取值 | BOOLEAN 或者 TEXT |
默认值 | BOOLEAN |
改后生效方式 | 重启服务生效 |
- integer_string_infer_type
名字 | integer_string_infer_type |
---|
描述 | 整数型数据被推断成什么 |
取值 | INT32, INT64, FLOAT, DOUBLE, TEXT |
默认值 | FLOAT |
改后生效方式 | 重启服务生效 |
名字 | nan_string_infer_type |
---|
描述 | NaN 字符串被推断为什么 |
取值 | DOUBLE, FLOAT or TEXT |
默认值 | DOUBLE |
改后生效方式 | 重启服务生效 |
- floating_string_infer_type
名字 | floating_string_infer_type |
---|
描述 | “6.7”等浮点数被推断为什么 |
取值 | DOUBLE, FLOAT or TEXT |
默认值 | FLOAT |
改后生效方式 | 重启服务生效 |
名字 | long_string_infer_type |
---|
描述 | long(num > 2 ^ 24)被推断为什么 |
取值 | DOUBLE, FLOAT or TEXT |
默认值 | DOUBLE |
改后生效方式 | 重启服务生效 |
名字 | default_boolean_encoding |
---|
描述 | BOOLEAN类型编码格式 |
取值 | PLAIN, RLE |
默认值 | RLE |
改后生效方式 | 重启服务生效 |
名字 | default_int32_encoding |
---|
描述 | int32类型编码格式 |
取值 | PLAIN, RLE, TS_2DIFF, REGULAR, GORILLA |
默认值 | RLE |
改后生效方式 | 重启服务生效 |
名字 | default_int64_encoding |
---|
描述 | int64类型编码格式 |
取值 | PLAIN, RLE, TS_2DIFF, REGULAR, GORILLA |
默认值 | RLE |
改后生效方式 | 重启服务生效 |
名字 | default_float_encoding |
---|
描述 | float类型编码格式 |
取值 | PLAIN, RLE, TS_2DIFF, GORILLA |
默认值 | GORILLA |
改后生效方式 | 重启服务生效 |
名字 | default_double_encoding |
---|
描述 | double类型编码格式 |
取值 | PLAIN, RLE, TS_2DIFF, GORILLA |
默认值 | GORILLA |
改后生效方式 | 重启服务生效 |
名字 | default_text_encoding |
---|
描述 | text类型编码格式 |
取值 | PLAIN |
默认值 | PLAIN |
改后生效方式 | 重启服务生效 |
开启GC日志
GC日志默认是关闭的。为了性能调优,用户可能会需要收集GC信息。 若要打开GC日志,则需要在启动IoTDB Server的时候加上”printgc”参数:
nohup sbin/start-server.sh printgc >/dev/null 2>&1 &
或者
sbin\start-server.bat printgc
GC日志会被存储在IOTDB_HOME/logs/gc.log
. 至多会存储10个gc.log文件,每个文件最多10MB。