赞
踩
目录
Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库。Doris整体架构如下图所示,Doris 架构非常简单,只有两类进程
Doris 采用 MySQL 协议,高度兼容 MySQL 语法,支持标准 SQL,用户可以通过各类客户端工具来访问 Doris,并支持与 BI 工具的无缝对接。
在 Doris 集群中,FE 主要用于元数据存储,包括元数据 edit log 和 image。BE 的磁盘空间主要用于存放数据,需要根据业务需求计算。
组件 | 磁盘空间说明 |
---|---|
FE | 元数据一般在几百 MB 到几 GB,建议不低于 100GB |
BE | Doris 默认 LZ4 压缩方式进行存储,压缩比在 0.3 - 0.5 左右磁盘空间需要按照总数据量 * 3(3 副本)计算需要预留出 40% 空间用作后台 compaction 以及临时数据的存储 |
Broker | 如需部署 Broker,通常情况下可以将 Broker 节点与 FE / BE 节点部署在同一台机器上 |
机器 | 服务 |
---|---|
192.168.179.131 (01.weisx.com) | FE、BE |
192.168.179.132 (02.weisx.com) | FE、BE |
192.168.179.133 (03.weisx.com) | FE、BE |
如果 FE 和 BE 混部,需注意资源竞争问题,并保证元数据目录和数据目录分属不同磁盘。
以下第3到4步在192.168.179.131上操作
1)解压安装
拷贝Doris安装包到01节点~/tools/目录
解压到~/opt/目录
tar -zxf apache-doris-2.0.0-bin-x64.tar.gz -C /home/weisx/opt/
创建Doris软链接
ln -s /home/weisx/opt/apache-doris-2.0.0-bin-x64 /home/weisx/opt/doris
2)创建FE元数据存储路径
3)修改FE配置文件,指定元数据存储路径及FE绑定IP
vi fe/conf/fe.conf
# 增加 JAVA_HOME 配置,指向 JDK8 的运行环境。假如我们 JDK8 位于 /home/doris/jdk8, 则设置如下
JAVA_HOME=/home/doris/jdk8# FE 监听 IP 的 CIDR 网段。默认设置为空,有 Doris 启动时自动选择一个可用网段。如有多个网段,需要指定一个网段,可以类似设置 priority_networks=92.168.0.0/24
# priority_networks =# FE 元数据存放的目录,默认是在 DORIS_HOME 下的 doris-meta 目录。已经创建,可以更改为你的元数据存储路径。
# meta_dir = ${DORIS_HOME}/doris-meta
4)启动FE
./fe/bin/start_fe.sh --daemon
5)访问FE端口,用户名:root 密码为空
http://192.168.179.131:8030/login
6)连接FE
通过MySQL客户端连接Doris FE: mysql -h192.168.179.131 -P9030 -uroot
7)查看 FE 运行状态
8)停止FE节点
./fe/bin/stop_fe.sh
1)创建BE数据存储路径
2)修改BE配置文件,指定数据存储路径及BE绑定IP
vi be/conf/be.conf
# 增加 JAVA_HOME 配置,指向 JDK8 的运行环境。假如我们 JDK8 位于 /home/doris/jdk8, 则设置如下
JAVA_HOME=/home/doris/jdk8# BE 监听 IP 的 CIDR 网段。默认设置为空,有 Doris 启动时自动选择一个可用网段。如有多个网段,需要指定一个网段,可以类似设置 priority_networks=192.168.0.0/24
# priority_networks =# BE 数据存放的目录,默认是在 DORIS_HOME 下的 storage 下,默认已经创建,可以更改为你的数据存储路径
# storage_root_path = ${DORIS_HOME}/storagea
3)启动BE
./be/bin/start_be.sh --daemon
如果提示:Please set vm.max_map_count to be 2000000 under root using 'sysctl -w vm.max_map_count=2000000'.需要先配置之后再启动。
4)添加 BE 节点到集群
通过MySQL 客户端连接到 FE 之后执行下面的 SQL,将 BE 添加到集群中。
ALTER SYSTEM ADD BACKEND "192.168.179.131:9050";
5)停止BE
./be/bin/stop_be.sh
6)测试建库、建表
create database demo;
7)修改 root 和 admin 的密码
root 和 admin 用户都属于 Doris 安装完默认存在的 2 个账户。其中 root 拥有整个集群的超级权限,可以对集群完成各种管理操作,比如添加节点,去除节点。admin 用户没有管理权限,是集群中的 Superuser,拥有除集群管理相关以外的所有权限。建议只有在需要对集群进行运维管理超级权限时才使用 root 权限。
# 在 MySQL 客户端,执行类似下面的 SQL,为 root 和 admin 用户设置新密码
SET PASSWORD FOR 'root' = PASSWORD('doris-root-password');
SET PASSWORD FOR 'admin' = PASSWORD('doris-admin-password');
1)将192.168.179.131服务器上的doris文件同步到新节点服务器上
2)在新节点服务器上创建BE数据存储路径
3)修改新节点上的BE配置文件,指定数据存储路径及BE绑定IP
4)启动新节点上的BE
5)将新节点上的BE加入集群
ALTER SYSTEM ADD BACKEND "192.168.179.132:9050";
6)检查新节点BE集群情况
show backends\G;
7)参照以上1到6步添加新的BE节点
8)删除集群中的BE节点
删除 BE 节点有两种方式:DROP 和 DECOMMISSION
ALTER SYSTEM DROP BACKEND "be_host:be_heartbeat_service_port";
注意:DROP BACKEND 会直接删除该 BE,并且其上的数据将不能再恢复!!!所以我们强烈不推荐使用 DROP BACKEND 这种方式删除 BE 节点。当你使用这个语句时,会有对应的防误操作提示。
ALTER SYSTEM DECOMMISSION BACKEND "be_host:be_heartbeat_service_port";
DECOMMISSION 命令用于安全删除 BE 节点。命令下发后,Doris 会尝试将该 BE 上的数据向其他 BE 节点迁移,当所有数据都迁移完成后,Doris 会自动删除该节点。
官方建议:
1)将192.168.179.131服务器上的doris文件同步到新节点服务器上(如果以存在则忽略)
2)在新节点服务器上创建FE元数据存储路径
3)修改新节点上的FE配置文件,指定元数据存储路径及FE绑定IP
4)启动新节点上的FE
./fe/bin/start_fe.sh --helper 192.168.179.131:9010 --daemon
--helper leader_fe_host:edit_log_port
其中 leader_fe_host 为 Master 所在节点 ip, edit_log_port 在 Master 的配置文件 fe.conf 中。--helper 参数仅在 follower 和 observer 第一次启动时才需要。
5)将新节点上的FE加入集群
将 Follower 或 Observer 加入到集群。使用 mysql-client 连接到已启动的 FE,并执行:
ALTER SYSTEM ADD FOLLOWER "192.168.179.132:9010";
或
ALTER SYSTEM ADD OBSERVER "192.168.179.132:9010";
6)检查新节点FE集群情况
show frontends\G;
7)参照以上1到6步添加新的FE节点
8)删除集群中的FE节点
使用以下命令删除对应的 FE 节点:
ALTER SYSTEM DROP FOLLOWER[OBSERVER] "fe_host:edit_log_port";
FE 缩容注意事项:
当部署多个 FE 节点时,用户可以在多个 FE 之上部署负载均衡层来实现 Doris 的高可用。
如果使用 mysql jdbc connector 来连接 Doris,可以使用 jdbc 的自动重试机制:jdbc:mysql:loadbalance://[host:port],[host:port].../[database][?propertyName1][=propertyValue1][&propertyName2][=propertyValue
1)安装nginx时,配置--with-stream参数使nginx支持TCP协议
./configure --prefix=/usr/local/nginx --with-stream --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module
2)配置反向代理
stream { #mysql连接负载均衡 upstream doris-mysql{ hash $remote_addr consistent; server 192.168.179.131:9030 weight=1 max_fails=2 fail_timeout=60s; server 192.168.179.132:9030 weight=1 max_fails=2 fail_timeout=60s; server 192.168.179.133:9030 weight=1 max_fails=2 fail_timeout=60s; ##注意这里如果是多个FE,加载这里就行了 } ###这里是配置代理的端口,超时时间等 server { listen 19030; proxy_connect_timeout 300s; proxy_timeout 300s; proxy_pass doris-mysql; } } http { #web UI 负载均衡 upstream doris-web{ server 172.22.197.238:8030 weight=3; server 172.22.197.239:8030 weight=4; server 172.22.197.240:8030 weight=4; ip_hash; } server { listen 18030; if ($request_uri ~ _load) { return 307 http://$host$request_uri ; } location / { proxy_pass http://doris-web; proxy_redirect default; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。