Doris 2.x 安装及使用

Doris 2.x 安装及使用

简介

Apache Doris 是一款基于 MPP 架构的高性能、实时的分析型数据库,以高效、简单、统一的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。基于此,Apache Doris 能够较好的满足报表分析、即席查询、统一数仓构建、湖仓一体等使用场景,用户可以在此之上构建大屏看板、用户行为分析、AB 实验平台、日志检索分析、用户画像分析、订单分析等应用。

该方案并非官方推荐的自己制作镜像模式,正规模式及方案请查看官网:
https://doris.incubator.apache.org/zh-CN/docs/2.0/install/source-install/compilation-with-docker

准备环境及文件

官方要求修改内核参数

shell 复制代码
sudo sysctl -w vm.max_map_count=2000000 
sysctl vm.max_map_count

下载 doris 及 mysql 连接工具

doris 2.16 地址: :https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-2.1.6-bin-x64.tar.gz
mysql 客户端地址: https://doris-build-hk.oss-cn-hongkong.aliyuncs.com/mysql-client/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

根据自己的要求下载 doris 对应版本就可。

拉取 doker 环境,使用官方 2.0 的环境皆适配 doris 不同版本

shell 复制代码
# cf-workers-docker-io1-ai1.pages.dev  是个人地址

docker pull cf-workers-docker-io1-ai1.pages.dev/apache/doris:build-env-for-2.0 /bin/bash

上传至宿主机

shell 复制代码
# 创建文件目录
mkdir /opt/install
# window 使用工具上传,linux 可以使用 scp 上传
scp /opt/install/xxx.tar root@x.x.x.x:/opt/install/
安装及部署

构建 docker 环境

shell 复制代码
# 9030 为 doris 数据库地址,8030 为数据库管理页面 web 端口,可修改为其他

docker run -d -it --name=doris  -p 9030:9030 -p 8030:8030 
cf-workers-docker-io1-ai1.pages.dev/apache/doris:build-env-for-2.0 
/bin/bash

复制文件至 docker 中并进入容器解压

shell 复制代码
docker cp /opt/install/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz doris:/opt 
docker cp /opt/install/apache-doris-2.1.6-bin-x64.tar.gz doris:/opt

# 进入容器
docker exec -it doris /bin/bash

# 解压文件
cd /opt
tar -xvf apache-doris-2.1.6-bin-x64.tar.gz
tar -xzvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

# 获取本机容器内网ip地址,需修改到配置文件中。 
hostname -i

配置 FE

shell 复制代码
cd /opt/apache-doris-2.1.6-bin-x64/fe
vi conf/fe.conf

# 在配置文件中找到 priority_networks 后将注释打开,替换为自己的内网 ip
priority_networks = 自己的内网 ip/24

# 启动 FE
./bin/start_fe.sh --daemon 

# 测试时候成功
curl http://127.0.0.1:8030/api/bootstrap

配置 BE

shell 复制代码
cd /opt//apache-doris-2.1.6-bin-x64/be
vi conf/be.conf

# 在配置文件中找到 priority_networks 后将注释打开,替换为自己的内网 ip
priority_networks = 自己的内网 ip/24

# 启动 FE
./bin/start_be.sh --daemon 

将 be 添加至 fe ,测试 mysql 连接工具的作用就有了

shell 复制代码
# 默认配置账号 root 和 admin 都没有密码
/opt/mysql-5.7.22-linux-glibc2.12-x86_64/bin/mysql -uroot -P9030 -h127.0.0.1 --skip-ssl

# 将BE节点加入到集群中, 9050 不可更改,为内置端口
ALTER SYSTEM ADD BACKEND "内网 ip 地址:9050"; 

# 显示doris后端详情 
SHOW BACKENDS\G

# 修改 admin 密码
SET PASSWORD FOR 'admin'= PASSWORD('你的密码');

将 be 及 fe 启动加入自启动文件中,方便 docker restart 时重启 doris

shell 复制代码
vim /root/.bashrc

# 在最后一行加入
/opt/apache-doris-2.1.6-bin-x64/fe/bin/start_fe.sh --daemon
/opt/apache-doris-2.1.6-bin-x64/be/bin/start_be.sh --daemon
测试及使用

至此,可使用 mysql 工具进行连接,如: navicat 或 mysql 其他工具。

shell 复制代码
# 进入客户端
/opt/mysql-5.7.22-linux-glibc2.12-x86_64/bin/mysql -uroot -P9030 -h127.0.0.1 --skip-ssl

# 创建测试库
create database demo;
use demo;

# 创建测试表,语法与 mysql 高度相似,并不完全一样
CREATE TABLE `demo`.`bs_pat_info` (
  `id` BIGINT NOT NULL AUTO_INCREMENT,
  `base_id` VARCHAR(50) NOT NULL COMMENT 'user id',
  `pat_name` VARCHAR(100) NULL DEFAULT NULL,
  `record_time` DATETIME NOT NULL,
  `identify_number` VARCHAR(2000) NULL DEFAULT NULL,
  `address` VARCHAR(2000) NULL DEFAULT NULL,
  `delete_flag` VARCHAR(5) NULL DEFAULT NULL
) ENGINE=OLAP
UNIQUE KEY(`id`)
DISTRIBUTED BY HASH(`id`) BUCKETS 10
PROPERTIES (
"replication_allocation" = "tag.location.default: 1"
);

# 插入数据
INSERT INTO `demo`.`bs_pat_info`(`id`, `base_id`, `pat_name`, `record_time`, `identify_number`, `address`, `delete_flag`) VALUES (27622, '80472151', '俞强', '2024-08-26 08:59:49', '370201196803125600', '聊城市御景王宅3号楼303', '0');

# 附带 Doris 删除重复数据语句,根据 base_id 分组保留最新一条,删除旧数据
DELETE FROM bs_pat_info t1 USING (select id from `bs_pat_info` where id not in(select id from (SELECT id, ROW_NUMBER () OVER ( PARTITION BY base_id ORDER BY record_time, id DESC ) AS rn FROM `bs_pat_info`) t where t.rn = 1)) t2 WHERE t1.id = t2.id or delete_flag = '1';

Doris 账号及密码

用户 密码
admin
root
相关推荐
武子康21 小时前
大数据-257 离线数仓 - 数据质量监控 监控方法 Griffin架构
java·大数据·数据仓库·hive·hadoop·后端
ProtonBase1 天前
如何从 0 到 1 ,打造全新一代分布式数据架构
java·网络·数据库·数据仓库·分布式·云原生·架构
csding112 天前
写入hive metastore报问题Permission denied: user=hadoop,inode=“/user/hive”
数据仓库·hive·hadoop
不会写代码的女程序猿3 天前
关于ETL的两种架构(ETL架构和ELT架构)
数据仓库·架构·etl
ssxueyi3 天前
数据仓库有哪些?
大数据·数据仓库·数据湖
武子康3 天前
大数据-256 离线数仓 - Atlas 数据仓库元数据管理 正式安装 启动服务访问 Hive血缘关系导入
大数据·数据仓库·hive·hadoop
向阳逐梦3 天前
开源云原生数据仓库ByConity ELT 的测试体验
数据仓库·云原生·开源
ssxueyi3 天前
数据仓库是什么?数据仓库简介
数据仓库
小刘鸭!4 天前
Hive解决数据倾斜
数据仓库·hive·hadoop
武子康4 天前
大数据-255 离线数仓 - Atlas 数据仓库元数据管理 数据血缘关系 元数据
大数据·数据仓库·hive·hadoop·spring