IOTDB集群部署

背景

IOTDB单节点的数据插入性能不是很好,所以,想看看集群的效果,那么就需要搭建集群的环境

文件获取

下载地址(选择集群版本)

 文件目录

完成IoTDB Cluster安装后,默认会在IoTDB Cluster的根目录下生成下列目录文件:

目录说明
conf配置文件目录
data默认数据文件目录,可通过修改配置文件修改位置
ext默认udf目录,可通过修改配置文件修改位置
lib库文件目录
logs运行日志目录
sbin可执行文件目录
tools系统工具目录

配置文件

位置:{cluster_root_dir}/conf

为方便 IoTDB Server 的配置与管理,IoTDB Server 为用户提供三种配置项,使得您可以在启动服务或服务运行时对其进行配置。

三种配置项的配置文件均位于 IoTDB 安装目录:$IOTDB_HOME/conf文件夹下,其中涉及 server 配置的共有 4 个文件,分别为:iotdb-cluster.propertiesiotdb-engine.propertieslogback.xml 和 iotdb-env.sh(Unix 系统)/iotdb-env.bat(Windows 系统), 您可以通过更改其中的配置项对系统运行的相关配置项进行配置。

配置文件的说明如下:

文件        文件说明
iotdb-env.sh/iotdb-env.bat环境配置项的默认配置文件。可配置 JAVA-JVM 的相关系统配置项
iotdb-engine.propertiesIoTDB 引擎层系统配置项的默认配置文件。可配置 IoTDB 引擎运行时的相关参数。此外,用户可以在文件中配置 IoTDB 存储时 TsFile 文件的相关信息,如每次将内存中的数据写入到磁盘前的缓存大小 (group_size_in_byte),内存中每个列打一次包的大小 (page_size_in_byte) 等
logback.xml日志配置文件,比如日志级别等
iotdb-cluster.propertiesIoTDB 集群所需要的一些配置

需要做的修改 

IOT集群配置文件

文件名       配置项配置项描述
iotdb-engine.properties

rpc_address

rpc的主机地址
cpr_portrpc的主机端口
base_dir基础文件目录
data_dirs数据存放目录
wal_dir

wal包存放目录

iotdb-cluster.properties

internal_ip

IOTDB 集群各个节点之间内部通信的 IP 地址

internal_meta_port

IoTDB meta 服务端口
internal_data_portIoTDB data 服务端口
cluster_info_public_port用于查看集群信息
seed_nodes集群中节点的地址

default_replica_num

集群副本数

1、单机部署集群 

 配置

(PS: 在原有文件上修改,更改需要更改的配置,其他维持不变

可在conf同目录下复制三个节点,并按照下面的配置文件进行修改配置

通过自己修改配置来处理端口和文件目录冲突,可以在一台机器上启动多个实例

# 复制node1
cp -r conf/ node1/
# 复制node2
cp -r conf/ node2/
# 复制node3
cp -r conf/ node3/
# 节点1:(默认)
iotdb-cluster.properties
seed_nodes = 127.0.0.1:9003,127.0.0.1:9005,127.0.0.1:9007
default_replica_num = 1
internal_meta_port = 9003
internal_data_port = 40010

# engine文件配置
iotdb-engine.properties
rpc_port=6667
system_dir=data/system data_dirs=data/data wal_dir=data/wal index_root_dir=data/index udf_root_dir=ext/udf tracing_dir=data/tracing
# 节点2:
iotdb-cluster.properties
seed_nodes = 127.0.0.1:9003,127.0.0.1:9005,127.0.0.1:9007
default_replica_num = 1
internal_meta_port = 9005
internal_data_port = 40012
#  iotdb-engine.properties配置
iotdb-engine.properties
rpc_port=6669
system_dir=node2/system data_dirs=node2/data wal_dir=node2/wal index_root_dir=node2/index udf_root_dir=node2/ext/udf tracing_dir=node2/tracing
# 节点3
iotdb-cluster.properties
seed_nodes = 127.0.0.1:9003,127.0.0.1:9005,127.0.0.1:9007
default_replica_num = 1
internal_meta_port = 9007
internal_data_port = 40014
# iotdb-engine.properties配置 
iotdb-engine.properties
rpc_port=6671
system_dir=node3/system data_dirs=node3/data wal_dir=node3/wal index_root_dir=node3/index udf_root_dir=node3/ext/udf tracing_dir=node3/tracing

 启动各个节点

# 启动节点1
nohup ./sbin/start-node.sh  ./node1/ >/dev/null 2>&1 &
# 启动节点2
nohup ./sbin/start-node.sh  ./node2/ >/dev/null 2>&1 &
# 启动节点3
nohup ./sbin/start-node.sh  ./node3/ >/dev/null 2>&1 &

 2、3节点部署集群

配置 

(PS: 在原有文件上修改,更改需要更改的配置,其他维持不变

这里只更改了其中几个参数,其他参数依据需要进行更改

# 各个节点(配置):
# iotdb-cluster.properties配置项

seed_nodes = A_private_Ip:9003,B_private_Ip:9003,C_private_Ip:9003
default_replica_num = 3
internal_ip = A_private_Ip (or B_private_Ip, C_private_Ip)

# iotdb-enginer.properties配置项
rpc_address = A_public_Ip (or B_private_Ip, C_public_Ip)

在各个节点上启动服务 

# 启动节点1
nohup ./sbin/start-node.sh  >/dev/null 2>&1 &

备注

保证三个节点的 6567, 6667, 9003, 9004, 40010, 40011 和 31999 端口是开放的

3、启动后查看

1、使用cli工具链接数据库(start-cli.sh)

当集群部署的时候,该命令需要指定主机地址

2、查看启动日志

 

附录

集群配置项解读

  • internal_ip 
名字internal_ip
描述IOTDB 集群各个节点之间内部通信的 IP 地址,比如心跳、snapshot 快照、raft log 等
类型String
默认值127.0.0.1
改后生效方式重启服务生效,集群建立后不可再修改
  • internal_meta_port
名字internal_meta_port
描述IoTDB meta 服务端口,用于元数据组(又称集群管理组)通信,元数据组管理集群配置和存储组信息** IoTDB 将为每个 meta 服务自动创建心跳端口。默认 meta 服务心跳端口为internal_meta_port+1,请确认这两个端口不是系统保留端口并且未被占用**
类型Int32
默认值9003
改后生效方式重启服务生效,集群建立后不可再修改
  • internal_data_port
名字internal_data_port
描述IoTDB data 服务端口,用于数据组通信,数据组管理数据模式和数据的存储** IoTDB 将为每个 data 服务自动创建心跳端口。默认的 data 服务心跳端口为internal_data_port+1。请确认这两个端口不是系统保留端口并且未被占用**
类型Int32
默认值40010
改后生效方式重启服务生效,集群建立后不可再修改
  • cluster_info_public_port
名字cluster_info_public_port
描述用于查看集群信息(如数据分区)的 RPC 服务的接口
类型Int32
默认值6567
改后生效方式重启服务生效
  • open_server_rpc_port
名字open_server_rpc_port
描述是否打开单机模块的 rpc port,用于调试模式,如果设置为 true,则单机模块的 rpc port 设置为rpc_port (in iotdb-engines.properties) + 1
类型Boolean
默认值false
改后生效方式重启服务生效,集群建立后不可再修改
  • seed_nodes
名字seed_nodes
描述集群中节点的地址,{IP/DOMAIN}:internal_meta_port格式,用逗号分割;对于伪分布式模式,可以都填写localhost,或是127.0.0.1 或是混合填写,但是不能够出现真实的 ip 地址;对于分布式模式,支持填写 real ip 或是 hostname,但是不能够出现localhost或是127.0.0.1。当使用start-node.sh(.bat)启动节点时,此配置意味着形成初始群集的节点,每个节点的seed_nodes应该一致,否则群集将初始化失败;当使用add-node.sh(.bat)添加节点到集群中时,此配置项可以是集群中已经存在的任何节点,不需要是用start-node.sh(bat)构建初始集群的节点。
类型String
默认值127.0.0.1:9003,127.0.0.1:9005,127.0.0.1:9007
改后生效方式重启服务生效
  • rpc_thrift_compression_enable
名字rpc_thrift_compression_enable
描述是否开启 thrift 压缩通信,注意这个参数要各个节点保持一致,也要与客户端保持一致,同时也要与iotdb-engine.propertiesrpc_thrift_compression_enable参数保持一致
类型Boolean
默认值false
改后生效方式重启服务生效,需要整个集群同时更改
  • default_replica_num
名字default_replica_num
描述集群副本数
类型Int32
默认值3
改后生效方式重启服务生效,集群建立后不可更改
  • multi_raft_factor
名字multi_raft_factor
描述每个数据组启动的 raft 组实例数量,默认每个数据组启动一个 raft 组
类型Int32
默认值1
改后生效方式重启服务生效,集群建立后不可更改
  • cluster_name
名字cluster_name
描述集群名称,集群名称用以标识不同的集群,一个集群中所有节点的 cluster_name 都应相同
类型String
默认值default
改后生效方式重启服务生效
  • connection_timeout_ms
名字connection_timeout_ms
描述同一个 raft 组各个节点之间的心跳超时时间,单位毫秒
类型Int32
默认值20000
改后生效方式重启服务生效
  • read_operation_timeout_ms
名字read_operation_timeout_ms
描述读取操作超时时间,仅用于内部通信,不适用于整个操作,单位毫秒
类型Int32
默认值30000
改后生效方式重启服务生效
  • write_operation_timeout_ms
名字write_operation_timeout_ms
描述写入操作超时时间,仅用于内部通信,不适用于整个操作,单位毫秒
类型Int32
默认值30000
改后生效方式重启服务生效
  • min_num_of_logs_in_mem
名字min_num_of_logs_in_mem
描述删除日志操作执行后,内存中保留的最多的提交的日志的数量。增大这个值将减少在 CatchUp 使用快照的机会,但也会增加内存占用量
类型Int32
默认值100
改后生效方式重启服务生效
  • max_num_of_logs_in_mem
名字max_num_of_logs_in_mem
描述当内存中已提交的日志条数达到这个值之后,就会触发删除日志的操作,增大这个值将减少在 CatchUp 使用快照的机会,但也会增加内存占用量
类型Int32
默认值1000
改后生效方式重启服务生效
  • log_deletion_check_interval_second
名字log_deletion_check_interval_second
描述检查删除日志任务的时间间隔,每次删除日志任务将会把已提交日志超过 min_num_of_logs_in_mem 条的最老部分删除,单位秒
类型Int32
默认值60
改后生效方式重启服务生效
  • enable_auto_create_schema
名字enable_auto_create_schema
描述是否支持自动创建 schema,这个值会覆盖iotdb-engine.propertiesenable_auto_create_schema的配置
类型BOOLEAN
默认值true
改后生效方式重启服务生效
  • consistency_level
名字consistency_level
描述读一致性,目前支持 3 种一致性:strong、mid、weak。strong consistency 每次操作都会尝试与 Leader 同步以获取最新的数据,如果失败(超时),则直接向用户返回错误; mid consistency 每次操作将首先尝试与 Leader 进行同步,但是如果失败(超时),它将使用本地当前数据向用户提供服务; weak consistency 不会与 Leader 进行同步,而只是使用本地数据向用户提供服务
类型strong、mid、weak
默认值mid
改后生效方式重启服务生效
  • is_enable_raft_log_persistence
名字is_enable_raft_log_persistence
描述是否开启 raft log 持久化
类型BOOLEAN
默认值true
改后生效方式重启服务生效

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IoTDB 是一个轻量级、高效的开源物联网数据存储系统,它专门用于物联网设备产生的海量时序数据的存储和管理。而 Spring Boot 是一个基于 Java 的开源框架,用于简化新兴的微服务架构中的应用程序开发。通过结合 IoTDB 和 Spring Boot,可以实现物联网设备数据的实时存储和快速访问。 首先,结合 IoTDB 和 Spring Boot 可以创建一个高效的数据存储和管理系统,可以支持大规模的物联网设备数据接入和存储。通过使用 Spring Boot 提供的快速开发功能,可以更快速地搭建出一个完整的物联网数据处理系统,并且可以通过 Spring Boot 提供的各种配置和扩展功能来满足不同场景下的需求。 其次,IoTDB 和 Spring Boot 的结合还可以实现物联网设备数据的实时查询和分析功能。IoTDB 提供了高效的数据存储和查询能力,而 Spring Boot 可以通过集成各种数据分析和可视化组件,实现对物联网数据的实时监控和分析。 最后,IoTDB 和 Spring Boot 的结合也可以实现数据安全和权限管理功能。通过 Spring Boot 的安全框架,可以实现对物联网设备数据的访问权限控制和数据加密,以保障数据安全。 综上所述,IoTDB 和 Spring Boot 的结合可以实现物联网设备数据的高效存储、实时查询和分析、数据安全和权限管理等功能,为物联网数据处理系统的开发和应用提供了强大的支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值