Doris failed to initialize storage reader. tablet=106408, res=[NOT_IMPLEMENTED_ERROR]to be implemented
Apache Doris 2.3 以下的版本会存在一个 bug,导致数据在合并时存在异常,在后续查询该字段数据时会提示
[1105] [HY000]: errCode = 2, detailMessage = (192.168.15.228)[CANCELLED]failed to initialize storage reader. tablet=106408, res=[NOT_IMPLEMENTED_ERROR]to be implemented 0# doris::RowwiseIterator::next_block_view(std::vector<doris::vectorized::IteratorRowRef, std::allocator<doris::vectorized::IteratorRowRef> >*) at /home/zcp/repo_center/doris_release/doris/be/src/olap/iterators.h:147
由于在 Google 直接搜索解决方案时并没有看到非常好的方式,所以此处将我的一些处理方式分享一下:
前置知识
在 Doris 中,每一个表都会有一个对应的合并策略,我们可以通过 GET /api/compaction/show?tablet_id={int} 这个 API 来查看指定tablet_id的压缩策略等详细信息。
关于这个 API的详情可以查看 这里
在 Doris 中包含的压缩策略有:
size_based:基于数据大小的策略。当累积的数据大小达到一定阈值时,触发累积 Compaction。它允许系统根据数据增长自动调整 Compaction 的频率。
time_based:基于时间的策略。无论数据大小如何,只要达到一定的时间间隔,就会触发 Compaction。
incremental:增量策略,通常是指只合并最近添加的数据文件。
full:全量策略,指的是合并所有的数据文件,不管它们的新旧。
表数据修复
了解了上述的压缩策略后,就可以发现,我们数据的分片文件本身没有丢失的情况下,只要重新进行一次数据的合并即可,采用 full 策略,无论新旧文件
全部执行一次数据合并,就可以解决该问题。
在 Doris 的架构中,存在 FE 和 BE,BE 的节点本身会开启 8040 的http接口,这个接口是用于管理 BE 使用的。
我们再看一下上述的异常,异常提示是 tablet 106408 存在异常。 failed to initialize storage reader. tablet=106408
此时我们根据自己的 BE 节点所在的 IP 直接访问: http://IP:8040/api/meta/header/106408
会得到针对该 tablet 的详细元数据信息

此处我们会发现该 tablet 所对应的 table 是 "table_id": 106227。 此处要注意哦:table 和 tablet 是两个不同的概念。
获取到异常表的 Id 后,我们就可以登录到对应的 BE 服务器上执行:
curl -X POST "http://localhost:8040/api/compaction/run?table_id=106227&compact_type=full"
执行成功后,等待片刻,再执行对应的 sql 查询,会发现异常解决解决了、、
终极解决方案
终极解决方案就是升级Doris 的版本,2.1.3 的版本已经修复了该问题,只要是使用 2.1.3 以及以上的版本即可。
Doris failed to initialize storage reader. tablet=106408, res=[NOT_IMPLEMENTED_ERROR]to be implemented的更多相关文章
- 配置php时。提示的错误session_start(): Failed to initialize storage module解决办法
当浏览器输入访问地址后 报这样的错时----session_start(): Failed to initialize storage module 进入到此目录vi /usr/local/php/e ...
- Failed to initialize storage module: user 的解决方式
网上提供了一种解决方法就是在session_start()前把session的存储方式改为files,即加入以下一句代码 if (ini_get('session.save_handler') !== ...
- ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository
salve复制线程停止,尝试start slave 时报ERROR 1872错误mysql> system perror 1872 MySQL error code 1872 (ER_SLAVE ...
- Slave failed to initialize relay log info structure from the repository
现象 查看slave 服务状态 show slave status\G; 错误 Last_Errno: 1872 Last_Error: Slave failed to initialize rela ...
- Failed to initialize the Common Language Runtime
今天在SQL Server 2008中执行存储过程的时候报以下错误: Msg , Level , State , Procedure usp_QueryRealTimeRoomInfo, Line F ...
- 解决 ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)异常
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) 解决方案: 在java_opts="-Xd ...
- Eclipse远程调试出现“JDWP Transport dt_socket failed to initialize”的解决方案
欢迎关注我的社交账号: 博客园地址: http://www.cnblogs.com/jiangxinnju/p/4781259.html GitHub地址: https://github.com/ji ...
- error: failed to initialize alpm library
这个问题出在archlinux上面 [root@sarch pacman]# pacman -Syuerror: failed to initialize alpm library(database ...
- 如何解决WebkitBrowser使用出错“Failed to initialize activation context”
本文转载自:http://www.cnblogs.com/supjia/p/4695671.html 本篇文章主要介绍了"如何解决WebkitBrowser使用出错“Failed to in ...
- Tomcat启动报错:Failed to initialize end point associated with ProtocolHandler ["http-apr-8080"]
在用MyEclipse做开发,启动Tomcat的时候,控制台老是报错Failed to initialize end point associated with ProtocolHandler [&q ...
随机推荐
- 记录一次配置iis与Sqlserver的集成windows账户登录
1.连接字符串,要写 "Data Source=[主机名称];Initial Catalog=[数据库名称];Integrated Security=True" 2.iis下配 ...
- RocketMQ主从同步原理
一. 主从同步概述 主从同步这个概念相信大家在平时的工作中,多少都会听到.其目的主要是用于做一备份类操作,以及一些读写分离场景.比如我们常用的关系型数据库mysql,就有主从同步功能在. 主从同步,就 ...
- CSS——阴影
<!DOCTYPE html> <html> <head> <style> p.one { text-shadow: 3px 5px 5px #FF00 ...
- OpenCV笔记(3) CV::Mat
1. 创建一个数组 1.1 使用构造函数 cv::Mat a; //默认构造函数 cv::Mat b = cv::Mat(); //默认构造函数 cv::Mat c = cv::Mat(3, 3, C ...
- WXS 模块
https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxs/01wxs-module.html 2.1.概述 WXS(Wei ...
- react css-in-js
CSS-in-JS是一种技术,而不是一个具体的库实现.简单来说CSS-in-JS就是将应用的CSS样式写在JavaScript文件里面,而不是独立为一些css,scss或less之类的文件,这样你就可 ...
- epoll使用与原理
使用要点 边缘模式(ET)与水平模式(LT)区别 下面内容来自linux man page The epoll event distribution interface is able to beha ...
- 使用vscode写Markdown并且导出为pdf(干货)
目录 序言 下载vscode 安装插件 markdown语法 导出为pdf 序言 大家在学习过程中都会有记笔记的好习惯(美观的笔记当然是上上选),于是,Markdown就是一个不错的选择,待会也会附上 ...
- json字符串转换对象或列表,多了字段不会报错
json字符串转换对象或列表,多了字段不会报错 //DEMO1 转换对象 应用 riskId public class Item { private String id; private String ...
- LocalDateTime日期相互转换字符串
/** LocalDateTime日期相互转换字符串 * 默认的时间日期样式 */ public static final String YYYYMMDDHHMMSSS_PATTERN = " ...