IoTDB 常见问题 QA 第一期

开始!关于 IoTDB 的 Q&A

我们将定期汇总社区讨论频繁的问题,并展开进行详细回答,通过积累常见问题“小百科”,方便大家使用 IoTDB。

Q1:WAL 堆积导致写入失败

outside_default.png

问题及现象

集群报错:

The write is rejected because the wal directory size has reached the threshold 53687091200 bytes. You may need to adjust the flush policy of the storage storageengine or the IoTConsensus synchronization parameter`

outside_default.png

原因及方案

  • 1.1.0 及之前版本重启可能会导致 WAL 出现堆积,出现该现象时建议升级到当前最新版本 1.3.3。

  • 在 1.3.3 版本如果依然出现该问题,可能有以下排查思路:

    • 节点状态异常:执行 show cluster 或者 show cluster details 查看各个节点状态是否有 Unknown 或者 ReadOnly 状态。如果有则查看具体日志,针对出现问题的原因进行解决。

    • 节点写入负载过大导致副本同步速度不够:如果在日志中发现存在共识组的 searchIndex 和 safeIndex 相差较多,可以尝试调整副本同步流水线并发阈值 data_region_iot_max_pending_batches_num 为 1 来提高同步效率。

  • 内存较大 / Region 数较多/ 时间分区较多:可以手动执行 flush 命令将 memtable 刷盘,之后堆积的 WAL 即可被删除。如果未来依然会堆积报错,可以手动调整 iotdb-common.properities 中的 iot_consensus_throttle_threshold_in_byte 从 53687091200(50GB) 至更大值(例如 200GB)后即可暂时规避该问题。

  • Pipe 同步任务过多:减少同步任务,或者指定 Pipe 同步类型为文件同步。

Q2:AINode call inference 语句报错

outside_default.png

问题及现象

使用 AINode 的 call inference 语句后报错:

Msg: org.apache.iotdb.jdbc.IoTDBSOLException:301: Error ocurred while executing inference:['tuple' object has no attribute 'inference']

13bb075e95218ed4633a9d7b759ad5a2.png

outside_default.png

解决方法

可以替换 venv 里面的 iotdb 包中的 built_in_model_factory.py 文件的内容来解决,修改后重启即可,命令如下:

sed -i '102s/return model, attributes/return model/' venv/lib/python3.11/site-packages/iotdb/ainode/model/built_in_model_factory.py

Q3:IoTDB 删除数据后文件大小不减反增

outside_default.png

现象

IoTDB 删除大量数据后,为什么 data 空间不减反增?

outside_default.png

原因

  • IoTDB 的存储引擎采用 LSM(Log-Structured Merge)架构。在执行删除操作时,系统会生成 .mod 文件来标记删除的数据。这些删除标记会在后续的合并过程中被处理,合并操作会将标记删除的数据进行物理删除。

  • 但如果合并没有触发,或者某个文件长时间没有被合并,那么 .mod 文件中标记删除的数据实际上不会被删除,从而导致空间占用不减反增。

outside_default.png

解决方案

  • 可以通过检查是否生成 .mod 文件来判断数据是否被删除。使用 settle 工具触发合并任务,实际删除被标记的数据(前提是 tsfile 中有对应的 .mod 文件)。

  • 可以通过配置 TTL(数据过期时间)来定期删除数据,确保过期数据被及时清除。

96a34d5f218083c26cf39e583ad0dfae.png

Q4:wal buffer 创建失败,报错 

out of memory

outside_default.png

现象

Region 目录创建成功后,wal buffer 创建失败,日志参考如下:

7a60945e1d8e0bda2226be71b06f28a0.png

2280e696ccf42ef3ca52b2d837aad3b5.png

outside_default.png

原因

数据在写入过程中会先写入 WAL,WAL 在申请堆外空间过程中,空间不足申请失败,导致无法写入 WAL。

outside_default.png

解决方案

(1)调大堆外内存

  • 1.3.0 以及之后的版本:在 conf/datanode-env.sh 或 conf/datanode-env.bat 中找到 OFF_HEAP_MEMORY 并调大,然后再次启动。

  • 1.3.0 之前的版本:在 conf/datanode-env.sh 或 conf/datanode-env.bat 中找到 MAX_DIRECT_MEMORY_SIZE 并调大,然后再次启动。

(2)降低各个模块对 direct memory 的使用量

wal_buffer_size_in_byte=33554432
schema_region_ratis_log_appender_buffer_size_max=16777216

1.3.3 版本前,可以在 conf/iotdb-common.properties 中找到以上配置。1.3.3 版本后,可在 conf/iotdb-system.properties.template 中找到以上参数,需要在 iotdb-system.properties 中进行设置。

在当前已有的任意版本中,以上参数修改后都需要重启才能生效

配置时可根据系统中的 data region 数、schema region 数进行计算:wal_buffer_size_in_byte*data region 数+schema_region_ratis_log_appender_buffer_size_max*schema region 数 < OFF_HEAP_MEMORY*0.8。

其中,保留 20% 堆外内存用于各模块中的临时使用

需要注意的是,修改以上两个参数可能对性能有一定影响,如果发现调整后存在写入性能下降的情况,建议恢复这两个配置参数并采用调大堆外内存的修复方式。

修改样例:

假设当前配置下分配 OFF_HEAP_MEMORY 为 2G,data region 和 schema region 为 1000 个。此时需要的 direct memory 为 48000 MB,为了让系统能正常运行,可以按比例调整以上两个参数为原来的 2048*0.8/48*100=0.034 倍,此时 wal_buffer_size_in_byte 为 1140850,schema_region_ratis_log_appender_buffer_size_max 为 570425。

(3)调整建模

当以上方式都无法解决时,建议调整建模,降低 db 的数量。

对于无法启动的情况,需要大幅调小上一节中提到的两个配置参数以保证顺利启动,在启动后删除一些不使用的 db,然后将以上两个参数恢复正常大小并重启。

规上企业应用实例

能源电力:中核武汉|国网信通产业集团|华润电力|大唐先一|上海电气国轩|清安储能|某储能厂商|太极股份

航天航空:中航机载共性|北邮一号卫星

钢铁冶炼:宝武钢铁|中冶赛迪

交通运输:中车四方|长安汽车|城建智控|德国铁路

智慧工厂与物联:PCB 龙头企业|博世力士乐|德国宝马|北斗智慧物联|京东|昆仑数据|怡养科技|绍兴安瑞思

841b13cd4c0439fda35bd8f5f22c73fe.gif

2bad828de05f87a1d47bb448ef3bf930.jpeg

63eb65edd4ecba29c5606c154f3b18ba.jpeg

53892ce6daa0907b1cb651a7320d3123.jpeg

0e72a7dc9d6f5a775c5e2b8b97b68271.gif

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

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

相关文章

buildroot 制作Linux嵌入式文件系统,并添加telnet 以及ssh

在开始配置前&#xff0c;我们需要了解SSH和Telnet的基本概念。SSH&#xff08;Secure Shell&#xff09;为加密的网络协议&#xff0c;用于在不安全的网络中执行命令并管理网络服务。相对于SSH&#xff0c;Telnet是一个老旧且非加密的协议&#xff0c;用于进行远程登录 sshd 服…

Simulink的SIL软件在环测试

以基于模型的设计&#xff08;MBD&#xff09;的软件开发时&#xff0c;需要进行SIL&#xff08;软件在环测试&#xff09;。SIL测试就是在PC上验证模型是否与代码功能一致。在项目开展中&#xff0c;用在需要将控制器生成移植到硬件前&#xff0c;把控制器的模块生成代码&…

【赵渝强老师】PostgreSQL中的模式

在PostgreSQL中&#xff0c;所有的数据库对象都是属于模式中的对象。这里的数据库对象包括&#xff1a;表、索引、视图、存储过程、触发器等等。所有数据库对象都有各自的对象标识符oid&#xff08;object identifiers&#xff09;,它是一个无符号的四字节整数&#xff0c;相关…

【分页查询】.NET开源 ORM 框架 SqlSugar 系列

.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列【数据事务…

Android 图形系统之四:Choreographer

Choreographer 是 Android 系统中负责帧同步的核心组件&#xff0c;它协调输入事件、动画和绘制任务&#xff0c;以确保界面以固定频率&#xff08;通常是每 16ms&#xff0c;一帧&#xff09;流畅渲染。通过管理 VSYNC 信号和调度任务&#xff0c;Choreographer 是实现流畅 UI…

计算机毕业设计Python异常流量检测 流量分类 流量分析 网络流量分析与可视化系统 网络安全 信息安全 机器学习 深度学习

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

关于扩散方程的解

1-D 扩散方程的形式 Cauchy齐次方程 这个解无积分无级数&#xff0c;很简单的形式 美其名曰&#xff1a;基本解。 把基本解和初值做卷积&#xff0c;就得到cauchy方程的解。

零基础学安全--Burp Suite(4)proxy模块以及漏洞测试理论

目录 学习连接 一些思路 proxy模块 所在位置 功能简介 使用例子 抓包有一个很重要的点&#xff0c;就是我们可以看到一些在浏览器中看不到的传参点&#xff0c;传参点越多就意味着攻击面越广 学习连接 声明&#xff01; 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可…

python打包深度学习虚拟环境

今天师兄让我把环境打包发给他&#xff0c;我才知道可以直接打包深度学习虚拟环境&#xff0c;这样另一个人就不用辛辛苦苦的去装环境了&#xff0c;我们都知道有些论文他需要的环境很难装上。比如装Apex&#xff0c;装 DCN&#xff0c;mmcv-full 我现在把3090机子上的ppft虚拟…

M4V 视频是一种什么格式?如何把 M4V 转为 MP4 格式?

M4V 是一种视频文件格式&#xff0c;主要由苹果公司用于其产品和服务中&#xff0c;如 iTunes Store 上的电影和电视节目。这种格式可以包含受版权保护的内容&#xff0c;并且通常与苹果的 DRM&#xff08;数字版权管理&#xff09;技术结合使用&#xff0c;以限制内容的复制和…

【C++】从零到一掌握红黑树:数据结构中的平衡之道

个人主页: 起名字真南的CSDN博客 个人专栏: 【数据结构初阶】 &#x1f4d8; 基础数据结构【C语言】 &#x1f4bb; C语言编程技巧【C】 &#x1f680; 进阶C【OJ题解】 &#x1f4dd; 题解精讲 目录 前言1 红黑树的概念**红黑树的五大性质** 2 红黑树的实现2.1 红黑树的结构…

webpack(react)基本构建

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 Webpack 是一个现代 JavaScript 应用程序的静态模块打包工具。它的主要功能是将各种资源&#xff08;如 JavaScript、CSS、图片等&#xff09;视为模块&#xff0c;并将它们打包成一个或多个输出文件&#xff0c;以便…

C++STL(四)-->vector 的模拟实现

1.vector的各函数接口&#xff1a; namespace cl {//模拟实现vectortemplate<class T>class vector{public:typedef T* iterator;typedef const T* const_iterator;//默认成员函数vector(); //构造函数vector(size_t n, cons…

机器学习实战:泰坦尼克号乘客生存率预测(数据处理+特征工程+建模预测)

项目描述 任务&#xff1a;根据训练集数据中的数据预测泰坦尼克号上哪些乘客能生存下来 数据源&#xff1a;csv文件&#xff08;train.csv&#xff09; 目标变量&#xff1a;Survived&#xff08;0-1变量&#xff09; 数据集预览&#xff1a; 1、英文描述&#xff1a; 2、…

MATLAB不动点迭代法求单变量非线性方程的根程序加实例

不动点迭代法用于单变量线性方程近似根&#xff0c;首先确定一个方程根附近的近似初始值&#xff0c;采用逐次逼近的方法&#xff0c;使用迭代公式不断地更新这个初始值&#xff0c;使这个初始值不断趋近于准确值。 1.不动点迭代法自定义函数 fixed_point.m是一个MATLAB函数&a…

BurpSuite使用篇--抓包方法与解码器

BurpSuite是一个web渗透利器&#xff0c;可以抓包改包也可以扫描漏洞&#xff0c;将漏洞扫描和利用集成化一体&#xff0c;更可以支持外部插件拓展&#xff0c;非常牛的工具。 那我们怎么使用呢&#xff1f; 使用BurpSuite 老版本中BurpSuite需要在浏览器中配置本地代理&…

【查询目录】.NET开源 ORM 框架 SqlSugar 系列

.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列【数据事务…

ESP32-S3模组上跑通ES8388(8)

接前一篇文章&#xff1a;ESP32-S3模组上跑通ES8388&#xff08;7&#xff09; 二、利用ESP-ADF操作ES8388 2. 详细解析 上一回继续解析到了ESP-ADF的audio_hal层的第1个也是最为关键的函数 —— audio_hal_init()中的第5段代码&#xff0c;也就是mutex_lock函数与mutex_unlo…

bind实验

服务端 查看域名 [rootclient yum.repos.d]# hostname client 设置域名 [rootclient yum.repos.d]# hostnamectl set-hostname dns1.openlab.edu [rootclient yum.repos.d]# cd [rootclient ~]# hostname dns1.openlab.edu 安装bind包 [rootclient ~]# yum install bind -y…

【LeetCode每日一题】——717.1比特与2比特字符

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时空频度】九【代码实现】十【提交结果】 一【题目类别】 数组 二【题目难度】 简单 三【题目编号】 717.1比特与2比特字符 四【题目描述】 有两种特…