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

Apache IoTDB(5):深度解析时序数据库 IoTDB 在 AINode 模式单机和集群的部署与实践

引言

Apache IoTDB 设计之初就专为物联网(IoT)场景而生,旨在提供一个集高性能数据写入、海量数据存储、低延迟分析查询于一体的一站式解决方案。

Apache IoTDB 时序数据库【系列篇章】

No.文章地址(点击进入)
1Apache IoTDB(1):时序数据库介绍与单机版安装部署指南
2Apache IoTDB(2):时序数据库 IoTDB 集群安装部署的技术优势与适用场景分析
3Apache IoTDB(3):时序数据库 IoTDB Docker部署从单机到集群的全场景部署与实践指南
4Apache IoTDB(4):深度解析时序数据库 IoTDB 在Kubernetes 集群中的部署与实践指南

一、IoTDB——AINode介绍

AINode 是 IoTDB 在 ConfigNode、DataNode 后提供的第三种内生节点,通过与 IoTDB 集群的 DataNode、ConfigNode 的交互,扩展了对时间序列进行机器学习分析的能力,支持从外部引入已有机器学习模型进行注册,并使用注册的模型在指定时序数据上通过简单 SQL 语句完成时序分析任务的过程,将模型的创建、管理及推理融合在数据库引擎中

在这里插入图片描述

AINode 是 IoTDB 集群外的额外套件,独立安装包

两种部署模式

  1. 单机模式:
    在这里插入图片描述
  2. 集群模式
    在这里插入图片描述

二、安装准备

2.1 安装包下载

AINode 安装包:apache-iotdb-2.0.5-ainode-bin.zip(点击下载)

在这里插入图片描述

安装包解压后目录

目录类型说明
lib文件夹AINode 的 python 包文件
sbin文件夹AINode的运行脚本(启动/移除/停止)
conf文件夹配置文件及运行环境设置脚本
LICENSE文件证书
NOTICE文件提示
README_ZH.md文件Markdown格式中文说明
README.md文件使用说明

2.2 环境准备

IoTDB 版本:>= V 2.0.5.1
Python 版本:3.9 ~3.12
工具: pip 和 venv

三、AINode 安装部署

3.1 安装

将 AINode 下载到专用目录后,切换到该目录并解压安装包

  unzip apache-iotdb-<version>-ainode-bin.zip

3.2 参数调整

可以通过修改 conf/iotdb-ainode.properties 文件中的参数来调整 AINode 配置。以下参数支持持久化修改

名称描述类型默认值
cluster_nameAINode要加入集群的标识stringdefaultCluster
ain_seed_config_nodeAINode启动时注册的ConfigNode地址String127.0.0.1:10710
ain_cluster_ingress_addressAINode拉取数据的DataNode的rpc地址String127.0.0.1
ain_cluster_ingress_portAINode拉取数据的DataNode的rpc端口Integer6667
ain_cluster_ingress_usernameAINode拉取数据的DataNode的客户端用户名Stringroot
ain_cluster_ingress_passwordAINode拉取数据的DataNode的客户端密码Stringroot
ain_cluster_ingress_time_zoneAINode拉取数据的DataNode的客户端时区StringUTC+8
ain_inference_rpc_addressAINode提供服务与通信的地址String127.0.0.1
ain_inference_rpc_portAINode提供服务与通信的端口String10810
ain_system_dirAINode元数据存储路径Stringdata/AINode/system
ain_models_dirAINode存储模型文件的路径Stringdata/AINode/models
ain_thrift_compression_enabledAINode是否启用thrift压缩机制Boolean0

3.3 加载模型权重

联系天谋团队获取模型权重文件,并将其存放至/IOTDB_AINODE_HOME/data/ainode/models/weights/目录中

3.4 启动 AINode

完成 Seed-ConfigNode 部署后,您可通过添加 AINode 节点实现模型注册与推理功能。配置 IoTDB 集群信息后,运行相应指令即可启动 AINode 并加入集群

注:联网环境启动

启动命令

  1. Linux 和 MacOS 系统
  bash sbin/start-ainode.sh  
  1. Windows 系统
  sbin\start-ainode.bat  

后台启动命令(长期推荐)

  1. Linux 和 MacOS 系统
  nohup bash sbin/start-ainode.sh  > myout.file 2>& 1 &
  1. Windows 系统
  nohup bash sbin\start-ainode.bat  > myout.file 2>& 1 &

3.5 检测 AINode 节点状态

AINode 启动时会自动加入 IoTDB 集群。启动后,您可以通过执行 SQL 命令进行查询验证。当集群中显示该 AINode 节点状态为"Running"时,即表示节点已成功加入

在这里插入图片描述

3.6 停止 AINode

停止命令

  1. Linux / MacOS
  bash sbin/stop-ainode.sh
  1. Windows
  sbin\stop-ainode.bat

停止 AINode 后,在集群中看到 AINode 节点,其运行状态为 UNKNOWN 表示该节点已经停止,没办法进行使用了

在这里插入图片描述

四、避坑指南

以下是之前博主安装时踩的一些坑,如有相似问题可以查询此处解决

4.1 启动AINode时出现找不到venv模块的报错

问题处理:在本地安装 venv 模块,以 ubuntu 为例,可以通过运行以下命令来安装 python 自带的 venv 模块。或者从 python 官网安装一个自带 venv 的 python 版本

apt-get install python3.10-venv

4.2 pip版本低

windows下出现类似“error:Microsoft Visual C++ 14.0 or greater is required…”的报错,版本低导致

问题处理

./python -m pip install --upgrade pip
./python -m pip install --upgrade setuptools

五、结语

Apache IoTDB 时序数据库中 AINode 工具采用分布式架构实现高可用性,支持水平扩展;内置智能数据处理引擎,可自动优化查询性能;提供实时流式分析能力,低延迟处理时序数据;兼容标准SQL语法,降低学习成本;支持多协议接入,便于与各类IoT设备集成。这些特性使其成为工业物联网场景下的高效时序数据库解决方案。本文详细讲述了AINode 的部署,后续博主会详细的介绍数据库管理以及具体的实操SQL语句等~


文章转载自:

http://a8Xr9v5u.xtjtm.cn
http://7KCfiito.xtjtm.cn
http://x2IfTl2G.xtjtm.cn
http://SFHF8Cx1.xtjtm.cn
http://rHBTbKXW.xtjtm.cn
http://hDjLSEru.xtjtm.cn
http://3It79RPH.xtjtm.cn
http://KnT8eRdn.xtjtm.cn
http://0ASfjlhP.xtjtm.cn
http://DVaxrGOl.xtjtm.cn
http://0gMTSsVi.xtjtm.cn
http://1uFiXGjt.xtjtm.cn
http://OjqucGKV.xtjtm.cn
http://sv0S9pht.xtjtm.cn
http://0bxNQmSu.xtjtm.cn
http://4IvS84si.xtjtm.cn
http://WbwfYjaG.xtjtm.cn
http://q7rsGMR6.xtjtm.cn
http://QZI7IRLU.xtjtm.cn
http://mvTl2vCK.xtjtm.cn
http://4t9r2X3Y.xtjtm.cn
http://zJrD8jHe.xtjtm.cn
http://Xo8cdsIP.xtjtm.cn
http://EgTOZOLU.xtjtm.cn
http://ZZDtaTxG.xtjtm.cn
http://MCN7trLJ.xtjtm.cn
http://AHGUgCUv.xtjtm.cn
http://uhrhX69r.xtjtm.cn
http://x2DmeZQJ.xtjtm.cn
http://B0O1hH4D.xtjtm.cn
http://www.dtcms.com/a/384177.html

相关文章:

  • 【Java后端】Spring Security配置对应的账号密码访问
  • 精通 Redis list:使用 redis-plus-plus 的现代 C++ 实践深度解析
  • 《Elasticsearch全文检索核心技术解析》
  • Rocky Linux10.0修改ip地址
  • DevOps实战(7) - 使用Arbess+GitPuk+sourcefare实现Node.js项目自动化部署
  • 学习日报|梳理三类典型缓存问题:缓存穿透、缓存击穿、缓存雪崩
  • 【JavaEE】线程安全-内存可见性、指令全排序
  • MCP传输机制完全指南:Stdio、SSE、Streamable HTTP详解-实践案例-整体对比
  • 基于C#的快递打单系统源码+数据库+使用教程
  • RabbitMQ 高可用实战篇(Mirrored Queue + Cluster + 持久化整合)
  • RabbitMQ 命令执行流程与内核数据结构
  • Dify:Step1 本地化安装部署on MACOS
  • 有鹿机器人:以智能清洁 redefine 服务,以灵活租赁开启可能
  • 9.5 机器翻译与数据集
  • 苹果MAC、MacBook air和pro安装windows双系统与iOS分发
  • 跨数据中心的 Kafka 架构与落地实战
  • Kafka架构:构建高吞吐量分布式消息系统的艺术——进阶优化与行业实践
  • 如何在企业微信上以 HTTPS 方式访问内网 OA/ERP 等系统?
  • iOS 上架全流程指南 iOS 应用发布步骤、App Store 上架流程、uni-app 打包上传 ipa 与审核实战经验分享
  • 细粒度文本分类
  • Go 并发模型学习:从 goroutine 到 channel 的最佳实践
  • 高效解决多语言视频分发难题:Amazon MediaConvert 多语言输入配置 + CMAF 通用容器输出优化实战
  • 摆脱劳心,奔向劳体
  • pcl案例五 求类平面点云孔区面积
  • 第6.2节 Android Agent开发<三>
  • 利用kimi k2编写postgresql协议服务端的尝试
  • 深入理解 Java 集合框架
  • 第十届99全球链商节重点项目“全球纸基生态战略联盟”正式签约
  • 系统服务包括1-4章
  • 自动化C到Rust翻译工具探索:工具实操、不足与挑战解析