IoTDB 集群环境搭建

什么是IoTDB

IoTDB(Internet of Things Database)是一个专门设计用于存储和管理大规模物联网(IoT)数据的开源时序数据库系统。它专注于高效地存储、查询和分析时间序列数据,特别适用于物联网应用中的大量实时数据。

IoTDB的主要特点包括:

  • 时序数据存储: IoTDB专为存储时间序列数据而设计,可以高效地存储各种类型的时间序列数据,如传感器数据、监控数据等。
  • 高性能: IoTDB通过多种优化策略实现高性能的数据写入和查询,支持实时数据的高速写入和查询。
  • 灵活的查询: IoTDB提供丰富的查询语言和查询接口,允许用户进行复杂的查询和分析操作。
  • 数据压缩: IoTDB支持数据压缩,可以减小存储空间占用,同时保持查询性能。
  • 多数据类型支持: IoTDB支持不同类型的数据,如数字、字符串、布尔值等。
  • 分布式支持: IoTDB可以在分布式环境下运行,支持数据分片和分布式查询,以应对大规模数据存储和查询需求。
  • 开源: IoTDB是开源的,可以免费使用、修改和分发。

IoTDB主要用于处理物联网领域的数据,例如工业自动化、智能家居、智能城市、智能农业等领域,这些领域通常涉及大量的实时数据采集和处理。通过使用IoTDB,开发人员可以更好地管理和分析这些大规模的时间序列数据。

安装相关软件

sudo yum install lsof net-tools -y

优化系统配置

sudo vim /etc/security/limits.conf
* soft nofile 655360
* hard nofile 131072
* soft nproc 655350
* hard nproc 655350
* seft memlock unlimited
* hard memlock unlimitedd

sudo vim /etc/sysctl.conf
net.core.somaxconn = 65535

# 重启电脑
reboot
  • soft nofile 655360:为所有用户设置软限制的最大文件句柄数为 655360。
  • hard nofile 131072:为所有用户设置硬限制的最大文件句柄数为 131072。
  • soft nproc 655350:为所有用户设置软限制的最大进程数为 655350。
  • hard nproc 655350:为所有用户设置硬限制的最大进程数为 655350。
  • soft memlock unlimited:为所有用户设置软限制的内存锁定为无限制。
  • hard memlock unlimited:为所有用户设置硬限制的内存锁定为无限制。

JDK17安装

# 下载 & 解压
cd /opt
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
tar -zxvf jdk-17_linux-x64_bin.tar.gz

# 配置环境变量
vim /etc/profile

export JAVA_HOME=/opt/jdk-17.0.8
export PATH=$JAVA_HOME/bin:$PATH

source /etc/profile

java -version

IoTDB安装

#https://www.apache.org/dyn/closer.cgi/iotdb/1.1.2/apache-iotdb-1.1.2-all-bin.zip
# 下载 & 解压
cd /opt
wget https://dlcdn.apache.org/iotdb/1.1.2/apache-iotdb-1.1.2-all-bin.zip
unzip apache-iotdb-1.1.2-all-bin.zip

IoTDB配置

cd /opt/apache-iotdb-1.1.2-all-bin

master 配置
vim config/iotdb-confignode.properties
cn_internal_address=172.31.7.114
cn_internal_port=10710
cn_consensus_port=10720
cn_target_config_node_list=172.31.7.114:10710

vim iotdb-datanode.properties
dn_rpc_address=172.31.7.114
dn_rpc_port=6667
dn_internal_address=172.31.7.114
dn_internal_port=10730
dn_mpp_data_exchange_port=10740
dn_schema_region_consensus_port=10750
dn_data_region_consensus_port=10760
dn_target_config_node_list=172.31.7.114:10710,172.31.5.102:10710,172.31.5.35:10710


slave1 配置
vim config/iotdb-confignode.properties
cn_internal_address=172.31.5.102
cn_internal_port=10710
cn_consensus_port=10720
cn_target_config_node_list=master:10710

vim iotdb-datanode.properties
dn_rpc_address=172.31.5.102
dn_rpc_port=6667
dn_internal_address=172.31.5.102
dn_internal_port=10730
dn_mpp_data_exchange_port=10740
dn_schema_region_consensus_port=10750
dn_data_region_consensus_port=10760
dn_target_config_node_list=172.31.7.114:10710,172.31.5.102:10710,172.31.5.35:10710


slave2 配置
vim config/iotdb-confignode.properties
cn_internal_address=172.31.5.35
cn_internal_port=10710
cn_consensus_port=10720
cn_target_config_node_list=master:10710

vim iotdb-datanode.properties
dn_rpc_address=172.31.5.35
dn_rpc_port=6667
dn_internal_address=172.31.5.35
dn_internal_port=10730
dn_mpp_data_exchange_port=10740
dn_schema_region_consensus_port=10750
dn_data_region_consensus_port=10760
dn_target_config_node_list=172.31.7.114:10710,172.31.5.102:10710,172.31.5.35:10710

为每台机器, 堆内存配置为机器内存的 1/4

vim conf/datanode-env.sh
vim conf/confignode-env.sh

MAX_HEAP_SIZE="4G"

启动与停止

# 启动
sbin/start-confignode.sh &
sbin/start-datanode.sh &

# 查看启动状态
tail -f logs/log_datanode_all.log
# 2023-08-22 06:55:53,761 [main] INFO  o.a.i.db.service.DataNode:184 - Congratulation, IoTDB DataNode is set up successfully. Now, enjoy yourself!

#停止
sbin/stop-datanode.sh
sbin/stop-confignode.sh

# 任意节点检验集群状态
sbin/start-cli.sh -h 172.31.7.114

sbin/start-cli.sh -h 172.31.5.102

sbin/start-cli.sh -h 172.31.5.35

show cluster;

集群启动时要先启动第一台,再运行后两台。才能做到3C3D
在这里插入图片描述

清理环境 ( 首次启动出现问题, 可尝试这里解决 )

sbin/stop-standalone.sh

ps -ef|grep iotdb

kill -9 <pid>

cd /opt/apache-iotdb-1.1.2-all-bin
rm -rf data logs

重启IoTDB

依次关停其他从机器, 再关停主机器

sbin/stop-datanode.sh
sbin/stop-confignode.sh

优先启动主机器, 再启动其他从机器 confignode

sbin/start-confignode.sh &

最后依次启动datanode

sbin/start-datanode.sh &

验证

# 进入任意节点 cli
# 执行插入数据
insert into root.abc.a123.b123 (time, test)values(now(), "Hello World");

# 执行查询数据
select * from root.abc.a123.b123;

# 删除某一个序列
delete from root.abc.a123.b123.status where time < now()

# 删除数据
delete from root.abc.a123.b123.* where time < 2023-08-22T20:55:08;

# 数据覆盖
insert into root.abc.a123.b123 (time, test)values(1692699108000, "Hello IoTDB");
insert into root.abc.a123.b123 (time, test)values(1692699108000, "Hello IoTDB !!!");

操作任意节点, 新增数据, 删除数据, 覆盖数据, 其他节点更新到对应的变化;

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

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

相关文章

视频云存储平台EasyCVR视频汇聚平台关于机电设别可视化管理平台可实施设计方案

随着工业化进程的不断发展&#xff0c;机电设备在各行各业中扮演着重要的角色。然而&#xff0c;由于机电设备种类繁多、数量庞大&#xff0c;包括生产机械、建筑器械、矿用器械、制药器械、食品机械等&#xff0c;传统的手动管理方式已经无法满足对设备进行精细化管理的需求。…

Linux知识点 -- Linux多线程(三)

Linux知识点 – Linux多线程&#xff08;三&#xff09; 文章目录 Linux知识点 -- Linux多线程&#xff08;三&#xff09;一、线程同步1.概念理解2.条件变量3.使用条件变量进行线程同步 二、生产者消费者模型1.概念2.基于BlockingQueue的生产者消费者模型3.单生产者单消费者模…

一篇文章告诉你,为什么要使用Javascript流程图来可视化进程?(下)

DHTMLX Diagram库是有各种类型的图组成的&#xff0c;其中最广泛使用的是JavaScript流程图&#xff0c;它可以显示任何类型的的工作流、过程或系统&#xff0c;您可以下载DHTMLX Diagram的评估版并亲自试用。 在上文中&#xff08;点击这里回顾>>&#xff09;&#xff0…

动态规划之路径问题

路径问题 1. 不同路径&#xff08;medium&#xff09;2. 不同路径II&#xff08;medium&#xff09;3. 礼物最大值&#xff08;medium&#xff09;4. 下降路径最小和&#xff08;medium&#xff09;5. 最⼩路径和&#xff08;medium&#xff09;6. 地下城游戏&#xff08;hard&…

7.elasticsearch同步工具-logstah

1.logstah Logstash 是一个用于数据处理和转换的开源工具&#xff0c;它可以将来自不同源头的数据收集、转换、过滤&#xff0c;并将其发送到不同的目标。Logstash 是 ELK&#xff08;Elasticsearch、Logstash 和 Kibana&#xff09;技术栈的一部分&#xff0c;通常与 Elastics…

实验篇——Ka/Ks分析

实验篇——Ka/Ks分析 文章目录 前言一、名词解释二、实操1. 安装软件2. 准备文件3. 使用ParaAT2.0 KaKs_Calculator2.04. 使用TBtools软件 三、额外总结 前言 鉴定不同基因的复制模式 本文得到的共线性基因对文件 来自于上一篇文章中的LIN.collinearity共线性文件 参考文章&…

设计模式(3)抽象工厂模式

一、概述&#xff1a; 1、提供一个创建一系列相关或相互依赖对象的接口&#xff0c;而无须指定它们具体的类。 2、结构图&#xff1a; 3、举例代码&#xff1a; &#xff08;1&#xff09; 实体&#xff1a; public interface IUser {public void insert(User user);public…

C++--动态规划两个数组的dp问题

1.最长公共子序列 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff0c;返回 0 。 一个字符串的 子序列 是指这样一个新的字符串…

Java 实现 国密SM4/ECB/PKCS7Padding对称加密解密

Java 实现 国密SM4/ECB/PKCS7Padding对称加密解密&#xff0c;为了演示方便本问使用的是IntelliJ IDEA 2022.1 (Community Edition)来构建代码的 1、pom.xml文件添加需要的jar <?xml version"1.0" encoding"UTF-8"?> <project xmlns"htt…

分布式事务(4):两阶段提交协议与三阶段提交区别

1 两阶段提交协议 两阶段提交方案应用非常广泛&#xff0c;几乎所有商业OLTP数据库都支持XA协议。但是两阶段提交方案锁定资源时间长&#xff0c;对性能影响很大&#xff0c;基本不适合解决微服务事务问题。 缺点&#xff1a; 如果协调者宕机&#xff0c;参与者没有协调者指…

SpringBoot 01 如何创建 和pom的解析

目录 1 Springboot的创建 步骤 2 项目的书写和运行 创建service包并在其下写一个service文件 项目的运行 pom文件的一些配置 parent web test 打包 打包过程 1 Springboot的创建 步骤 首先new一个新项目 然后依照如下创建 2 项目的书写和运行 创建service包并…

python接口自动化测试框架2.0,让你像Postman一样编写测试用例,支持多环境切换、多业务依赖、数据库断言等

项目介绍 接口自动化测试项目2.0 软件架构 本框架主要是基于 Python unittest ddt HTMLTestRunner log excel mysql 企业微信通知 Jenkins 实现的接口自动化框架。 前言 公司突然要求你做自动化&#xff0c;但是没有代码基础不知道怎么做&#xff1f;或者有自动化…

nginx基于端口如何配置虚拟主机

在 Nginx 中配置基于端口的虚拟主机&#xff08;也称为服务器块&#xff09;与配置基于域名的虚拟主机类似&#xff0c;但是你需要指定监听的端口。以下是基于端口的虚拟主机配置示例&#xff1a; 假设我们要配置两个不同的虚拟主机&#xff0c;一个监听 8080 端口&#xff0c…

vcomp140.dll丢失的修复方法分享,电脑提示vcomp140.dll丢失修复方法

今天&#xff0c;我的电脑出现了一个奇怪的问题&#xff0c;打开某些程序时总是提示“找不到vcomp140.dll文件”。这个问题让我非常头疼&#xff0c;因为我无法正常使用电脑上的一些重要软件。为了解决这个问题&#xff0c;我在网上查找了很多资料&#xff0c;并尝试了多种方法…

亮点!视频云存储/安防监控视频智能分析平台高空抛物AI智能检测

一、行业现状 近年来&#xff0c;高空抛物不文明事件频频发生&#xff0c;成为小区住宅的管理通病&#xff0c;也给居民的人身及财产安全带来了巨大伤害和损失。高空抛物可能导致人身事故等重大经济损失的严重危害&#xff0c;被称作“悬在城市上空的痛”。 TSINGSEE青犀AI智…

算法练习- 其他算法练习5

文章目录 宜居星球改造计划 宜居星球改造计划 yes no na 每个值为一个格子&#xff1b;每天yes的值可以向上下左右扩展一个格子&#xff0c;将no改为yes&#xff1b;矩形区域no是否可以全部转为yes&#xff0c;可以的话需要几天&#xff1f;不可以的话输出-1输入&#xff1a; …

基于FPGA的FIR低通滤波器实现(附工程源码),matlab+vivado19.2+simulation

基于FPGA的FIR低通滤波器实现(附工程源码) 文章目录 基于FPGA的FIR低通滤波器实现(附工程源码)前言一、matlab设计FIR滤波器&#xff0c;生成正弦波1.设计FIR滤波器1.生成正弦波.coe 二、vivado1.fir滤波器IP核2.正弦波生成IP核3.时钟IP核设置4.顶层文件/测试文件代码 三.simul…

Linux共享库基础及实例

共享库是将库函数打包成一个可执行文件&#xff0c;使得其在运行时可以被多个进程共享。 目标库 回顾下构建程序的一种方式&#xff1a; 将每个源文件编译成目标文件&#xff0c;再通过链接器将这些目标文件链接组成一个可执行程序。 gcc -g -c prog.c mod1.c mod2.c gcc -g …

2023国赛数学建模思路 - 案例:粒子群算法

文章目录 1 什么是粒子群算法&#xff1f;2 举个例子3 还是一个例子算法流程算法实现建模资料 # 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 什么是粒子群算法&#xff1f; 粒子群算法&#xff08;Pa…

C/C++:C/C++在大数据时代的应用,以及C/C++程序员未来的发展路线

目录 1.C/C在大数据时代的应用 1.1&#xff1a;C/C数据处理 1.2&#xff1a;C/C数据库 1.3&#xff1a;C/C图像处理和计算机视觉 1.3.1&#xff1a;导读 2.C/C程序员未来的发展路线 2.1&#xff1a;图导 1.C/C在大数据时代的应用 C/C在大数据时代中仍然是一种被广泛应用的编…