Docker部署Doris超详细图文教程

news/2024/10/18 12:28:05/

Doris安装有非常多的方法,这里主要介绍Docker中使用dev容器用来学习和测试的方法,避免在其他教程中踩坑(生产环境不建议使用Docker安装)

这里介绍一个不踩坑的docker本地单机版,笔者安装环境为Windows下的Docker,若为Linux系统安装基本一样,Linux只会更好装

文章目录

      • 1.安装Docker
      • 2.修改内核参数
      • 3.下载Docker 开发环境镜像
      • 4.下载安装包
      • 5.启动镜像环境
      • 6.配置fe
      • 7.配置be
      • 8.建表测试
      • 9.远程连接

1.安装Docker

参考Windows下安装ClickHouse图文教程中步骤1~2安装WSL以及Docker,若已安装则自行忽略

2.修改内核参数

在安装doris时,需要将 Linux 操作系统的内核参数设置为2000000,这里是Doris官方要求的

在这里插入图片描述

我这里是Windows,所以我在WSL虚拟机中设置,cmd进入到wsl

wsl

进入虚拟机

sudo sysctl -w vm.max_map_count=2000000

查看是否设置成功

sysctl vm.max_map_count

如果为Linux系统,则直接在Docker宿主机中设置即可

3.下载Docker 开发环境镜像

根据需求选取版本,使用现成的镜像

我这里选择主干用的最新镜像,3.22GB,根据网速不同,下载时间不同,这个镜像主要是用来集成FE(Doris的前端UI)和BE(Doris的后台进程)的,里面包含一些常用的开发环境,例如JDK等

docker pull apache/doris:build-env-ldb-toolchain-latest

在这里插入图片描述

4.下载安装包

值得一提的是,官网于2023 年 7 月 3 日也就是4天前,发布了,Apache Doris 2.0-beta,因为是测试版,也是最新版,不免会存在这样那样的坑,笔者已经踩过一些了,为了稳定和便于安装,这里还是采用目前官网的稳定最新版 快速下载,这个版本的FE和BE已经整合到一个xz tar中了。Windows用户直接下载到本地即可,Linux用户可以使用wget复制连接下载到宿主机上,例如

wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-1.2.4.1-bin-x86_64.tar.xz

然后需要下载MySQL,这里提供MySQL的免安装版MySQL 客户端,这里需要引入MySQL是因为了支持 Doris 的元数据存储和管理

wget https://doris-build-hk.oss-cn-hongkong.aliyuncs.com/mysql-client/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

若下载实在缓慢,这里提供网盘下载

提取码: t4v4

5.启动镜像环境

docker run -d -it --name=doris \
-p 9030:9030 -p 8030:8030 \
apache/doris:build-env-ldb-toolchain-latest \
/bin/bash

复制安装包

docker cp D:/Dev/doris/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz doris:/opt
docker cp D:/Dev/doris/apache-doris-1.2.4.1-bin-x86_64.tar.xz doris:/opt

进入到容器中

docker exec -it doris bash
cd /opt/
tar -xvf apache-doris-1.2.4.1-bin-x86_64.tar.xz
tar -xzvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
hostname -i

记住内网ip

在这里插入图片描述

6.配置fe

cd /opt/apache-doris-1.2.4.1-bin-x86_64/fe
vi conf/fe.conf

打开 priority_networks注释 将刚刚hostname -i打印出来的内网ip替换到

priority_networks = 172.17.0.2/24

在这里插入图片描述

接着启动fe

./bin/start_fe.sh --daemon
jps
curl http://127.0.0.1:8030/api/bootstrap

在这里插入图片描述

如图所示表示启动成功

因为在启动docker容器的时候,我们做了8030端口映射,我们可以直接在本机上访问

Windows,直接浏览器地址访问 http://localhost:8030/login,账号root,密码为空

在这里插入图片描述

登录成功后的Home页

在这里插入图片描述

接着在mysql中连接fe,默认无密码

/opt/mysql-5.7.22-linux-glibc2.12-x86_64/bin/mysql -uroot -P9030 -h127.0.0.1 --skip-ssl
show frontends\G;

注意:

  1. 这里使用的 root 用户是 doris 内置的默认用户,也是超级管理员用户,具体的用户权限查看 权限管理
  2. -P :这里是我们连接 Doris 的查询端口,默认端口是 9030,对应的是fe.conf里的 query_port
  3. -h : 这里是我们连接的 FE IP地址,如果你的客户端和 FE 安装在同一个节点可以使用127.0.0.1。

看到像我这样IsMaster、Join 和 Alive 三列均为true,则表示节点正常

在这里插入图片描述

7.配置be

exit;
cd /opt/apache-doris-1.2.4.1-bin-x86_64/be
vi conf/be.conf

和上面一样

替换内网ip到

priority_networks = 172.17.0.2/24

在这里插入图片描述

然后在启动脚本中设置jdk的路径,我们这里下载的镜像的jdk的默认路径为 /usr/lib/jvm/java-1.8.0

可以先ehco确认一下,因为使用的是最新镜像,路径可能随时版本的变更而改变

echo $JAVA_HOME

在这里插入图片描述

vi bin/start_be.sh

export JAVA_HOME=/usr/lib/jvm/java-1.8.0

在这里插入图片描述

然后启动be,并在mysql中连接be,即在Doris中添加已经后端节点

./bin/start_be.sh --daemon 
/opt/mysql-5.7.22-linux-glibc2.12-x86_64/bin/mysql -uroot -P9030 -h127.0.0.1 --skip-ssl
ALTER SYSTEM ADD BACKEND "172.17.0.2:9050";
SHOW BACKENDS\G

看到像我这样的,Alive : true表示节点运行正常(如果为false,可以尝试等待一会再重新查看,第一次启动会慢一点;或有其他问题在/opt/apache-doris-1.2.4.1-bin-x86_64/be/log/be.out 里面查看日志)

在这里插入图片描述

正常启动的进程是这样的,会有一个空名字的进程,正常,就是be

在这里插入图片描述

8.建表测试

第一次接触doris的同学可能会疑惑,怎么语法与MySQL差不多,其实这里建表语句就提现出来了,下面的DDL,在MySQL是无法运行的

这里使用MySQL仅作为远程连接工具,在实际使用中仅需启动fe与be即可,Doris自动启动和管理内部的 MySQL 实例,用于存储和管理元数据

create database demo;
use demo;
CREATE TABLE IF NOT EXISTS demo.example_tbl
(`user_id` LARGEINT NOT NULL COMMENT "user id",`date` DATE NOT NULL COMMENT "",`city` VARCHAR(20) COMMENT "",`age` SMALLINT COMMENT "",`sex` TINYINT COMMENT "",`last_visit_date` DATETIME REPLACE DEFAULT "1970-01-01 00:00:00" COMMENT "",`cost` BIGINT SUM DEFAULT "0" COMMENT "",`max_dwell_time` INT MAX DEFAULT "0" COMMENT "",`min_dwell_time` INT MIN DEFAULT "99999" COMMENT ""
)
AGGREGATE KEY(`user_id`, `date`, `city`, `age`, `sex`)
DISTRIBUTED BY HASH(`user_id`) BUCKETS 1
PROPERTIES ("replication_allocation" = "tag.location.default: 1"
);
exit;

新建一个数据文件

cd ~
vi test.csv

test.csv

10000,2017-10-01,beijing,20,0,2017-10-01 06:00:00,20,10,10
10006,2017-10-01,beijing,20,0,2017-10-01 07:00:00,15,2,2
10001,2017-10-01,beijing,30,1,2017-10-01 17:05:45,2,22,22
10002,2017-10-02,shanghai,20,1,2017-10-02 12:59:12,200,5,5
10003,2017-10-02,guangzhou,32,0,2017-10-02 11:20:00,30,11,11
10004,2017-10-01,shenzhen,35,0,2017-10-01 10:00:15,100,3,3
10004,2017-10-03,shenzhen,35,0,2017-10-03 10:20:22,11,6,6

导入数据

curl  --location-trusted -u root: -T test.csv -H "column_separator:," http://127.0.0.1:8030/api/demo/example_tbl/_stream_load

在这里插入图片描述

查询数据

/opt/mysql-5.7.22-linux-glibc2.12-x86_64/bin/mysql -uroot -P9030 -h127.0.0.1 --skip-ssl
mysql> use demo;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> select * from example_tbl;
+---------+------------+-----------+------+------+---------------------+------+----------------+----------------+
| user_id | date       | city      | age  | sex  | last_visit_date     | cost | max_dwell_time | min_dwell_time |
+---------+------------+-----------+------+------+---------------------+------+----------------+----------------+
| 10000   | 2017-10-01 | beijing   |   20 |    0 | 2017-10-01 06:00:00 |   20 |             10 |             10 |
| 10001   | 2017-10-01 | beijing   |   30 |    1 | 2017-10-01 17:05:45 |    2 |             22 |             22 |
| 10002   | 2017-10-02 | shanghai  |   20 |    1 | 2017-10-02 12:59:12 |  200 |              5 |              5 |
| 10003   | 2017-10-02 | guangzhou |   32 |    0 | 2017-10-02 11:20:00 |   30 |             11 |             11 |
| 10004   | 2017-10-01 | shenzhen  |   35 |    0 | 2017-10-01 10:00:15 |  100 |              3 |              3 |
| 10004   | 2017-10-03 | shenzhen  |   35 |    0 | 2017-10-03 10:20:22 |   11 |              6 |              6 |
| 10006   | 2017-10-01 | beijing   |   20 |    0 | 2017-10-01 07:00:00 |   15 |              2 |              2 |
+---------+------------+-----------+------+------+---------------------+------+----------------+----------------+
7 rows in set (0.05 sec)mysql> select * from example_tbl where city='beijing';
+---------+------------+---------+------+------+---------------------+------+----------------+----------------+
| user_id | date       | city    | age  | sex  | last_visit_date     | cost | max_dwell_time | min_dwell_time |
+---------+------------+---------+------+------+---------------------+------+----------------+----------------+
| 10000   | 2017-10-01 | beijing |   20 |    0 | 2017-10-01 06:00:00 |   20 |             10 |             10 |
| 10001   | 2017-10-01 | beijing |   30 |    1 | 2017-10-01 17:05:45 |    2 |             22 |             22 |
| 10006   | 2017-10-01 | beijing |   20 |    0 | 2017-10-01 07:00:00 |   15 |              2 |              2 |
+---------+------------+---------+------+------+---------------------+------+----------------+----------------+
3 rows in set (0.02 sec)mysql> select city, sum(cost) as total_cost from example_tbl group by city;
+-----------+------------+
| city      | total_cost |
+-----------+------------+
| beijing   |         37 |
| shanghai  |        200 |
| guangzhou |         30 |
| shenzhen  |        111 |
+-----------+------------+
4 rows in set (0.03 sec)

9.远程连接

三方数据库管理工具链接参数,默认root用户无密码

虽然我们要连接到doris,但是这里只需要选择MySQL即可

<jdbc-driver>com.mysql.cj.jdbc.Driver</jdbc-driver>
<jdbc-url>jdbc:mysql://localhost:9030</jdbc-url>
<user-name>root</user-name>

在这里插入图片描述

除了三方工具,还可以访问ui界面 Playground

在这里插入图片描述

至此安装完成,附关闭命令

/opt/apache-doris-1.2.4.1-bin-x86_64/fe/bin/stop_fe.sh
/opt/apache-doris-1.2.4.1-bin-x86_64/be/bin/stop_be.sh

http://www.ppmy.cn/news/775003.html

相关文章

030、SQL语句之数据类型与表达式

数据类型与表达式 数值数据类型整数数据类型定点数据类型浮点数据类型数值字面值BIT数据类型布尔表达式 时间数据类型时间戳和时区时间间隔关键字 字符串数据类型文本数据类型二进制ENUM 类型SET 类型字符串数据类型比较引号的使用字符集和排序规则CAST函数选择数据类型Null 数…

macbook pro的漏电

问题&#xff1a; macbook pro 2015漏电。 解决办法&#xff1a; 1&#xff0c;使用三相插座。 你懂的&#xff0c;很多时候不具备这个条件。 2&#xff0c;笔记本外壳接地。 其实跟上面的原理一样。 一般书房也不靠近接地的线路啊。 3&#xff0c;电工胶布 把跟手腕接触的部…

【硬件】漏电

原理&#xff1a;设备外壳与火线由于某种原因连通&#xff08;非绝缘状态&#xff09;&#xff0c;导致外壳与地之间有一定的电位差&#xff0c;就会产生漏电。 检测&#xff1a;电笔接触带电体。亮后即灭是静电&#xff0c;长亮是漏电。也可用万用表测对地电压。 原因&#…

主板漏电短路50Ω

故障现象&#xff1a;电话口无电压输出 维修结果&#xff1a;更换SI3217x芯片 附件&#xff1a; 分析过程&#xff1a; 原来故障为电话口无电压&#xff0c;更换SI3217x芯片后工作正常&#xff0c;但发现SI3217x芯片轻微发热主供电3.3V短路到50欧姆&#xff0c;正常阻值为k欧…

服务器主板电池的电压不稳定怎么办,主板因静电造成的故障现象与解决方法

故障现象一&#xff1a;一台机器&#xff0c;cpu为c466&#xff0c;主板为华硕p2b&#xff0c;内存为64mb&#xff0c;开机运行一段时间后&#xff0c;机箱内出现打火声&#xff0c;屏幕上出现许多杂乱字符&#xff0c;并随机出现奇偶校验错误&#xff0c;提示“parity check1或…

主板电流声解决方法

主板是华擎z390的itx主板 在浏览网页&#xff0c;拖动鼠标等cpu低负载状态下主板发出滋滋的电流声&#xff0c;声音不大但有点烦 排除过程 开始以为是显卡电流声&#xff0c;原因是这块1070显卡在高负载时有啸叫烦不胜烦后仔细听了一阵&#xff0c;确认时主板电流声在搜索一…

QT 之蓝牙BLE编程

简介 使用PC蓝牙和蓝牙透传模块通讯。 准备 QT core gui bluetoothQT蓝牙库相关头文件 #include <QtBluetooth/qbluetoothglobal.h> #include <QtBluetooth/qbluetoothlocaldevice.h> #include <qbluetoothaddress.h> #include <qbluetoothdev…

笙默考试管理系统-MyTestMean(3)

笙默考试管理系统-MyTestMean&#xff08;3&#xff09; 目录 一、 笙默考试管理系统-MyTestMean 二、 笙默考试管理系统-MyTestMean 三、 笙默考试管理系统-MyTestMean 四、 笙默考试管理系统-MyTestMean 五、 笙默考试管理系统-MyTestMean 笙默考试管理系统-MyTest…