如何快速启动、停止 IoTDB 集群节点的功能详解!
在部署 IoTDB 集群时,对于基础的单机模式,启动过程相对简单,仅需执行 start-standalone 脚本来启动 1 个 ConfigNode 节点和 1 个 DataNode 节点。然而,对于更高级的分布式模式,如 3C3D(3 个 ConfigNode 节点和 3 个 DataNode 节点),则需要在每个节点的主机上分别配置相应的配置文件,并逐一执行 start 脚本以启动集群。
随着节点数量的增加,手动启动过程变得繁琐且效率低下。为了提升部署效率,实现快速且自动化的集群启动与管理,我们提供了一个集中化的脚本工具,以支持一键式启动和停止多个节点的操作。
01
什么是一键启停集群功能?
在 IoTDB 的根目录中,sbin 子目录包含了 start-all.sh 和 stop-all.sh 脚本,这些脚本与 conf 子目录中的 iotdb-cluster.properties 配置文件协同工作,提供了在 Linux 操作系统环境下实现集群的一键式启动和停止功能。通过这种方式,可以高效地管理 IoTDB 集群的生命周期,简化了部署和运维流程。
02
如何使用一键启停集群功能?
我们需要在 IoTDB 根目录下的 conf 目录下的 iotdb-cluster.properties 文件中配置 IoTDB 的节点信息以及节点所在主机信息。详情如下。
步骤一:
填写 iotdb-cluster.properties 配置文件
# 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 免密登陆的,就不用在执行脚本过程中输入服务器密码。
当集群变更时,需要手动更新此配置文件。
步骤二:
执行一键启动集群
./sbin/start-all.sh
执行此命令会依次启动 iotdb-cluster.properties 配置文件中所配置的 ConfigNode 和 DataNode。
步骤三:
执行一键停止集群
./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 集群的不二之选。