目录
- 1、Doris简介
- 2、Doris 址
- 3、Doris架构
- 3、编译和安装
-
- 3.1、软硬件需求
- 3.2、编译
-
- 3.2.1、安装Docker环境
- 3.2.2、使用Docker 开发镜像编译
- 3.3、集群部署
-
- 3.3.1、创建目录并拷贝编译后的文件
- 3.3.2、部署 FE 节点
- 3.3.3、配置 BE 节点
- 3.3.4、在 FE 中添加所有 BE 节点
- 3.3.5、启动 BE
- 3.3.6、部署 FS_Broker(可选)
- 3.4、扩容和缩容
-
- 3.4.1 FE 扩容和缩容
- 3.4.2 BE 扩容和缩容
- 3.4.3 Broker 扩容缩容
- 4、数据表的基本使用
-
- 4.1、创建用户和数据库
- 4.2、Doris中数据表的基本概念
-
- 4.2.1、Row&Column
- 4.2.2、Partition&Tablet
- 4.3、建表示例
-
- 4.3.1、建表语法
- 4.3.2、字段类型
- 4.3.3、Doris建表示例
-
- 4.3.3.1、Range Partition
- 4.3.3.2、 List Partition
- 4.3.4、数据划分
-
- 4.3.4.1、列定义
- 4.3.4.2、分区与分桶
-
- 4.3.4.2.1、Partition
- 4.3.4.2.2、Bucket
- 4.3.4.2.3、使用复合分区的场景
- 4.3.4.2.4、多列分区
- 4.3.4.3、PROPERTIES
-
- 4.3.4.3.1 replication_num
- 4.3.4.3.2、storage_medium & storage_cooldown_time
- 4.3.4.4、ENGINE
- 4.3.5 数据模型
-
- 4.3.5.1 Aggregate 模型
-
- 4.3.5.1.2 示例二:保留明细数据
- 4.3.5.1.3 示例三:导入数据与已有数据聚合
- 4.3.5.2 Uniq 模型
- 4.3.5.3 Duplicate 模型
- 4.3.5.4 数据模型的选择建议
- 4.3.6 动态分区
-
- 4.3.6.1 原理
- 4.3.6.2 使用方式
- 4.3.6.3 动态分区规则参数
-
- 4.3.6.3.1 主要参数
- 4.3.6.3.2 创建历史分区的参数
- 4.3.6.3.3 创建历史分区规则
- 4.3.6.3.4 创建历史分区举例
- 4.3.6.3.5 注意事项
- 4.3.6.4 示例
- 4.3.7 Rollup
-
- 4.3.7.1 基本概念
- 4.3.7.2 Aggregate 和 Uniq 模型中的 ROLLUP
- 4.3.7.3 Duplicate 模型中的 ROLLUP
-
- 4.3.7.3.1 前缀索引
- 4.3.7.3.2 ROLLUP 调整前缀索引
- 4.3.7.4 ROLLUP 的几点说明
- 4.3.8 物化视图
-
- 4.3.8.1 适用场景
- 4.3.8.2 优势
- 4.3.8.3 物化视图 VS Rollup
- 4.3.8.4 物化视图原理
-
- 4.3.8.4.1 创建物化视图
- 4.3.8.4.2 查询
- 4.3.8.4.3 查询自动匹配
- 4.3.8.4.4 最优路径选择
- 4.3.8.4.5 查询改写
- 4.3.8.4.6 使用及限制
- 4.3.8.5 案例演示
-
- 4.3.8.5.1 案例一
- 4.3.8.5.2 案例二:计算广告的 pv、uv
- 4.3.8.5.3 案例三
- 4.3.9 修改表
-
- 4.3.9.1 rename
- 4.3.9.2 partition
- 4.3.9.3 rollup
- 4.3.9.4 表结构变更
- 4.3.10 删除数据(Delete)
-
- 4.3.10.1 DELETE FROM Statement(条件删除)
- 4.3.10.2 DROP PARTITION Statement(删除分区)
1、Doris简介
Doris是由百度大数据研发,是一个现代化的MPP(Massively Parallel Processing)大规模并行处理的分析型数据库产品。仅需亚秒级响应时间即可获得查询结果,有效地支持实时数据分析。
Apache Doris 的分布式架构非常简洁,易于运维,并且可以支持 10PB 以上的超大数据集。
Apache Doris 可以满足多种数据分析需求,例如固定历史 表,实时数据分析,交互式
数据分析和探索式数据分析等。
2、Doris 址
1、官 地址
2、文档查看地址
3、下载地址
4、github地址
3、Doris架构

Doris 的架构很简洁,只设FE(Frontend)、BE(Backend)两种角色、两个进程,不依赖于外部组件,方便部署和运维,FE、BE都可线性扩展。
-
Frontend(FE),存储、维护集群元数据;负责接收、解析查询请求,规划查询计划,调度查询执行,返回查询结果。主要有三个角色:
1)Leader 和Follower:主要是用来达到元数据的高可用,保证单节点宕机的情况下,元数据能够实时地在线恢复,而不影响整个服务。
2)Observer:用来扩展查询节点,同时起到元数据备份的作用。如果在发现集群压力非常大的情况下,需要去扩展整个查询的能力,那么可以加observer 的节点。observer 不参与任何的写入,只参与读取。 -
Backend(BE),负责物理数据的存储和计算;依据FE 生成的物理计划,分布式地执行查询。
数据的可靠性由BE 保证,BE 会对整个数据存储多副本或者是三副本。副本数可根据需求动态调整。 -
MySQLClient:Doris借助MySQL协议,用户使用任意MySQL的ODBC/JDBC以及MySQL的客户端,都可以直接访问Doris。
-
Broker:Broker为一个独立的无状态进程。封装了文件系统接口,提供Doris读取远端存储系统中文件的能力,包括HDFS,S3,BOS等。
3、编译和安装
3.1、软硬件需求
概述
Doris 作为一款开源的 MPP 架构 OLAP 数据库,能够运行在绝大多数主流的商用服务器上。为了能够充分运用 MPP 架构的并发优势,以及 Doris 的高可用特性,我们建议 Doris 的部署遵循以下需求:
Linux 操作系统版本需求
Linux 系统 | 版本 |
---|---|
CentOS | 7.1 及以上 |
Ubuntu | 16.04 及以上 |
软件需求
软件 | 版本 |
---|---|
Java | 1.8 及以上 |
GCC | 4.8.2 及以上 |
操作系统安装要求
设置系统最大打开文件句柄数
时钟同步
Doris 的元数据要求时间精度要小于5000ms,所以所有集群所有机器要进行时钟同步,避免因为时钟问题引发的元数据不一致导致服务出现异常。
关闭交换分区(swap)
Linux交换分区会给Doris带来很严重的性能问题,需要在安装之前禁用交换分区
Liunx文件系统
这里我们推荐使用ext4文件系统,在安装操作系统的时候,请选择ext4文件系统。
开发测试环境
模块 | CPU | 内存 | 磁盘 | 络 | 实例数量 |
---|---|---|---|---|---|
Frontend | 8核+ | 8GB+ | SSD 或 SATA,10GB+ * | 千兆 卡 | 1 |
Backend | 8核+ | 16GB+ | SSD 或 SATA,50GB+ * | 千兆 卡 | 1-3 * |
生产环境
模块 | CPU | 内存 | 磁盘 | 络 | 实例数量(最低要求) |
---|---|---|---|---|---|
Frontend | 16核+ | 64GB+ | SSD 或 RAID 卡,100GB+ * | 万兆 卡 | 1-3 * |
Backend | 16核+ | 64GB+ | SSD 或 SATA,100G+ * | 万兆 卡 | 3 * |
注1:
1、FE 的磁盘空间主要用于存储元数据,包括日志和 image。通常从几百 MB 到几个 GB 不等。
2、BE 的磁盘空间主要用于存放用户数据,总磁盘空间按用户总数据量 * 3(3副本)计算,然后再预留额外 40% 的空间用作后台 compaction 以及一些中间数据的存放。
3、一台机器上可以部署多个 BE 实例,但是只能部署一个 FE。如果需要 3 副本数据,那么至少需要 3 台机器各部署一个 BE 实例(而不是1台机器部署3个BE实例)。多个FE所在服务器的时钟必须保持一致(允许最多5秒的时钟偏差)
4、测试环境也可以仅适用一个 BE 进行测试。实际生产环境,BE 实例数量直接决定了整体查询延迟。
5、所有部署节点关闭 Swap。
6、FE 角色分为 Follower 和 Observer,(Leader 为 Follower 组中选举出来的一种角色,以下统称 Follower)。
FE 节点数据至少为1(1 个 Follower)。当部署 1 个 Follower 和 1 个 Observer 时,可以实现读高可用。当部署 3 个 Follower 时,可以实现读写高可用(HA)。
7、Follower 的数量必须为奇数,Observer 数量随意。
8、根据以往经验,当集群可用性要求很高时(比如提供在线业务),可以部署 3 个 Follower 和 1-3 个 Observer。如果是离线业务,建议部署 1 个 Follower 和 1-3 个 Observer。
9、Broker 是用于访问外部数据源(如 HDFS)的进程。通常,在每台机器上部署一个 broker 实例即可。
默认端口 :
实例名称 | 端口名称 | 默认端口 | 通讯方向 | 说明 |
---|---|---|---|---|
BE | be_port | 9060 | FE –> BE | BE 上 thrift server 的端口,用于接收来自 FE 的请求 |
BE | webserver_port | 8040 | BE BE | BE 上的 http server 的端口 |
BE | heartbeat_service_port | 9050 | FE –> BE | BE 上心跳服务端口(thrift),用于接收来自 FE 的心跳 |
BE | brpc_port | 8060 | FE BE, BE BE | BE 上的 brpc 端口,用于 BE 之间通讯 |
FE | http_port | 8030 | FE FE,用户 FE | FE 上的 http server 端口 |
FE | rpc_port | 9020 | BE –> FE, FE FE | FE 上的 thrift server 端口,每个fe的配置需要保持一致 |
FE | query_port | 9030 | 用户 FE | FE 上的 mysql server 端口 |
FE | edit_log_port | 9010 | FE FE | FE 上的 bdbje 之间通信用的端口 |
Broker | broker_ipc_port | 8000 | FE –> Broker, BE –> Broker | Broker 上的 thrift server,用于接收请求 |
当部署多个 FE 实例时,要保证 FE 的 http_port 配置相同。
部署前请确保各个端口在应有方向上的访问权限。
IP 绑定
因为有多 卡的存在,或因为安装过 docker 等环境导致的虚拟 卡的存在,同一个主机可能存在多个不同的 ip。当前 Doris 并不能自动识别可用 IP。所以当遇到部署主机上有多个 IP 时,必须通过 priority_networks 配置项来强制指定正确的 IP。
priority_networks 是 FE 和 BE 都有的一个配置,配置项需写在 fe.conf 和 be.conf 中。该配置项用于在 FE 或 BE 启动时,告诉进程应该绑定哪个IP。示例如下:
priority_networks=10.1.3.0/24
这是一种 CIDR 的表示方法。FE 或 BE 会根据这个配置项来寻找匹配的IP,作为自己的 localIP。
注意:当配置完 priority_networks 并启动 FE 或 BE 后,只是保证了 FE 或 BE 自身的 IP 进行了正确的绑定。而在使用 ADD BACKEND 或 ADD FRONTEND 语句中,也需要指定和 priority_networks 配置匹配的 IP,否则集群无法建立。举例:
BE 的配置为:priority_networks=10.1.3.0/24
但是在 ADD BACKEND 时使用的是:ALTER SYSTEM ADD BACKEND “192.168.0.1:9050”;
则 FE 和 BE 将无法正常通信。
这时,必须 DROP 掉这个添加错误的 BE,重新使用正确的 IP 执行 ADD BACKEND。
FE 同理。
BROKER 当前没有,也不需要 priority_networks 这个选项。Broker 的服务默认绑定在 0.0.0.0 上。只需在 ADD BROKER 时,执行正确可访问的 BROKER IP 即可。
表名大小写敏感性设置
doris默认为表名大小写敏感,如有表名大小写不敏感的需求需在集群初始化时进行设置。表名大小写敏感性在集群初始化完成后不可再修改。
详细参见 变量 中关于lower_case_table_names变量的介绍。
3.2、编译
安装Doris,需要先通过源码编译,主要有两种方式:使用Docker开发镜像编译(推荐)、直接编译。直接编译的方式,可以参考官 :https://doris.apache.org/zh-CN/installing/compilation.html
3.2.1、安装Docker环境
1)Docker要求CentOS系统的内核版本高于3.10,首先查看系统内核版本是否满足
uname -r
2)使用root权限登录系统,确保yum包更新到最新
sudo yum update -y
3)假如安装过旧版本,先卸载旧版本
sudo yum remove docker docker-common docker-selinux docker-engine
4)安装yum-util工具包和devicemapper驱动依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
5)设置yum源(加速yum下载速度)
sudo yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo
如果连接超时,可以使用alibaba的镜像源:
sudo yum-config-manager –add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
6)查看所有仓库中所有docker版本,并选择特定版本安装,一般可直接安装最新版
yum list docker-ce –showduplicates | sort -r
7)安装docker
(1)安装最新稳定版本的方式:
sudo yum install docker-ce -y #安装的是最新稳定版本,因为repo中默认只开启stable仓库
(2)安装指定版本的方式:
sudo yum install -y
#例如:
sudoyum install docker-ce-20.10.11.ce -y
8)启动并加入开机启动
sudo systemctl start docker #启动
docker sudo systemctl enable docker #加入开机自启动
9)查看Version,验证是否安装成功
docker version
若出现Client和Server两部分内容,则证明安装成功。
3.2.2、使用Docker 开发镜像编译
1)下载源码并解压
通过wget下载(或者手动上传下载好的压缩包)。
wget
https://dist.apache.org/repos/dist/dev/incubator/doris/0.15/0.15.0-rc04/apache-doris-0.15.0-incubating-src.tar.gz
解压到/opt/software/
tar -zxvf apache-doris-0.15.0-incubating-src.tar.gz -C /opt/software
2)下载 Docker 镜像
docker pull apache/incubator-doris:build-env-for-0.15.0
可以通过以下命令查看镜像是否下载完成。
docker images
3)挂载本地目录运行镜像
以挂载本地 Doris 源码目录的方式运行镜像,这样编译的产出二进制文件会存储在宿主
机中,不会因为镜像退出而消失。同时将镜像中 maven 的 .m2 目录挂载到宿主机目录,以
防止每次启动镜像编译时,重复下载 maven 的依赖库。
docker run -it
-v /opt/software/.m2:/root/.m2
-v /opt/software/apache-doris-0.15.0-incubating-src/:/root/apachedoris-0.15.0-incubating-src/
apache/incubator-doris:build-env-for-0.15.0
4)切换到 JDK 8
alternatives –set java java-1.8.0-openjdk.x86_64
alternatives –set javac java-1.8.0-openjdk.x86_64
export JAVA_HOME=/usr/lib/jvm/java-1.8.0
5)准备 Maven 依赖
编译过程会下载很多依赖,可以将我们准备好的 doris-repo.tar.gz 解压到 Docker 挂载的
对应目录,来避免下载依赖的过程,加速编译。
tar -zxvf doris-repo.tar.gz -C /opt/software
也可以通过指定阿里云镜像仓库来加速下载:
vim /opt/software/apache-doris-0.15.0-incubating-src/fe/pom.xml
6)编译 Doris
sh build.sh
如果是第一次使用 build-env-for-0.15.0 或之后的版本,第一次编译的时候要使用如下命令:
sh build.sh –clean –be –fe –ui
因为 build-env-for-0.15.0 版本镜像升级了 thrift(0.9 -> 0.13),需要通过–clean 命令强制
使用新版本的 thrift 生成代码文件,否则会出现不兼容的代码。
3.3、集群部署
主机 1 | 主机 2 | 主机 3 |
---|---|---|
FE(LEADER) | FE(FOLLOWER) | FE(OBSERVER) |
BE | BE | BE |
BROKER | BROKER | BROKER |
生产环境建议 FE 和 BE 分开。
3.3.1、创建目录并拷贝编译后的文件
1)创建目录并拷贝编译后的文件
mkdir /opt/module/apache-doris-0.15.0 cp -r
/opt/software/apache-doris-0.15.0-incubating-src/output
/opt/module/apache-doris-0.15.0
2)修改可打开文件数(每个节点)
sudo vim /etc/security/limits.conf
- soft nofile 65535
- hard nofile 65535
- soft nproc 65535
- hard nproc 65535
重启永久生效,也可以用 ulimit -n 65535 临时生效。
3.3.2、部署 FE 节点
1)创建 fe 元数据存储的目录
mkdir /opt/module/apache-doris-0.15.0/doris-meta
2)修改 fe 的配置文件
vim /opt/module/apache-doris-0.15.0/fe/conf/fe.conf
#配置文件中指定元数据路径: meta_dir = /opt/module/apache-doris-0.15.0/doris-meta
#修改绑定 ip(每台机器修改成自己的 ip) priority_networks = 192.168.8.101/24
注意:
? 生产环境强烈建议单独指定目录不要放在 Doris 安装目录下,最好是单独的磁盘(如果有 SSD 最好)。
? 如果机器有多个 ip, 比如内 外 , 虚拟机 docker 等, 需要进行 ip 绑定,才能正确识
别。
? JAVA_OPTS 默认 java 最大堆内存为 4GB,建议生产环境调整至 8G 以上。
3)启动 hadoop1 的 FE
/opt/module/apache-doris-0.15.0/fe/bin/start_fe.sh –daemon
3.3.3、配置 BE 节点
1)分发 BE
scp -r /opt/module/apache-doris-0.15.0/be hadoop2:/opt/module scp -r
/opt/module/apache-doris-0.15.0/be hadoop3:/opt/module
2)创建 BE 数据存放目录(每个节点)
mkdir /opt/module/apache-doris-0.15.0/doris-storage1 mkdir
/opt/module/apache-doris-0.15.0/doris-storage2
3)修改 BE 的配置文件(每个节点)
vim /opt/module/apache-doris-0.15.0/be/conf/be.conf
#配置文件中指定数据存放路径: storage_root_path = /opt/module/apache-doris-0.15.0/dorisstorage1;/opt/module/apache-doris-0.15.0/doris-storage2
#修改绑定 ip(每台机器修改成自己的 ip) priority_networks = 192.168.8.101/24
注意:
? storage_root_path 默认在 be/storage 下,需要手动创建该目录。多个路径之间使用英文状
态的分 ;分隔(最后一个目录后不要加)。
? 可以通过路径区别存储目录的介质,HDD 或 SSD。可以添加容量限制在每个路径的末尾,通过英文状态逗 ,隔开,如:
storage_root_path=/home/disk1/doris.HDD,50;/home/disk2/doris.SSD,10;/home/disk2/doris
说明:
/home/disk1/doris.HDD,50,表示存储限制为 50GB,HDD;
/home/disk2/doris.SSD,10,存储限制为 10GB,SSD;
/home/disk2/doris,存储限制为磁盘最大容量,默认为 HDD
? 如果机器有多个 IP, 比如内 外 , 虚拟机 docker 等, 需要进行 IP 绑定,才能正确识别。
3.3.4、在 FE 中添加所有 BE 节点
BE 节点需要先在 FE 中添加,才可加入集群。可以使用 mysql-client 连接到 FE。
1)安装 MySQL Client
(1)创建目录
mkdir /opt/software/mysql-client/
(2)上传相关以下三个 rpm 包到/opt/software/mysql-client/
? mysql-community-client-5.7.28-1.el7.x86_64.rpm
? mysql-community-common-5.7.28-1.el7.x86_64.rpm
? mysql-community-libs-5.7.28-1.el7.x86_64.rpm
(3)检查当前系统是否安装过 MySQL
sudo rpm -qa|grep mariadb
#如果存在,先卸载
sudo rpm -e –nodeps mariadb mariadb-libs mariadb-server
(4)安装
rpm -ivh /opt/software/mysql-client/*
2)使用 MySQL Client 连接 FE
mysql -h hadoop1 -P 9030 -uroot
默认 root 无密码,通过以下命令修改 root 密码。
SET PASSWORD FOR ‘root’ = PASSWORD(‘000000’);
3)添加 BE
ALTER SYSTEM ADD BACKEND “hadoop1:9050”;
ALTER SYSTEM ADD BACKEND “hadoop2:9050”;
ALTER SYSTEM ADD BACKEND “hadoop3:9050”;
4)查看 BE 状态
SHOW PROC ‘/backends’;
3.3.5、启动 BE
1)启动 BE(每个节点)
/opt/module/apache-doris-0.15.0/be/bin/start_be.sh –daemon
2)查看 BE 状态
mysql -h hadoop1 -P 9030 -uroot -p
SHOW PROC ‘/backends’;
Alive 为 true 表示该 BE 节点存活。
3.3.6、部署 FS_Broker(可选)
Broker 以插件的形式,独立于 Doris 部署。如果需要从第三方存储系统导入数据,需要部署相应的 Broker,默认提供了读取 HDFS、百度云 BOS 及 Amazon S3 的 fs_broker。fs_broker 是无状态的,建议每一个 FE 和 BE 节点都部署一个 Broker。
1)编译 FS_BROKER 并拷贝文件
(1)进入源码目录下的 fs_brokers 目录,使用 sh build.sh 进行编译
(2)拷贝源码 fs_broker 的 output 目录下的相应 Broker 目录到需要部署的所有节点上,改名为: apache_hdfs_broker。建议和 BE 或者 FE 目录保持同级。
方法同 2.2。
2)启动 Broker
/opt/module/apache-doris-0.15.0/apache_hdfs_broker/bin/start_broker.sh
–daemon
3)添加 Broker
要让 Doris 的 FE 和 BE 知道 Broker 在哪些节点上,通过 sql 命令添加 Broker 节
点列表。
(1)使用 mysql-client 连接启动的 FE,执行以下命令:
mysql -h hadoop1 -P 9030 -uroot -p
ALTER SYSTEM ADD BROKER broker_name “hadoop1:8000”,“hadoop2:8000”,“hadoop3:8000”;
其中 broker_host 为 Broker 所在节点 ip;broker_ipc_port 在 Broker 配置文件中的
conf/apache_hdfs_broker.conf。
4)查看 Broker 状态
使用 mysql-client 连接任一已启动的 FE,执行以下命令查看 Broker 状态:
SHOW PROC “/brokers”;
注:在生产环境中,所有实例都应使用守护进程启动,以保证进程退出后,会被自动拉
起,如 Supervisor(opens new window)。如需使用守护进程启动,在 0.9.0 及之前版本中,
需要修改各个 start_xx.sh 脚本,去掉最后的 & 符 。从 0.10.0 版本开始,直接调用 sh
start_xx.sh 启动即可。
3.4、扩容和缩容
Doris 可以很方便的扩容和缩容 FE、BE、Broker 实例。
3.4.1 FE 扩容和缩容
可以通过将 FE 扩容至 3 个以上节点来实现 FE 的高可用。
1)使用 MySQL 登录客户端后,可以使用 sql 命令查看 FE 状态,目前就一台 FE
mysql -h hadoop1 -P 9030 -uroot -p
SHOW PROC ‘/frontends’;
也可以通过页面访问进行监控,访问 8030,账户为 root,密码默认为空不用填写。
2)增加 FE 节点
FE 分为 Leader,Follower 和 Observer 三种角色。 默认一个集群,只能有一个 Leader,可以有多个 Follower 和 Observer。其中 Leader 和 Follower 组成一个 Paxos 选择组,如果Leader 宕机,则剩下的 Follower 会自动选出新的 Leader,保证写入高可用。Observer 同步Leader 的数据,但是不参加选举。
如果只部署一个 FE,则 FE 默认就是 Leader。在此基础上,可以添加若干 Follower 和Observer。
ALTER SYSTEM ADD FOLLOWER “hadoop2:9010”;
ALTER SYSTEM ADD OBSERVER “hadoop3:9010”;
3)配置及启动 Follower 和 Observer
第一次启动时,启动命令需要添加参–helper leader 主机: edit_log_port:
(1)分发 FE,修改 FE 的配置(同 2.4.2)
scp -r /opt/module/apache-doris-0.15.0/fe hadoop2:/opt/module/
apache-doris-0.15.0scp -r /opt/module/apache-doris-0.15.0/fe hadoop3:/opt/module/
apache-doris-0.15.0
(2)在 hadoop2 启动 Follower
/opt/module/apache-doris-0.15.0/fe/bin/start_fe.sh –helper
hadoop1:9010 –daemon
(3)在 hadoop3 启动 Observer
/opt/module/apache-doris-0.15.0/fe/bin/start_fe.sh –helper
hadoop1:9010 –daemon
4)查看运行状态
使用 mysql-client 连接到任一已启动的 FE。
SHOW PROC ‘/frontends’;
5)删除 FE 节点命令
ALTER SYSTEM DROP FOLLOWER[OBSERVER] “fe_host:edit_log_port”;
注意:删除 Follower FE 时,确保最终剩余的 Follower(包括 Leader)节点为奇数。
3.4.2 BE 扩容和缩容
1)增加 BE 节点
在 MySQL 客户端,通过 ALTER SYSTEM ADD BACKEND 命令增加 BE 节点。
2)DROP 方式删除 BE 节点(不推荐)
ALTER SYSTEM DROP BACKEND “be_host:be_heartbeat_service_port”;
注意:DROP BACKEND 会直接删除该 BE,并且其上的数据将不能再恢复!!!所以我们强烈不推荐使用 DROP BACKEND 这种方式删除 BE 节点。当你使用这个语句时,会有对应的防误操作提示。
3)DECOMMISSION 方式删除 BE 节点(推荐)
ALTER SYSTEM DECOMMISSION BACKEND
“be_host:be_heartbeat_service_port”;
? 该命令用于安全删除 BE 节点。命令下发后,Doris 会尝试将该 BE 上的数据向其他 BE 节点迁移,当所有数据都迁移完成后,Doris 会自动删除该节点。
? 该命令是一个异步操作。执行后,可以通过 SHOW PROC ‘/backends’; 看到该 BE 节点的 isDecommission 状态为 true。表示该节点正在进行下线。
? 该命令不一定执行成功。比如剩余 BE 存储空间不足以容纳下线 BE 上的数据,或者剩余机器数量不满足最小副本数时,该命令都无法完成,并且 BE 会一直处于
isDecommission 为 true 的状态。
? DECOMMISSION 的进度,可以通过 SHOW PROC ‘/backends’; 中的 TabletNum 查看,如果正在进行,TabletNum 将不断减少。
? 该操作可以通过如下命令取消:
CANCEL DECOMMISSION BACKEND “be_host:be_heartbeat_service_port”;
取消后,该 BE 上的数据将维持当前剩余的数据量。后续 Doris 重新进行负载均衡。
3.4.3 Broker 扩容缩容
Broker 实例的数量没有硬性要求。通常每台物理机部署一个即可。Broker 的添加和删除可以通过以下命令完成:
ALTER SYSTEM ADD BROKER broker_name “broker_host:broker_ipc_port”;
ALTER SYSTEM DROP BROKER broker_name “broker_host:broker_ipc_port”;
ALTER SYSTEM DROP ALL BROKER broker_name;
Broker 是无状态的进程,可以随意启停。当然,停止后,正在其上运行的作业会失败,重试即可。
4、数据表的基本使用
4.1、创建用户和数据库
1)创建test用户
mysql -h hadoop1 -P 9030 -uroot -p
create user ‘test’ identified by ‘test’;
2)创建数据库
create database test_db;
3)用户授权
grant all on test_db to test;
4.2、Doris中数据表的基本概念
在Doris中,数据都以关系表(Tabl
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!