配置一个FE+三个BE的集群,使用版本1.1.5,并且指定固定IP和网络。

概要

  1. 下载FE和BE包

  1. 准备FE和BE环境

  1. 配置FE

  1. 配置BE

  1. 在FE中添加BE

  1. 开始使用doris

一、下载FE和BE包

从官方下载已经编译好的包: doris下载

1.1 doris官方下载

二、准备FE和BE环境

配置FE和BE的目录结构;
把第一步的压缩包解压后放在对应的FE和BE;

运行命令:

host> mkdir docker
host> mv apache-doris-fe-1.1.5-bin docker/doris/fe
host> mv apache-doris-be-1.1.5-bin-x86_64 docker/doris/be-01
host> mv apache-doris-be-1.1.2-bin-x86_64 docker/doris/be-02
host> mv apache-doris-be-1.1.5-bin-x86_64 docker/doris/be-03
各个版本的doris压缩包的格式可能不一样,1.1.5解压后直接是FE或者BE的根目录。

最终目录结构如下:

2.1 doris的FE + BE的目录结构

2.2 doris的FE目录内容

2.3 doris的BE目录内容

配置docker网络,后续的FE和BE都挂在此网络中,并且可以分配固定IP,模拟真实环境:

host> docker network create --driver bridge --subnet=172.17.0.0/16 doris-network

三、配置FE

3.1 启动FE Docker

运行命令(换行是为了美观,自己拷贝请合为一行):

host> docker run -it -d --name=doris-fe 
    -p 18030:8030 
    -p 19030:9030 
    -v /Users/yong/dev/doris/docker/doris/fe:/opt/doris/fe 
    -v /Users/yong/dev/doris/docker/doris-meta:/opt/doris/doris-meta 
    --network=doris-network
    --ip=172.17.0.4
    apache/doris:build-env-for-1.1.0 
  • --network 放在上面创建的自定义网络中
  • --ip 指定固定ip地址

3.2进入FE进行配置

配置FE网络:
host> docker exec -it doris-fe /bin/bash
# 查看FE的ip地址
fe> cat /etc/hosts
# 配置FE的网络
fe> vi /opt/doris/fe/conf/fe.conf
# 取消下面行的注释并把这里的ip网段配置成上面的ip地址网段
vi> priority_networks = 172.17.0.0/16
配置FE的JDK:
fe> alternatives --set java java-11-openjdk.x86_64
fe> alternatives --set javac java-11-openjdk.x86_64
fe> export JAVA_HOME=/usr/lib/jvm/java-11
配置FE的环境变量:
fe> vi /etc/profile.d/doris.sh
vi> export DORIS_HOME=/opt/doris/fe/
vi> export PATH=$PATH:$DORIS_HOME/bin
# 保存后退出vi
fe> source /etc/profile.d/doris.sh

3.3启动FE

fe> start_fe.sh --daemon

3.4验证FE

访问FE网站 http://localhost:18030 ,登录账号admin,密码为空。

四、配置BE

4.1启动BE Docker

运行命令:

host> docker run --privileged -it -d --name=doris-be-01 
    -p 9061:9060 
    -v /Users/yong/dev/doris/docker/doris/be-01:/opt/doris/be 
    --network=doris-network 
    --ip=172.17.0.5
    apache/doris:build-env-for-1.1.0
  • --privileged 这里添加了特权模式,跟配置/etc/sysctl.conf的vm.max_map_count=2000000相关。

  • --name=doris-be-01 多个be对应的名字不同:doris-be-02、doris-be-03

  • -p 9061:9060 多个be对应的端口不同,9062:9060、9063:9060

  • --network 放在上面创建的自定义网络中

  • --ip 指定固定ip

4.2进入BE进行配置

配置BE网络:
host> docker exec -it doris-be-01 /bin/bash
# 查看FE的ip地址
be> cat /etc/hosts
# 配置BE的网络
be> vi /opt/doris/be/conf/be.conf
# 取消下面行的注释并把这里的ip网段配置成上面查看的ip地址网段
vi> priority_networks = 172.17.0.0/16
配置BE的JDK:
be> alternatives --set java java-11-openjdk.x86_64
be> alternatives --set javac java-11-openjdk.x86_64
be> export JAVA_HOME=/usr/lib/jvm/java-11
配置BE的环境变量:
be> vi /etc/profile.d/doris.sh
vi> export DORIS_HOME=/opt/doris/be/
vi> export PATH=$PATH:$DORIS_HOME/bin
# 保存后退出vi
be> source /etc/profile.d/doris.sh
配置vm.max_map_count
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [2000000]

如果碰到这个错误,请进行如下配置:

be> vi /etc/sysctl.conf
vi> vm.max_map_count=2000000
# 保存退出vi
# 查看结果
be> sysctl -a | grep vm.max_map_count

4.3启动BE

be> start_be.sh --daemon

4.4同理继续4.1~4.3步骤,配置和运行其余BE:

运行doris-be-02:

host> docker run --privileged -it -d --name=doris-be-02
-p 9062:9060
-v /Users/yong/dev/doris/docker/doris/be-02:/opt/doris/be

--network=doris-network 
--ip=172.17.0.6
apache/doris:build-env-for-1.1.0

运行doris-be-03:

host> docker run --privileged -it -d --name=doris-be-03
-p 9063:9060
-v /Users/yong/dev/doris/docker/doris/be-03:/opt/doris/be

--network=doris-network 
--ip=172.17.0.7
apache/doris:build-env-for-1.1.0

五、在FE中添加BE

在FE环境中安装mysql客户端:

fe> yum install mysql

然后进入通过mysql客户端进入doris配置backends:

fe> mysql -h 127.0.0.1 -P9030 -uroot
# 9050为be的心跳端口heartbeat_service_port
mysql> ALTER SYSTEM ADD BACKEND "172.17.0.5:9050";
mysql> ALTER SYSTEM ADD BACKEND "172.17.0.6:9050";
mysql> ALTER SYSTEM ADD BACKEND "172.17.0.7:9050";

# 查询节点状态 Alive属性true即为正常
mysql> show PROC '/backends';

也可以通过FE网站查看:

在线查看doris的backends

六、开始使用doris

fe> mysql -h 127.0.0.1 -P9030 -uroot
mysql> create database db_test;
mysql> use db_test;

mysql> create table tbl_user_sync
(
    _id varchar(32) default '',
    user_name varchar(32) default ''
)
duplicate key(_id)
distributed by hash(_id) buckets 10
properties("replication_num"="1");

mysql> insert into tbl_user_sync values('1','bob');

mysql> select * from tbl_user_sync;
+------+-------------+
| _id  | user_name   |
+------+-------------+
| 1    | bob         |
+------+-------------+

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐