下一代实时数据库:Apache Doris 【三】集群部署
文章目录
2.3 安装要求
2.3.1 软硬件需求
- Linux 操作系统要求
linux 系统 版本
Centos 7.1 及以上
Ubuntu 16.04 及以上
2)软件需求
软件 版本
Java 1.8 及以上
GCC 4.8.2 及以上
3)开发测试环境
模块 CPU 内存 磁盘 网络 实例数量
Frontend 8 核+ 8GB SSD 或 SATA ,10GB+ * 千兆网卡 1
Backend 8 核+ 16GB SSD 或 SATA ,50GB+ * 千兆网卡 1-3*
4) 生产环境
模块 CPU 内存 磁盘 网络 实例数量
Frontend 16 核+ 64GB SSD 或 SATA,100GB+ * 万兆网卡 1-5*
Backend 16 核+ 64GB SSD 或 SATA,100GB+ * 万兆网卡 10- 100*
5)注意事项
(1) FE 的磁盘空间主要用于存储元数据,包括日志和 image。通常从几百 MB 到几个 GB 不等。
(2) BE 的磁盘空间主要用于存放用户数据, 总磁盘空间按用户总数据量* 3 (3 副本) 计算, 然后再预留额外 40%的空间用作后台 compaction 以及一些中间数据的存放。
(3) 一台机器上可以部署多个 BE 实例, 但是只能部署一个 FE。如果需要 3 副本数 据, 那么至少需要 3 台机器各部署一个 BE 实例(而不是 1 台机器部署 3 个 BE 实例) 。多 个 FE 所在服务器的时钟必须保持一致(允许最多5 秒的时钟偏差)
(4) 测试环境也可以仅适用一个 BE 进行测试。实际生产环境,BE 实例数量直接决定 了整体查询延迟。
(5) 所有部署节点关闭 Swap。
(6) FE 节点数据至少为 1 (1 个 Follower) 。当部署 1 个 Follower 和 1 个 Observer 时, 可以实现读高可用。当部署 3 个 Follower 时,可以实现读写高可用(HA)。
(7) Follower 的数量必须为奇数,Observer 数量随意。
(8) 根据以往经验,当集群可用性要求很高时(比如提供在线业务), 可以部署 3 个 Follower 和 1-3 个 Observer。如果是离线业务, 建议部署 1 个 Follower 和 1-3 个 Observer。
(9) Broker 是用于访问外部数据源(如 HDFS) 的进程。通常,在每台机器上部署一 个 broker 实例即可。
2.3.2 默认端口
当部署多个 FE 实例时,要保证 FE 的 http_port 配置相同。
部署前请确保各个端口在应有方向上的访问权限。
2.4 集群部署
主机 1 | 主机 2 | 主机 3 |
---|---|---|
FE(LEADER) | FE(FOLLOWER) | FE(OBSERVER) |
BE | BE | BE |
BROKER | BROKER | BROKER |
生产环境建议 FE 和 BE 分开。
2.4.1 创建目录并拷贝编译后的文件
1)创建目录并拷贝编译后的文件
mkdir /opt/module/apache-doris-0.15.0
cp -r /opt/software/apache-doris-0.15.0-incubating-src/output /opt/module/apache-doris-0.15.0
2)修改可打开文件数 (每个节点)
sudo vim /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
重启永久生效, 也可以用 ulimit -n 65535 临时生效。
2.4.2 部署 FE 节点
1)创建 fe 元数据存储的目录
mkdir /opt/module/apache-doris-0.15.0/doris-meta
2)修改 fe 的配置文件
vim /opt/module/apache-doris-0.15.0/fe/conf/fe.conf
#配置文件中指定元数据路径:
meta_dir = /opt/module/apache-doris-0.15.0/doris-meta #修改绑定 ip (每台机器修改成自己的 ip)
priority_networks = 192.168.8.101/24
注意:
? 生产环境强烈建议单独指定目录不要放在 Doris 安装目录下,最好是单独的磁盘(如果
有 SSD 最好)。
? 如果机器有多个 ip, 比如内网外网, 虚拟机 docker 等, 需要进行 ip 绑定, 才能正确识 别。
? JAVA_OPTS 默认 java 最大堆内存为 4GB,建议生产环境调整至 8G 以上。
3)启动 hadoop1 的 FE
/opt/module/apache-doris-0.15.0/fe/bin/start_fe.sh --daemon
2.4.3 配置 BE 节点
1)分发 BE
scp -r /opt/module/apache-doris-0.15.0/be hadoop2:/opt/module
scp -r /opt/module/apache-doris-0.15.0/be hadoop3:/opt/module
2)创建 BE 数据存放目录 (每个节点)
mkdir /opt/module/apache-doris-0.15.0/doris-storage1
mkdir /opt/module/apache-doris-0.15.0/doris-storage2
2)创建 BE 数据存放目录 (每个节点)
3)修改 BE 的配置文件 (每个节点)
vim /opt/module/apache-doris-0.15.0/be/conf/be.conf
#配置文件中指定数据存放路径:
storage_root_path = /opt/module/apache-doris-0.15.0/doris- storage1;/opt/module/apache-doris-0.15.0/doris-storage2
#修改绑定 ip (每台机器修改成自己的 ip)
priority_networks = 192.168.8.101/24
注意:
? storage_root_path 默认在 be/storage 下,需要手动创建该目录。多个路径之间使用英文状
态的分号;分隔(最后一个目录后不要加) 。
? 可以通过路径区别存储目录的介质, HDD 或 SSD。可以添加容量限制在每个路径的末
尾,通过英文状态逗号,隔开,如:
storage_root_path=/home/disk1/doris.HDD,50;/home/disk2/doris.SSD, 10;/home/disk2/doris
说明:
/home/disk1/doris.HDD,50,表示存储限制为 50GB ,HDD;
/home/disk2/doris.SSD,10,存储限制为 10GB ,SSD;
/home/disk2/doris,存储限制为磁盘最大容量, 默认为 HDD
? 如果机器有多个 IP, 比如内网外网, 虚拟机 docker 等, 需要进行 IP 绑定,才能正确识 别。
2.4.4 在 FE 中添加所有 BE 节点
BE 节点需要先在 FE 中添加,才可加入集群。可以使用 mysql-client 连接到 FE。 1)安装 MySQL Client
(1) 创建目录
mkdir /opt/software/mysql-client/
(2) 上传相关以下三个 rpm 包到/opt/software/mysql-client/
? mysql-community-client-5.7.28- 1.el7.x86_64.rpm
? mysql-community-common-5.7.28- 1.el7.x86_64.rpm
? mysql-community-libs-5.7.28- 1.el7.x86_64.rpm
(3) 检查当前系统是否安装过 MySQL
sudo rpm -qa |grep mariadb
#如果存在,先卸载
sudo rpm -e --nodeps mariadb mariadb-libs mariadb-server
(4) 安装
rpm -ivh /opt/software/mysql-client/*
2)使用 MySQL Client 连接 FE
mysql -h hadoop1 -P 9030 -uroot
默认 root 无密码, 通过以下命令修改 root 密码。
SET PASSWORD FOR 'root' = PASSWORD('000000');
3)添加 BE
ALTER SYSTEM ADD BACKEND "hadoop1:9050";
ALTER SYSTEM ADD BACKEND "hadoop2:9050";
ALTER SYSTEM ADD BACKEND "hadoop3:9050";
4)查看 BE 状态
SHOW PROC '/backends';
2.4.5 启动 BE
1)启动 BE (每个节点)
/opt/module/apache-doris-0.15.0/be/bin/start_be.sh --daemon
2)查看 BE 状态
mysql -h hadoop1 -P 9030 -uroot -p
SHOW PROC '/backends';
Alive 为 true 表示该 BE 节点存活。
2.4.6 部署 FS_Broker (可选)
Broker 以插件的形式, 独立于 Doris 部署。如果需要从第三方存储系统导入数据, 需要 部署相应的 Broker,默认提供了读取 HDFS、百度云 BOS 及 Amazon S3 的 fs_broker 。 fs_broker 是无状态的,建议每一个 FE 和 BE 节点都部署一个 Broker。
1)编译 FS_BROKER 并拷贝文件
(1) 进入源码目录下的 fs_brokers 目录, 使用 sh build.sh 进行编译
(2) 拷贝源码 fs_broker 的 output 目录下的相应 Broker 目录到需要部署的所有节点 上,改名为: apache_hdfs_broker。建议和 BE 或者 FE 目录保持同级。
方法同 2.2。
2)启动 Broker
/opt/module/apache-doris- 0.15.0/apache_hdfs_broker/bin/start_broker.sh --daemon
3)添加 Broker
要让 Doris 的 FE 和 BE 知道 Broker 在哪些节点上,通过 sql 命令添加 Broker 节 点列表。
(1) 使用 mysql-client 连接启动的 FE,执行以下命令:
mysql -h hadoop1 -P 9030 -uroot -p
ALTER SYSTEM ADD BROKER broker_name
"hadoop1:8000","hadoop2:8000","hadoop3:8000";
其中 broker_host 为 Broker 所在节点 ip ;broker_ipc_port 在 Broker 配置文件中的
conf/apache_hdfs_broker.conf。
4)查看 Broker 状态
使用 mysql-client 连接任一已启动的 FE,执行以下命令查看 Broker 状态:
SHOW PROC "/brokers";
注: 在生产环境中, 所有实例都应使用守护进程启动, 以保证进程退出后, 会被自动拉 起, 如 Supervisor (opens new window) 。如需使用守护进程启动, 在 0.9.0 及之前版本中,
需要修改各个 start_xx.sh 脚本,去掉最后的 & 符号。从 0.10.0 版本开始,直接调用 sh start_xx.sh 启动即可。
后记
📢博客主页:https://manor.blog.csdn.net
📢欢迎点赞 👍 收藏 ?留言 📝 如有错误敬请指正!
📢本文由 Maynor 原创,首发于 CSDN博客🙉
📢不能老盯着手机屏幕,要不时地抬起头,看看老板的位置?
📢专栏持续更新,欢迎订阅:https://blog.csdn.net/xianyu120/category_12401955.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!