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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/797255.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

9. Python的魔法函数

Python中的魔法函数 在Python中魔法函数是在为类赋能,使得类能够有更多操作。通过重写类中的魔法函数,可以完成很多具体的任务 1. __str__ 通过str魔法函数,可以设置对类的实例的 print() 内容 2. __len__ 通过len魔法函数,可…

在 vite+vue3+electron 中使用 express

文章目录 一、Vite Vue3 Electron 项目的搭建二、搭建 express 环境1、安装 express 框架所需依赖2、创建 express 项目3、配置路由4、启动 express 服务5、启动 electron 并获取数据 三、项目打包 一、Vite Vue3 Electron 项目的搭建 详细的项目构建和打包可参考另一篇文…

【数学建模】——力学模型建立的基本理论及方法

目录 一、基本理论 1. 牛顿力学 1.1 牛顿第一定律(惯性定律) 1.2 牛顿第二定律(动力学定律) 1.3 牛顿第三定律(作用反作用定律) 2. 能量守恒定律 2.1 动能和势能 2.2 能量守恒 3. 动量守恒定律…

【银河麒麟服务器操作系统】系统夯死分析及处理建议

了解银河麒麟操作系统更多全新产品,请点击访问麒麟软件产品专区:https://product.kylinos.cn 服务器环境以及配置 【机型】物理机 处理器: Intel 内存: 512G 整机类型/架构: X86_64 【内核版本】 4.19.90-25…

Perl语言之数组

Perl数组可以存储多个标量,并且标量数据类型可以不同。   数组变量以开头。访问与定义格式如下: #! /usr/bin/perl arr("asdfasd",2,23.56,a); print "输出所有:arr\n"; print "arr[0]$arr[0]\n"; #输出指定下标 print…

时间序列分析(Spss)

时间序列也称动态序列。指标数值按照时间顺序排列而成的数值序列。分三部分:描述过去,分析规律、预测未来。时间序列分析中常用的三种模型:季节分解、指数 平滑方法和ARIMA模型。 时期数据可加,时点数据不可加。(灰色预…

北摩高科应邀参加空客供应商大会

民航市场一直以来都是北摩高科重要的战略发展方向,进入国际航空巨头供应链体系也是公司的长期愿景。7月9日至10日,北摩高科公司应邀参与空客集团在天津举办的供应商大会及晚宴。 图1:空客集团采购总监Juergen Westermeier与北摩高科领导 会上…

7-4、5、6 react+ipfs上传文件数据及相关配置(react+区块链实战)

7-4、5、6 reactipfs上传文件数据及相关配置(react区块链实战) 7-4 reactipfs上传文件7-5 reactipfs 上传数据ipfs跨域配置7-6 reactipfs读取ipfs网络数据 7-4 reactipfs上传文件 引入之前安装的ipfs-api 在电脑后台启动ipfs的服务 ipfs daemon&#…

VSCode remote无法链接

报错信息如下: 远程主机密钥变化导致验证失败 无法连接 解决措施: 删除C:\Users\username.ssh\known_hosts中旧的主机密钥条目,重新连接

载波相位定位原理

在现代定位系统中,载波相位测距技术因其高精度而备受青睐。本文将探讨其工作原理,以及如何通过数学模型和算法来校正测量中的误差。 载波相位测距模型 载波相位测距是基于接收卫星发射的载波信号相位变化来进行距离测量的技术。它利用了信号传输过程中…

无障碍全免费上手智能体:Autogen Studio结合Deepseek Coder打造一款AI旅游规划师

本文的唯一目的是通过打造一款AI旅游规划师,通俗易懂、深入浅出的讲清楚AI应用的大方向-智能体-的原理。 无需科学上网,无需付费API,无需编程能力,一小时即可部署、搭建一款复杂的、多代理交互的AI智能体-旅游规划师,…

【C++初阶】类和对象(中)

【C初阶】类和对象(中) 🥕个人主页:开敲🍉 🔥所属专栏:C🥭 🌼文章目录🌼 1. 类的6个默认成员函数 2. 构造函数 2.1 构造函数概念 2.2 构造函数的特性 3. 析…

pytorch说明

深度学习中的重要概念: 激活函数: 激活函数的必要性:激活函数不是绝对必须的,但在深度学习中,它们几乎总是被使用。激活函数可以引入非线性,这使得神经网络能够学习更复杂的模式。 激活函数的位置&#x…

阿里云产品流转

本文主要记述如何使用阿里云对数据进行流转,这里只是以topic流转(再发布)为例进行说明,可能还会有其他类型的流转,不同服务器的流转也可能会不一样,但应该大致相同。 1 创建设备 具体细节可看:…

免费的AI抠图工具 毫秒级抠图 离线可用 -鲜艺AI抠图

鲜艺AI抠图是一款免费的AI抠图工具,不登录、不联网,内嵌 AI 模型,快至毫秒级抠图,支持批量抠图,支持点击按钮选择图片、拖入图片、粘贴图片、粘贴图片链接、从网页拖入图片,支持Windows和macos,…

Vue el-input 限制输入内容

&#x1f914;日常项目中经常遇到既要el-input的样式&#xff0c;又要el-input-number限制&#xff0c;所以需要绑定input事件进行约束输入限制。 以下使用自定义指令进行约束el-input输入的值&#xff0c;便于后期统一管理和拓展。 预览 代码 <!DOCTYPE html> <ht…

使用 NumPy 及其相关库(如 pandas、scikit-learn 等)时,由于 NumPy 的版本不兼容或者某些依赖库与 NumPy 的版本不匹配

题意&#xff1a; numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject 问题背景&#xff1a; I want to call my Python module from the Matlab. I received the error: Error using numpy_ops>init thi…

Go 初始化一个字典value是列表

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

react的解构赋值

我最近在用react讨生活。我的感觉&#xff0c;react开发效率不高。这当然应该是我还不熟悉react的缘故。但是&#xff0c;在阅读react代码过程中&#xff0c;其中一个容易困惑的地方是它到处充斥着的解构赋值。当然了&#xff0c;解构赋值并不是React特有的功能&#xff0c;而是…

秋招Java后端开发冲刺——MyBatisPlus总结

一、 基本知识 1. 介绍 yBatis-Plus 是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上增加了大量功能和简化操作&#xff0c;以提高开发效率。 2. 特点 无侵入&#xff1a;只做增强不做改变&#xff0c;引入它不会对现有项目产生影响。依赖少&#xff1a;仅仅依赖 …