当前位置: 首页 > news >正文

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

3e2f04332bcc98a28cd3f8ef203d424e.jpeg

如何快速启动、停止 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 集群的不二之选。

更多内容推荐:

• 了解如何使用 IoTDB 企业版

3ea70eee44dcd8068d9a9af87922beb0.gif

a290e75b96f259a90c8526ca9d5955f8.jpeg

b2cad2e3ef2dceb0476546545f47837c.jpeg

1f29a7b4449487667e681eb4c707550d.jpeg

d5eb5d6a3e48e1a32e96f31b5c51470f.gif

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 数据结构——排序算法(冒泡、快速、选择、插入)
  • Qt中使用RapidJSON
  • Gitea 仓库事件触发Jenkins远程构建
  • 从零编写一个神经网络完成手写数字的识别分类(pytorch实现)
  • 通过Bugly上报的日志查找崩溃闪退原因
  • Rust: 关于Pin以及move前后分析
  • Python基础-循环语句
  • 安全防御,防火墙配置NAT转换智能选举综合实验
  • 在家上网IP地址是固定的吗?
  • Is Temperature the Creativity Parameter of Large Language Models?阅读笔记
  • GitHub+Picgo图片上传
  • Web学习day04
  • 未来互联网的新篇章:深度解析Facebook的技术与战略
  • rust way step 1
  • 宏碁F5-572G-59K3笔记本笔记本电脑拆机清灰教程(详解)
  • SegmentFault for Android 3.0 发布
  • 0x05 Python数据分析,Anaconda八斩刀
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Debian下无root权限使用Python访问Oracle
  • Flex布局到底解决了什么问题
  • gulp 教程
  • java 多线程基础, 我觉得还是有必要看看的
  • Js基础知识(四) - js运行原理与机制
  • vue--为什么data属性必须是一个函数
  • 半理解系列--Promise的进化史
  • 产品三维模型在线预览
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 我是如何设计 Upload 上传组件的
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • raise 与 raise ... from 的区别
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • #Spring-boot高级
  • $forceUpdate()函数
  • (31)对象的克隆
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (C++20) consteval立即函数
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (七)Java对象在Hibernate持久化层的状态
  • (三十)Flask之wtforms库【剖析源码上篇】
  • (十八)Flink CEP 详解
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • .env.development、.env.production、.env.staging
  • .NET COER+CONSUL微服务项目在CENTOS环境下的部署实践
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .so文件(linux系统)
  • /bin、/sbin、/usr/bin、/usr/sbin
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)
  • [ 常用工具篇 ] POC-bomber 漏洞检测工具安装及使用详解
  • [12] 使用 CUDA 进行图像处理
  • [16/N]论得趣