校验时间:2023年10月11日
apache-doris-2.0.2-bin-x64.tar.gz
jdk1.8.0_131.tgz
mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz
命令
cat /proc/cpuinfo | grep flags
来查看当前CPU所支持的指令集命令
netstat -lntp 2>/dev/null|grep LISTEN|awk '{print $4}'|awk -F':' '{print $NF}'|sort|uniq
查询已经占用的端口命令
cat /etc/redhat-release
查询系统版本
Linux 系统 | 版本 |
---|---|
CentOS | 7.1 及以上 |
Ubuntu | 16.04 及以上 |
软件 | 版本 |
---|---|
Java | 1.8 |
GCC | 4.8.2 及以上 |
设置系统文件句柄数
vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
修改/etc/sysctl.conf
,增加以下配置
# 查看交换区
free -m
# 关闭交换区
# 第一步
swapoff -a
# 第二步修改配置文件 vim /etc/fstab 删除swap相关行
/mnt/swap swap swap defaults 0 0 这一行或者注释掉这一行
Doris 各个实例直接通过网络进行通讯。以下表格展示了所有需要的端口
实例名称 | 端口名称 | 默认端口 | 通讯方向 | 说明 |
---|---|---|---|---|
BE | be_port | 9060 | FE --> BE | BE 上 thrift server 的端口,用于接收来自 FE 的请求 |
BE | webserver_port | 8040 | BE <–> BE | BE 上的 http server 的端口 |
BE | heartbeat_service_port | 9050 | FE --> BE | BE 上心跳服务端口(thrift),用于接收来自 FE 的心跳 |
BE | brpc_port | 8060 | FE <–> BE, BE <–> BE | BE 上的 brpc 端口,用于 BE 之间通讯 |
FE | http_port | 8030 | FE <–> FE,用户 <–> FE | FE 上的 http server 端口 |
FE | rpc_port | 9020 | BE --> FE, FE <–> FE | FE 上的 thrift server 端口,每个fe的配置需要保持一致 |
FE | query_port | 9030 | 用户 <–> FE | FE 上的 mysql server 端口 |
FE | arrow_flight_sql_port | 9040 | 用户 <–> FE | FE 上的 Arrow Flight SQL server 端口 |
FE | edit_log_port | 9010 | FE <–> FE | FE 上的 bdbje 之间通信用的端口 |
Broker | broker_ipc_port | 8000 | FE --> Broker, BE --> Broker | Broker 上的 thrift server,用于接收请求 |
注:
- 当部署多个 FE 实例时,要保证 FE 的 http_port 配置相同。
- 部署前请确保各个端口在应有方向上的访问权限。
服务器 | FE | BE | MysqlClient |
---|---|---|---|
IP1 | yes | yes | |
IP2 | yes | ||
IP3 | yes | ||
IP4 | yes | ||
IP5 | yes | ||
IP6 | yes |
groupadd -g 900 doris
useradd -u 210 -g 900 doris
将空间大的目录软链接到home的子目录下,比如/opt
或者/data
。此文档采用/data
目录为例
用户目录
/home/doris/software
链接至 /data/doris/software
数据目录
/home/doris/data
链接至 /data/doris/data
日志目录
/home/doris/logs
链接至 /data/doris/logs
集群中任一机器都与其他机器root免密。
# 创建秘钥
ssh-keygen -t rsa
# 各个机器生成秘钥,汇集公钥
scp ~/.ssh/id_rsa.pub root@ip1:~/.ssh/2.id.rsa.pub
scp ~/.ssh/id_rsa.pub root@ip1:~/.ssh/3.id.rsa.pub
scp ~/.ssh/id_rsa.pub root@ip1:~/.ssh/4.id.rsa.pub
scp ~/.ssh/id_rsa.pub root@ip1:~/.ssh/5.id.rsa.pub
scp ~/.ssh/id_rsa.pub root@ip1:~/.ssh/6.id.rsa.pub
# 生成秘钥认证文件
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/2.id.rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/3.id.rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/4.id.rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/5.id.rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/6.id.rsa.pub >> ~/.ssh/authorized_keys
# 向集群机器分发认证文件
scp ~/.ssh/authorized_keys root@ip2:~/.ssh/
scp ~/.ssh/authorized_keys root@ip3:~/.ssh/
scp ~/.ssh/authorized_keys root@ip4:~/.ssh/
scp ~/.ssh/authorized_keys root@ip5:~/.ssh/
scp ~/.ssh/authorized_keys root@ip6:~/.ssh/
每台机器都相互免密登录一下,确认免密成功。
# 1.新建用户与用户组
groupadd -g 900 doris;
useradd -u 900 -g 900 doris;
# 2.准备目录-将安装包分发至各个服务器的/data/install_package目录
mkdir -p /data/install_package;
mkdir -p /data/doris/software;
mkdir -p /data/doris/logs;
mkdir -p /data/doris/data;
ln -snf /data/doris/software /home/doris/software;
ln -snf /data/doris/logs /home/doris/logs;
ln -snf /data/doris/data /home/doris/data;
# fe的元数据存储目录
mkdir -p /data/doris/data/doris-meta;
# be的数据存储目录
mkdir -p /data/doris/data/datastorage;
# 3.将安装包解压至software目录并配置软链接
tar -zxf /data/install_package/jdk1.8.0_131.tgz -C /home/doris/software/;
tar -zxf /data/install_package/apache-doris-2.0.2-bin-x64.tar.gz -C /home/doris/software/;
ln -snf /home/doris/software/jdk1.8.0_131 /home/doris/software/java;
ln -snf /home/doris/software/apache-doris-2.0.2-bin-x64 /home/doris/software/doris;
# 在某一台机器上安装mysql客户端
tar -zxf /data/install_package/mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz -C /home/doris/software/;
ln -snf /home/doris/software/mysql-5.7.43-linux-glibc2.12-x86_64 /home/doris/software/mysql-client;
# 4.确认目录权限
chown -R doris:doris /data/doris/;
chown -R doris:doris /home/doris/;
su - doris;
vim /home/doris/.bashrc;
# 在.bashrc文件中追加以下内容
export JAVA_HOME=/home/doris/software/java
export PATH=$JAVA_HOME/bin:$PATH
# 配置生效
source /home/doris/.bashrc;
# 检查jdk
java -version;
在doris用户下执行
fe.conf
vim /home/doris/software/doris/fe/conf/fe.conf
# 添加配置(使用ip a命令可获取)
priority_networks = 实际本机IP地址/掩码长度
meta_dir=/data/doris/data/doris-meta
# the output dir of stderr and stdout
LOG_DIR = /data/doris/logs
be.conf
vim /home/doris/software/doris/be/conf/be.conf
# 添加配置(使用ip a命令可获取)
priority_networks = 实际本机IP地址/掩码长度
storage_root_path=/data/doris/data/datastorage
# the output dir of stderr and stdout
LOG_DIR = /data/doris/logs
启动一个FE
su - doris;
cd /home/doris/software/doris/fe;
sh bin/start_fe.sh --daemon;
配置操作
MysqlClient连接第一个启动的FE 增加其他的FE节点和BE节点(无密码连接方式)
/home/doris/software/mysql-client -h 启动的FEIP -P 9030 -uroot
-- edit_log_port位于conf/fe.conf ,默认为9010
mysql> ALTER SYSTEM ADD FOLLOWER "fe2的ip:9010";
mysql> ALTER SYSTEM ADD FOLLOWER "fe3的ip:9010";
-- 查看所有fe节点
mysql> show proc '/frontends';
mysql> ALTER SYSTEM ADD BACKEND "be1:9050";
mysql> ALTER SYSTEM ADD BACKEND "be2:9050";
mysql> ALTER SYSTEM ADD BACKEND "be3:9050";
-- 查看所有be节点
mysql> show proc '/backends';
启动其他的FE节点(FE2,FE3)
待加入的FE节点(第一次启动时要加–helper参数,否则follower fe节点无法加入集群)
su - doris;
cd /home/doris/software/doris/fe;
sh bin/start_fe.sh --helper masterFE的IP:edit_log_port --daemon;
启动BE
su - doris;
cd /home/doris/software/doris/be;
sh bin/start_be.sh --daemon
查询FE是否正常
curl http://fe_host:fe_http_port/api/bootstrap
如果返回:{"status":"OK","msg":"Success"}
,则表示启动成功,其余情况,则可能存在问题。
查询BE是否正常
curl http://be_host:webserver_port/api/health
如果返回:{"status": "OK","msg": "To Be Added"}
,则表示启动成功,其余情况,则可能存在问题
su - doris;
cd /home/doris/software/doris/fe;
sh bin/stop_fe.sh
su - doris;
cd /home/doris/software/doris/be;
sh bin/stop_be.sh