IoTDB 集群高效管理:一键启停功能介绍

如何快速启动、停止 IoTDB 集群节点的功能详解!

在部署 IoTDB 集群时,对于基础的单机模式,启动过程相对简单,仅需执行 start-standalone 脚本来启动 1 个 ConfigNode 节点和 1 个 DataNode 节点。然而,对于更高级的分布式模式,如 3C3D(3 个 ConfigNode 节点和 3 个 DataNode 节点),则需要在每个节点的主机上分别配置相应的配置文件,并逐一执行 start 脚本以启动集群。

随着节点数量的增加,手动启动过程变得繁琐且效率低下。为了提升部署效率,实现快速且自动化的集群启动与管理,我们提供了一个集中化的脚本工具,以支持一键式启动和停止多个节点的操作。

01 什么是一键启停集群功能?

在 IoTDB 的根目录中,sbin 子目录包含了 start-all.shstop-all.sh 脚本,这些脚本与 conf 子目录中的 iotdb-cluster.properties 配置文件协同工作,提供了在 Linux 操作系统环境下实现集群的一键式启动和停止功能。通过这种方式,可以高效地管理 IoTDB 集群的生命周期,简化了部署和运维流程。

02 如何使用一键启停集群功能?

我们需要在 IoTDB 根目录下的 conf 目录下的 iotdb-cluster.properties 文件中配置 IoTDB 的节点信息以及节点所在主机信息。详情如下。

步骤一:填写 iotdb-cluster.properties 配置文件

bash 复制代码
# Configure ConfigNodes machine addresses separated by ,
confignode_address_list=
# Configure DataNodes machine addresses separated by ,
datanode_address_list=
# User name for logging in to the deployment machine using ssh
ssh_account=root
# ssh login port
ssh_port=22
# iotdb deployment directory (iotdb should be deployed to the following folders in all machines)
confignode_deploy_path=
datanode_deploy_path=

**confignode_address_list:**待启动/停止的 ConfigNode 节点所在主机的 IP 列表,如果有多个需要用","分隔。

**datanode_address_list:**待启动/停止的 DataNode 节点所在主机的 IP 列表,如果有多个需要用","分隔。

**ssh_account:**通过 SSH 登陆目标主机的用户名,需要所有的主机的用户名都相同,默认用户是 root。

**ssh_port:**目标主机对外暴露的 SSH 端口,需要所有的主机的用户名都相同,默认端口是 22。

**confignode_deploy_path:**待启动/停止的所有 ConfigNode 所在目标主机的路径,需要所有待启动/停止的 ConfigNode 节点在目标主机的相同目录下。

**datanode_deploy_path:**待启动/停止的所有 DataNode 所在目标主机的路径,需要所有待启动/停止的 DataNode 节点在目标主机的相同目录下。

注意:

如果在未配置 iotdb-cluster.properties 配置文件的情况下执行 start-all.sh 或者 stop-all.sh 脚本则默认会启停当前脚本所在 IOTDB_HOME 目录下的 ConfigNode 与 DataNode 节点

推荐配置 ssh 免密登录:未配过 ssh 免密登陆的用户在启动脚本后,会提示输入服务器密码以便于后续启动/停止/销毁操作。如果已经配过 ssh 免密登陆的,就不用在执行脚本过程中输入服务器密码。

当集群变更时,需要手动更新此配置文件。

步骤二:执行一键启动集群

bash 复制代码
./sbin/start-all.sh

执行此命令会依次启动 iotdb-cluster.properties 配置文件中所配置的 ConfigNode 和 DataNode。

步骤三:执行一键停止集群

bash 复制代码
./sbin/stop-all.sh

执行此命令会依次停止 iotdb-cluster.properties 配置文件中所配置的 ConfigNode 和 DataNode。

03 一键启/停集群的内部机制解读

(1)一键启动流程

在 IoTDB 集群的一键启动过程中,会遵循特定的启动顺序原则:首先启动集群的 SeedConfigNode 节点,随后将其他节点加入集群

首先,我们会识别并初始化脚本所在目录的父目录为 IOTDB_HOME 环境变量。

接着,脚本将检查 iotdb-cluster.properties 配置文件的存在性和完整性。

如果配置文件缺失或存在未填写的必填项,脚本将默认启动 IOTDB_HOME 目录下的单机 1C1D 模式,等同于运行 start-standalone.sh

若配置文件完整,脚本将依据配置项顺序启动目标主机上的 ConfigNode 节点,并在每个 ConfigNode 节点启动完成后,立即启动同一主机上的所有 DataNode 节点。随后,脚本将继续启动下一个 ConfigNode 节点,直至所有 ConfigNode 节点均已启动。

最后,脚本将依次启动剩余的未启动 DataNode 节点,确保集群的完整启动。

(2 )一键停止流程

在 IoTDB 集群的一键停止流程中,操作顺序与一键启动过程相反,但同样遵循初始化和配置检查的步骤。

首先,将当前脚本所在目录的上一级目录设置为 IoTDB_HOME 环境变量。

随后,脚本会检查 iotdb-cluster.properties 配置文件是否存在。

若文件缺失,则停止 IoTDB_HOME 目录下的单机 1C1D 模式,等同于运行 stop-standalone.sh

如果配置文件存在,脚本将验证其完整性,若发现必填项未填写,则同样停止单机 1C1D 模式。

若配置文件完整,脚本将根据配置项,先逐个停止目标主机上的 DataNode 节点,若同一主机上存在 ConfigNode 节点,将在 DataNode 节点停止后紧接着停止 ConfigNode 节点。脚本将继续此流程,直至所有 DataNode 节点停止。

最后,脚本将按顺序停止剩余的 ConfigNode 节点,确保集群的完整关闭。

这一过程确保了集群的有序关闭,同时避免了因停止顺序不当可能引起的问题。

04 总结

在本文中,我们探讨了如何通过精心设计的一键启停脚本工具,实现对 IoTDB 集群的高效管理。大家只需在 iotdb-cluster.properties 配置文件中填写必要的节点信息,即可享受到一键启动和停止集群的便利。我们强烈推荐配置 SSH 免密登录,以进一步简化部署和运维流程。这种自动化的解决方案不仅提升了集群的启动效率,还确保了集群的有序关闭,避免因操作不当带来的风险,是实现快速、可靠管理 IoTDB 集群的不二之选。

更多内容推荐:

了解如何使用 IoTDB 企业版

相关推荐
起风了10247 天前
IoTDB时序数据库使用
数据库·时序数据库·iotdb
程序小增10 天前
springboot+iotdb的应用
spring boot·后端·iotdb
Apache IoTDB1 个月前
如何评估和观测 IoTDB 所需的网络带宽?
iotdb
Apache IoTDB1 个月前
IoTDB 论文入选三大数据库顶会:ICDE、SIGMOD、VLDB 收录自研成果!
数据库·物联网·开源·时序数据库·iotdb
Apache IoTDB2 个月前
时序数据库 IoTDB 为什么选择 TPCx-IoT 基准测评?
数据库·物联网·时序数据库·iotdb
小康师兄3 个月前
IoTDB 入门教程 基础篇②——IoTDB 企业版比开源版本值在哪?
时序数据库·iotdb·timechodb·企业版本·开源版本
小康师兄3 个月前
IoTDB 入门教程 企业篇①——IoTDB企业版(TimechoDB)快速上手
时序数据库·iotdb·timechodb·天谋科技·企业版·免费试用
小康师兄3 个月前
IoTDB 入门教程 问题篇④——外网攻击导致OOM内存溢出,服务崩溃
时序数据库·oom·iotdb·内存溢出·服务崩溃·root密码·内存大小设置
小康师兄3 个月前
IoTDB 入门教程 实战篇④——C#示例(开源)
开源·c#·时序数据库·iotdb·csharp