寒冰之光 2021-09-15 09:49 采纳率: 100%
浏览 34
已结题

关于doris的数据副本问题

版本:doris0.14;环境:centos7;
共部署6个be节点。建表时设置动态分区,cph分桶,默认设置为3副本。我理解数据应该分布在3个不同的be节点上,也就是只要有1台be节点还活着,数据就应该能查出来。为了验证doris查询的高可用,我一边查询数据,一边逐台手工关闭be服务,发现当查询出错的时候,doris给我的提示如下:
——查询sql:select * from p_cargis where cph = '桂A14999' and dt>='2021-09-08 00:00:00' and dt<'2021-09-11' LIMIT 0, 1000
——错误提示: Error Code: 1064. errCode = 2, detailMessage = there is no scanNode Backend. [22003: not alive, 22083: not alive]
确实22003、22083这2台be节点关闭了。如果启动这2个be节点中的任何1个,查询都能正确返回数据。

我的问题是:默认设置为3个副本,难道数据不应该是在3个be节点上备份么?为何只提示其中2个be的节点not alive呢?看起来像是数据并没有在3个节点上分布,只在这2个节点上分布了。请指导,谢谢~  

img

测试建表sql如下(replication_num为默认设置3副本):

CREATE TABLE p_cargis
(
cph VARCHAR(20) DEFAULT '',
cpys SMALLINT DEFAULT '2',
dt DATETIME,
ptbm VARCHAR(6) REPLACE DEFAULT '110000',
alarm VARCHAR(10) REPLACE DEFAULT '0',
xslc INT REPLACE DEFAULT '0',
sbsd INT REPLACE DEFAULT '0',
xssd INT REPLACE DEFAULT '0',
dr INT REPLACE DEFAULT '0',
lat DOUBLE REPLACE DEFAULT '0',
lon DOUBLE REPLACE DEFAULT '0',
count BIGINT SUM DEFAULT '0' COMMENT '用于统计总数'
)
AGGREGATE KEY(cph,cpys,dt)
PARTITION BY RANGE(dt) ()
DISTRIBUTED BY HASH(cph)
PROPERTIES
(
    "replication_num" = "3",
    "dynamic_partition.enable" = "true",
    "dynamic_partition.time_unit" = "MONTH",
    "dynamic_partition.start" = "-12",
    "dynamic_partition.end" = "1",
    "dynamic_partition.prefix" = "p",
    "dynamic_partition.buckets" = "16"
);


  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 9月23日
    • 创建了问题 9月15日

    悬赏问题

    • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
    • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
    • ¥15 matlab有关常微分方程的问题求解决,来真人,不要ai!
    • ¥15 perl MISA分析p3_in脚本出错
    • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
    • ¥15 ubuntu虚拟机打包apk错误
    • ¥199 rust编程架构设计的方案 有偿
    • ¥15 回答4f系统的像差计算
    • ¥15 java如何提取出pdf里的文字?
    • ¥100 求三轴之间相互配合画圆以及直线的算法