0、安装JDK11
# 下载 jdk-11.0.16.tar.gz
# 解压
tar -zxvf jdk-11.0.16.tar.gz
# 配置环境变量
vi /etc/profile
# 文件最后一行后输出java路径,保存
export JAVA\_HOME=/usr/soft/jdk-11.0.16
export PATH=$JAVA\_HOME/bin:$PATH
# 重新加载配置文件
source /etc/profile
# 测试
java -version
1、下载 Docker 镜像
docker pull apache/doris:build-env-ldb-toolchain-latest
2、运行镜像
docker run -it apache/doris:build-env-ldb-toolchain-latest
建议挂载本地Doris源码目录,这样编译产出二进制文件存储在本地
docker run -it -v /home/soft/doris:/root/doris apache/doris:build-env-ldb-toolchain-latest
3、下载源码
本文基于apache-doris-1.1.1 源码Git仓库
进入容器后下载源码,若挂载本地源码,则忽略。
cd /root/doris
wget https://dist.apache.org/repos/dist/dev/doris/{version}/apache-doris-{version}-src.tar.gz
or
git clone https://github.com/apache/doris.git
4、编译 Doris
解压tar.gz文件
cd /root/doris
tar -zxvf apache-doris-{version}-src.tar.gz
是否支持avx2指令集
cat /proc/cpuinfo | grep avx2
若不支持,则执行如下命令
USE_AVX2=0 sh build.sh
若支持,则执行如下命令
sh build.sh
...... 等待编译
5、拷贝至各个节点
编译完成后,产出文件在 output/ 目录
将编译好的包拷贝到各个节点
6、部署
退出容器,进入映射目录/home/soft/doris
新建目录
# doris-meta:元数据
# doris-storage:用户数据
mkdir doris-meta doris-storage
注意:
1. FE 的磁盘空间主要用于存储元数据,包括日志和 image。通常从几百 MB 到几个 GB 不等。
2. BE 的磁盘空间主要用于存放用户数据,总磁盘空间按用户总数据量 * 3(3 副本)计算,然后再预留额外 40% 的空间用作后台 compaction 以及一些中间数据的存放。一台机器上可以部署多个 BE 实例,但是只能部署一个 FE。如果需要 3 副本数据,那么至少需要 3 台机器各部署一个 BE 实例(而不是 1 台机器部署 3 个 BE 实例)。
3. 多个 FE 所在服务器的时钟必须保持一致(允许最多 5 秒的时钟偏差)
4. 所有部署节点关闭 Swap。
5. FE 角色分为 Follower 和 Observer,(Leader 为 Follower 组中选举出来的一种角色)。FE 节点数据至少为 1(1 个 Follower)。当部署 1 个 Follower 和 1 个 Observer 时,可以实现读高可用。当部署 3 个 Follower 时,可以实现读写高可用(HA)。
6. Follower 的数量必须为奇数,Observer 数量随意。
按照一台服务器:一个FE、一个BE开始部署,进入 output目录
注意:
1. 设置文件最大打开数: ulinit -n 65500
2. 启动fe报错(log/fe.out):“java.io.IOException: the self host 192.168.0.158 does not equal to the host in ROLE file 172.17.0.1. You need to set 'priority_networks' config in fe.conf to match the host 172.17.0.1”,修改 doris-meta/ROLE中172.17.0.1为192.168.0.158
6.1 部署FE节点
修改 fe.conf
vi fe.conf
多网卡需要配置网段
meta_dir:元数据存储目录
执行启动脚本
# 对于leader节点
sh fe/bin/start_fe.sh --daemon
# 对于其他fe节点,执行 (--helper:指定leader ip)
sh fe/bin/start_fe.sh --helper leader_ip:9010 --daemon
启动成功
tail -f fe/log/fe.log
6.2 部署BE节点
修改 be.conf
vi be.conf
多网卡需要配置网段
storage_root_path:用户数据存储目录
30:存储数据大小限制,单位GB
执行启动脚本
# 启动be节点
sh be/bin/start_be.sh --daemon
6.3 添加节点到集群
1. 使用 mysql 客户端连接 fe 节点
mysql -h 192.168.0.158 -P 9030 -uroot
# 修改密码
mysql> SET PASSWORD FOR 'root' = PASSWORD('1234.abcd');
2. 添加 be 节点
mysql> ALTER SYSTEM ADD BACKEND "192.168.0.158:9050"
3. 添加 fe 点(可选)
-- 添加observer节点
mysql> ALTER SYSTEM ADD OBSERVER "192.168.0.159:9010"
4. 查看节点状态
mysql> SHOW PROC '/frontends';
mysql> SHOW PROC '/backends';
6.4 HTTP访问
http://192.168.0.158:8030 (密码上面设置的数据库密码)
6.5 自打包Docker镜像
将FE、BE打包成Docker镜像,并推送到Docker Hub,方便大家直接使用,跳过漫长的编译。。。
6.6 实践测试
1. 运行doris-fe
docker run --name doris-fe -p 8030:8030 -p 9030:9030 -d -v /home/soft/doris/doris-meta:/doris-meta -v /home/soft/doris/log/doris-fe:/code/log jiangcs/doris-fe:11.111
2. 运行doris-be
docker run --name doris-be -p 8040:8040 -v /home/soft/doris/doris-storage:/doris-storage -v /home/soft/doris/log/doris-be:/code/log -d jiangcs/doris-be:11.111
确保两个容器运行正常后,查看容器IP:
doris-fe:172.17.0.2
doris-be:172.17.0.3
3. 测试服务是否正常
4. 添加BE至FE中
5. 查看数据库信息
6. 修改数据库root密码
7. 数据库工具连接
8. 访问WebUI
6.7 自荐