首页 > 其他分享 >IoTDB服务安装教程-集群版

IoTDB服务安装教程-集群版

时间:2023-12-24 19:36:27浏览次数:46  
标签:教程 ConfigNode 192.168 xxxxxxx Running IoTDB DataNode 集群 节点



文章目录

  • 官方说明文档
  • 下载地址
  • 服务安装
  • 节点服务分配
  • 修改配置文件
  • 修改堆内存
  • 启动集群
  • 启动第一个节点
  • 启动其他两个节点的 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   # 其他工具

服务安装

节点服务分配

节点IP

192.168.132.10

192.168.132.11

192.168.132.12

服务

ConfigNode

ConfigNode

ConfigNode

服务

DataNode

DataNode

DataNode

端口占用:

服务

ConfigNode

DataNode

端口

10710, 10720

6667, 10730, 10740, 10750, 10760

修改配置文件

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

配置文件

配置项

IP:192.168.132.10

IP:192.168.132.11

IP:192.168.132.12

iotdb-confignode.properties

cn_internal_address

192.168.132.10

192.168.132.11

192.168.132.12

cn_target_config_node_list

192.168.132.10:10710

192.168.132.10:10710

192.168.132.10:10710

iotdb-datanode.properties

dn_rpc_address

192.168.132.10

192.168.132.11

192.168.132.12

dn_internal_address

192.168.132.10

192.168.132.11

192.168.132.12

dn_target_config_node_list

192.168.132.10:10710

192.168.132.10:10710

192.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 root
 ALTER 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.properties

cn_internal_address

192.168.132.13

cn_target_config_node_list

192.168.132.10:10710

iotdb-datanode.properties

dn_rpc_address

192.168.132.13

dn_internal_address

192.168.132.13

dn_target_config_node_list

192.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|
+------+----------+-------+---------------+------------+-------+---------+


标签:教程,ConfigNode,192.168,xxxxxxx,Running,IoTDB,DataNode,集群,节点
From: https://blog.51cto.com/u_13721902/8956780

相关文章

  • Go编程基础教程:Go容器化技术
    作者:禅与计算机程序设计艺术1.背景介绍目前互联网服务开发已经从单体应用模式升级到微服务架构模式。在微服务架构模式下,服务之间会相互调用,为了更好地管理和调优这些分布式系统,需要对其进行容器化,使得各个服务可以独立部署、资源分配、隔离等方面更加灵活高效。本文将通过Go语言......
  • 【Spring教程29】Spring框架实战:从零开始学习SpringMVC 之 服务器响应知识全面详解
    目录1环境准备2响应页面3返回文本数据4响应JSON数据5知识点总结欢迎大家回到《Java教程之Spring30天快速入门》,本教程所有示例均基于Maven实现,如果您对Maven还很陌生,请移步本人的博文《如何在windows11下安装Maven并配置以及IDEA配置Maven环境》,本文的上一篇为《SpringMVC......
  • Redis 分片集群搭建并使用 RedisTemplate 实现读写分离
    上篇博客介绍了Redis哨兵集群的搭建,虽然已经解决了master在宕机后,与slave之间会自动切换的问题,但是其承载的数据量天花板仍然是单机的最大内存容量,无法承载更多的数据量。本篇博客介绍Redis分片集群的搭建,集群内部拥有多个master节点,每个master存放的数据不一样,从而......
  • 无涯教程-PostgreSQL - Order By语句
    PostgreSQLORDERBY子句用于根据一个或多个列以升序或降序对数据进行排序。OrderBy-语法ORDERBY子句的基本语法如下-SELECTcolumn-listFROMtable_name[WHEREcondition][ORDERBYcolumn1,column2,..columnN][ASC|DESC];您可以在ORDERBY子句中使用多个列......
  • Hadoop集群迁移(元数据及HDFS数据)
    1.背景老集群采用的腾讯emr集群,使用过程中磁盘扩容成本费用高且开源组件兼容性存在问题,因此决定采用自建hadoop集群,需要将emr的元数据和hdfs基础数据迁移过来。EMR版本:3.1.2自建Hadoop版本:3.1.32.集群迁移步骤2.1数据迁移nohuphadoopdistcp-i-phdfs://emrhdf存储地址/......
  • Pycharm最新版2023.3.1激活教程 亲测有效
    第一步:官网下载安装包官网下载链接https://www.jetbrains.com/pycharm/download直接点击Download下载,等待安装程序下载完成。第二步:安装Pycharm最新版惯例哈,安装新版本之前先卸载老版本的程序,然后再安装新的。这里演示,默认安装路径了,最好安装在非系统盘路径,防止后期越用越大,电脑卡......
  • 无涯教程-PostgreSQL - Limit语句
    PostgreSQLLIMIT子句用于限制SELECT语句返回的数量。LimitClause-语法带LIMIT子句的SELECT语句的基本语法如下-SELECTcolumn1,column2,columnNFROMtable_nameLIMIT[noofrows]以下是LIMIT子句与OFFSET子句一起使用时的语法-SELECTcolumn1,column2,columnN......
  • 集群和服务器的区别
      001、服务器(server)01、服务器是一台独立的计算机或计算机系统(物理设备), 也可以是虚拟机或容器等虚拟化技术创建的逻辑实体, 用于提供特定的服务或功能。02、服务器负责处理客户端的请求,并提供所需的服务,如网站托管、数据库存储、文件共享等。03、服务器通常作为单个实体......
  • Python教程(17)——python模块是什么?python模块详解
    Python模块简介模块是一个包含了Python定义和语句的文件,可用于将功能组织成可重用和可维护的代码块。每个Python文件都可以作为一个模块,模块可以包含变量、函数、类或可执行代码。通过使用模块,我们可以将代码分离成逻辑单元,促进模块化编程。所以我们可以简单的理解为,一个py文件就......
  • 无涯教程-PostgreSQL - 更新数据(Update)
    PostgreSQLUPDATE查询用于修改表中的现有记录,您可以将WHERE子句与UPDATE查询一起使用来更新选定的行,否则,将更新所有行。使用WHERE子句的UPDATE查询的基本语法如下-UPDATEtable_nameSETcolumn1=value1,column2=value2....,columnN=valueNWHERE[condition];您可以使用......