【大数据】doris之docker部署-手把手部署doris集群
通过docker配置Doris集群:一个FE+三个BE,使用doris版本1.1.5。
配置一个FE+三个BE的集群,使用版本1.1.5,并且指定固定IP和网络。
概要
-
下载FE和BE包
-
准备FE和BE环境
-
配置FE
-
配置BE
-
在FE中添加BE
-
开始使用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 |
+------+-------------+
更多推荐
所有评论(0)