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

IoTDB服务安装教程-集群版

文章目录

    • 官方说明文档
    • 下载地址
    • 服务安装
      • 节点服务分配
      • 修改配置文件
      • 修改堆内存
      • 启动集群
        • 启动第一个节点
        • 启动其他两个节点的 ConfigNode 和 DataNode
        • 检验集群状态
        • 修改集群密码
      • 【附录】清理环境
    • 集群扩容
      • 修改配置
      • 扩容
      • 验证扩容结果
    • 集群缩容
      • 缩容一个 ConfigNode
      • 缩容一个 DataNode
      • 验证缩容结果

官方说明文档

https://iotdb.apache.org/zh/UserGuide/V1.2.x/Deployment-and-Maintenance/Deployment-Recommendation.html#%E9%83%A8%E7%BD%B2%E6%A8%A1%E5%BC%8F%E9%80%89%E5%9E%8B

下载地址

https://iotdb.apache.org/Download/

这里下载的1.2.2版本

链接: https://pan.baidu.com/s/1B1c2DTd1k8MA84V4CxdAjw?pwd=k5c8 提取码: k5c8

安装包目录结构

/data/iotdb/
├── conf    # 配置文件
├── lib     # jar library
├── sbin    # 启动/停止等脚本
└── tools   # 其他工具

服务安装

节点服务分配

节点IP192.168.132.10192.168.132.11192.168.132.12
服务ConfigNodeConfigNodeConfigNode
服务DataNodeDataNodeDataNode

端口占用:

服务ConfigNodeDataNode
端口10710, 107206667, 10730, 10740, 10750, 10760

修改配置文件

配置文件在 /data/iotdb/conf目录下。

配置文件配置项IP:192.168.132.10IP:192.168.132.11IP:192.168.132.12
iotdb-confignode.propertiescn_internal_address192.168.132.10192.168.132.11192.168.132.12
cn_target_config_node_list192.168.132.10:10710192.168.132.10:10710192.168.132.10:10710
iotdb-datanode.propertiesdn_rpc_address192.168.132.10192.168.132.11192.168.132.12
dn_internal_address192.168.132.10192.168.132.11192.168.132.12
dn_target_config_node_list192.168.132.10:10710192.168.132.10:10710192.168.132.10:10710

修改堆内存

confignode-env.sh 设置 MAX_HEAP_SIZE="2G"

datanode-env.sh设置MAX_HEAP_SIZE="16G"

  • JVM堆内存配置: confignode-env.shdatanode-env.sh 内配置MAX_HEAP_SIZE, 建议设置值大于等于1G。ConfigNode 1~2G就足够了,DataNode的内存配置则要取决于数据接入的数据量和查询数据量。

启动集群

启动第一个节点

即上面表格中cn_target_config_node_list配置的节点。
登录该节点 192.168.132.10,执行下面命令:

cd /data/iotdb
# 启动 ConfigNode 和 DataNode 服务
sbin/start-standalone.sh# 查看 DataNode 日志以确定启动成功
tail -f logs/log_datanode_all.log
# 期望看见类似下方的日志
# 2023-07-21 20:26:01,881 [main] INFO  o.a.i.db.service.DataNode:192 - Congratulation, IoTDB DataNode is set up successfully. Now, enjoy yourself!

如果没有看到上面所说的日志或者看到了 Exception,那么代表启动失败了。请查看 /data/iotdb/logs 目录内的log_confignode_all.loglog_datanode_all.log 日志文件。

注意

  • 要保证第一个节点启动成功后,再启动其他节点。确切的说,要先保证第一个 ConfigNode 服务启动成功,即cn_target_config_node_list配置的节点。

  • 如果启动失败,需要清理环境(参考清理环境章节)后,再次启动。

  • ConfigNode 和 DataNode 服务都可以单独启动:

    # 单独启动 ConfigNode, 后台启动
    sbin/start-confignode.sh -d
    # 单独启动 DataNode,后台启动
    sbin/start-datanode.sh -d
    
启动其他两个节点的 ConfigNode 和 DataNode

在节点 192.168.132.11 和 192.168.132.12 两个节点上分别执行:

cd /data/iotdb
# 启动 ConfigNode 和 DataNode 服务
sbin/start-standalone.sh

如果启动失败,需要在所有节点执行清理环境后,然后从启动第一个节点开始,再重新执行一次。

检验集群状态

在任意节点上,在 Cli 执行 show cluster:

/data/iotdb/sbin/start-cli.sh -h 192.168.132.10
IoTDB>show cluster;
# 示例结果如下:
+------+----------+-------+---------------+------------+-------+---------+
|NodeID|  NodeType| Status|InternalAddress|InternalPort|Version|BuildInfo|
+------+----------+-------+---------------+------------+-------+---------+
|     0|ConfigNode|Running| 192.168.132.10|       10710|1.x.x  |  xxxxxxx|
|     1|  DataNode|Running| 192.168.132.10|       10730|1.x.x  |  xxxxxxx|
|     2|ConfigNode|Running| 192.168.132.11|       10710|1.x.x  |  xxxxxxx|
|     3|  DataNode|Running| 192.168.132.11|       10730|1.x.x  |  xxxxxxx|
|     4|ConfigNode|Running| 192.168.132.12|       10710|1.x.x  |  xxxxxxx|
|     5|  DataNode|Running| 192.168.132.12|       10730|1.x.x  |  xxxxxxx|
+------+----------+-------+---------------+------------+--------------+---------+

说明:
start-cli.sh -h 后指定的IP地址,可以是任意一个 DataNode 的IP地址。

修改集群密码
 bash sbin/start-cli.sh -h 172.16.24.224 -p 6667 -u root -pw rootALTER USER root SET PASSWORD '123123';

【附录】清理环境

在所有节点执行:

  1. 结束 ConfigNode 和 DataNode 进程。
# 1. 停止 ConfigNode 和 DataNode 服务
sbin/stop-standalone.sh# 2. 检查是否还有进程残留
jps
# 或者
ps -ef|gerp iotdb# 3. 如果有进程残留,则手动kill
kill -9 <pid>
# 如果确定机器上仅有1个iotdb,可以使用下面命令清理残留进程
ps -ef|grep iotdb|grep -v grep|tr -s '  ' ' ' |cut -d ' ' -f2|xargs kill -9
  1. 删除 data 和 logs 目录。
cd /data/iotdb
rm -rf data logs

说明:删除 data 目录是必要的,删除 logs 目录是为了纯净日志,非必需。

集群扩容

扩容方式与上方启动其他节点相同。也就是,在要添加的节点上,下载IoTDB的安装包,解压,修改配置,然后启动。这里要添加节点的IP为 192.168.132.13
注意:

  • 扩容的节点必须是干净的节点,不能有数据(也就是data目录)
  • iotdb-common.properties中的cluster_name的配置必须和已有集群一致。
  • cn_target_config_node_listdn_target_config_node_list的配置必须和已有集群一致。
  • 原有数据不会移动到新节点,新创建的元数据分区和数据分区很可能在新的节点。

修改配置

按照下表修改相应的配置文件:

配置配置项IP:192.168.132.13
iotdb-confignode.propertiescn_internal_address192.168.132.13
cn_target_config_node_list192.168.132.10:10710
iotdb-datanode.propertiesdn_rpc_address192.168.132.13
dn_internal_address192.168.132.13
dn_target_config_node_list192.168.132.10:10710

扩容

在新增节点192.168.132.13上,执行:

cd /data/iotdb
# 启动 ConfigNode 和 DataNode 服务
sbin/start-standalone.sh

验证扩容结果

在 Cli 执行 show cluster,结果如下:

/data/iotdb/sbin/start-cli.sh -h 192.168.132.10
IoTDB>show cluster;
# 示例结果如下:
+------+----------+-------+---------------+------------+-------+---------+
|NodeID|  NodeType| Status|InternalAddress|InternalPort|Version|BuildInfo|
+------+----------+-------+---------------+------------+-------+---------+
|     0|ConfigNode|Running| 192.168.132.10|       10710|1.x.x  |  xxxxxxx|
|     1|  DataNode|Running| 192.168.132.10|       10730|1.x.x  |  xxxxxxx|
|     2|ConfigNode|Running| 192.168.132.11|       10710|1.x.x  |  xxxxxxx|
|     3|  DataNode|Running| 192.168.132.11|       10730|1.x.x  |  xxxxxxx|
|     4|ConfigNode|Running| 192.168.132.12|       10710|1.x.x  |  xxxxxxx|
|     5|  DataNode|Running| 192.168.132.12|       10730|1.x.x  |  xxxxxxx|
|     6|ConfigNode|Running| 192.168.132.13|       10710|1.x.x  |  xxxxxxx|
|     7|  DataNode|Running| 192.168.132.13|       10730|1.x.x  |  xxxxxxx|
+------+----------+-------+---------------+------------+-------+---------+

集群缩容

注意:

  • 可以在任何一个集群内的节点上,执行缩容操作。
  • 集群内的任意节点都可以被缩容。但是存留的 DataNode 服务不能小于副本数设置。
  • 请耐心等待缩容脚本执行结束,并仔细阅读日志说明,尤其是结束前的指南说明。

缩容一个 ConfigNode

cd /data/iotdb
# 方式一:使用 ip:port 移除
sbin/remove-confignode.sh 192.168.132.13:10710# 方式二:使用节点编号移除, `show cluster`中的 NodeID 
sbin/remove-confignode.sh 6

缩容一个 DataNode

cd /data/iotdb
# 方式一:使用 ip:port 移除
sbin/remove-datanode.sh 192.168.132.13:6667# 方式二:使用节点编号移除, `show cluster`中的 NodeID
sbin/remove-confignode.sh 7

验证缩容结果

在 Cli 执行 show cluster,结果如下:

+------+----------+-------+---------------+------------+-------+---------+
|NodeID|  NodeType| Status|InternalAddress|InternalPort|Version|BuildInfo|
+------+----------+-------+---------------+------------+-------+---------+
|     0|ConfigNode|Running| 192.168.132.10|       10710|1.x.x  |  xxxxxxx|
|     1|  DataNode|Running| 192.168.132.10|       10730|1.x.x  |  xxxxxxx|
|     2|ConfigNode|Running| 192.168.132.11|       10710|1.x.x  |  xxxxxxx|
|     3|  DataNode|Running| 192.168.132.11|       10730|1.x.x  |  xxxxxxx|
|     4|ConfigNode|Running| 192.168.132.12|       10710|1.x.x  |  xxxxxxx|
|     5|  DataNode|Running| 192.168.132.12|       10730|1.x.x  |  xxxxxxx|
+------+----------+-------+---------------+------------+-------+---------+

相关文章:

  • Python爬取酷我音乐
  • LangChain 26: 回调函数callbacks打印prompt verbose调用
  • Java对List<Map>进行合并去重
  • k8s一键部署uniswap
  • LeetCode力扣每日一题(Java):35、搜索插入位置
  • SQLMAP的使用(rails 为例)
  • SQL注入一般过程
  • Spring boot 发送邮箱
  • flutter 底部弹窗和中间弹窗
  • 分布式搜索引擎02
  • at least 1 bean which qualifies as autowire candidate
  • Jenkins的几种安装方式以及邮件配置
  • 基于深度学习的yolov5入侵检测系统
  • 微服务1 springcloud学习笔记P1-P40
  • C++ 设计模式 Forward Declaration Pimpl
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • CentOS7简单部署NFS
  •  D - 粉碎叛乱F - 其他起义
  • DataBase in Android
  • IndexedDB
  • isset在php5.6-和php7.0+的一些差异
  • nodejs调试方法
  • Python_OOP
  • spring-boot List转Page
  • vue中实现单选
  • 前端技术周刊 2019-01-14:客户端存储
  • 前端路由实现-history
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 算法---两个栈实现一个队列
  • 算法之不定期更新(一)(2018-04-12)
  • 学习ES6 变量的解构赋值
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 应用生命周期终极 DevOps 工具包
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • 选择阿里云数据库HBase版十大理由
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (Forward) Music Player: From UI Proposal to Code
  • (Java)【深基9.例1】选举学生会
  • (pytorch进阶之路)扩散概率模型
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (分类)KNN算法- 参数调优
  • (九)One-Wire总线-DS18B20
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转载)虚函数剖析
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET Core 成都线下面基会拉开序幕
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET MVC 验证码
  • .NET Standard 的管理策略
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)