规划
'''
StarRocks 部署
'''
主机资源信息:
172.21.56.212
172.21.56.213
172.21.56.214
配置情况:
172.21.56.212 16C/64G/1T
172.21.56.213 16C/64G/1T
172.21.56.214 16C/64G/1T
fe:
3 follower
be:
3 be
安装与配置
https://releases.starrocks.io/starrocks/StarRocks-2.5.22.tar.gz
get https://releases.starrocks.io/starrocks/StarRocks-3.1.15-centos-amd64.tar.gz
1. 下载StarRock 二进制包
wget https://releases.starrocks.io/starrocks/StarRocks-3.1.15-centos-amd64.tar.gz
2. 解压二进制包
tar -xzvf StarRocks-3.1.15-centos-amd64.tar.gz
二进制包中包含如下路径及文件:
路径/文件 说明
apache_hdfs_broker Broker 节点的部署路径。
fe FE 节点的部署路径。
be BE 节点的部署路径。
LICENSE.txt StarRocks license 文件。
NOTICE.txt StarRocks notice 文件。
cp -r fe ../
cp -r be ../
scp -r fe 172.21.56.213:/data/
scp -r be 172.21.56.213:/data/
scp -r be 172.21.56.214:/data/
scp -r fe 172.21.56.214:/data/
mkdir /data/fe_data
mkdir /data/be_data
cat >> /etc/sysctl.conf << EOF
vm.overcommit_memory=1
EOF
sysctl -p
cat >> /etc/rc.d/rc.local << EOF
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo madvise > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo madvise > /sys/kernel/mm/transparent_hugepage/defrag
fi
EOF
chmod +x /etc/rc.d/rc.local
swapoff /<path_to_swap_space>
swapoff -a
/<path_to_swap_space> swap swap defaults 0 0
free -m
cat >> /etc/sysctl.conf << EOF
vm.swappiness=0
EOF
sysctl -p
cat >> /etc/rc.d/rc.local << EOF
echo kyber | sudo tee /sys/block/${disk}/queue/scheduler
EOF
chmod +x /etc/rc.d/rc.local
cat >> /etc/rc.d/rc.local << EOF
echo none | sudo tee /sys/block/${disk}/queue/scheduler
EOF
chmod +x /etc/rc.d/rc.local
sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
sed -i 's/SELINUXTYPE/#SELINUXTYPE/' /etc/selinux/config
systemctl stop firewalld.service
systemctl disable firewalld.service
echo "export LANG=en_US.UTF8" >> /etc/profile
source /etc/profile
cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock
cat >> /etc/security/limits.conf << EOF
* soft nproc 65535
* hard nproc 65535
* soft nofile 655350
* hard nofile 655350
* soft stack unlimited
* hard stack unlimited
* hard memlock unlimited
* soft memlock unlimited
EOF
cat >> /etc/security/limits.d/20-nproc.conf << EOF
* soft nproc 65535
root soft nproc 65535
EOF
cat >> /etc/sysctl.conf << EOF
net.ipv4.tcp_abort_on_overflow=1
EOF
sysctl -p
cat >> /etc/sysctl.conf << EOF
net.core.somaxconn=1024
EOF
sysctl -p
cat >> /etc/sysctl.conf << EOF
vm.max_map_count = 262144
EOF
sysctl -p
echo 120000 > /proc/sys/kernel/threads-max
echo 200000 > /proc/sys/kernel/pid_max
mkdir /data/fedata /data/bedata
修改fe.conf 中的端口号和 priority_networks为本机IP,使用默认端口号
vim fe.conf
java -version
mkdir /data/fe/meta
sh /data/fe/bin/start_fe.sh --daemon
cat /data/fe/log/fe.log | grep thrift
mkdir -p /data/bedata
storage_root_path = /data/bedata
vim be.conf
default_replication_num = 1
sh /data/be/bin/start_be.sh --daemon
cat /data/be/log/be.INFO | grep heartbeat
当所有fe 和be 服务启动后,开始搭建StarRocks集群
1. 必须安装mysql客户端5.5.0以上版本
2. 通过mysql连接到StarRocks,使用初始用户root登录,登录密码为空
mysql -h 172.21.56.212 -P9030 -uroot
3. 查看leader fe
SHOW PROC '/frontends'\G
如果字段 Alive 为 true,说明该 FE 节点正常启动并加入集群。
如果字段 Role 为 FOLLOWER,说明该 FE 节点有资格被选为 Leader FE 节点。
如果字段 Role 为 LEADER,说明该 FE 节点为 Leader FE 节点。
4. 添加BE节点到集群
-- 将 <be_address> 替换为 BE 节点的 IP 地址(priority_networks)或 FQDN,
-- 并将 <heartbeat_service_port>(默认:9050)替换为您在 be.conf 中指定的 heartbeat_service_port。
ALTER SYSTEM ADD BACKEND "172.21.56.212:9050", "172.21.56.213:9050", "172.21.56.214:9050";
您可以通过一条 SQL 添加多个 BE 节点。每对 <be_address>:<heartbeat_service_port> 代表一个 BE 节点。
5. 执行sql查看be节点状态
SHOW PROC '/backends'\G
如果字段 Alive 为 true,说明该 BE 节点正常启动并加入集群。
高可用的 FE 集群需要在 StarRocks 集群中部署至少三个 Follower FE 节点。如需部署高可用的 FE 集群,您需要额外再启动两个新的 FE 节点。
1. mysql协议连接StarRocks,初始用户root,密码空
mysql -h 172.21.56.212 -P9030 -uroot
2. 添加额外的FE到集群
-- 并将 <edit_log_port>(默认:9010)替换为您在新 FE 节点的 fe.conf 中指定的 edit_log_port。
一个sql只能添加一个follower fe节点
ALTER SYSTEM ADD FOLLOWER "172.21.56.213:9010";
ALTER SYSTEM ADD FOLLOWER "172.21.56.214:9010";
3. 新的FE上启动fe服务
新的 FE 示例上启动终端,创建元数据存储路径,进入 StarRocks 部署目录,并修改 FE 配置文件 fe/conf/fe.conf。
配置完成后,通过以下命令为新 Follower FE 节点分配 helper 节点,并启动新 FE 节点:
必须在首次启动新 FE 节点时为其分配一个 helper 节点(本质上是一个现有的 Follower FE 节点)以同步所有 FE 元数据信息。
sh /data/fe/bin/start_fe.sh --helper 172.21.56.212:9010 --daemon
您只需在第一次启动节点时指定参数 --helper。
cat /data/fe/log/fe.log | grep thrift
SHOW PROC '/frontends'\G
如果字段 Alive 为 true,说明该 FE 节点正常启动并加入集群。
如果字段 Role 为 FOLLOWER,说明该 FE 节点有资格被选为 Leader FE 节点。
如果字段 Role 为 LEADER,说明该 FE 节点为 Leader FE 节点。
相关命令
1. 停止fe节点
sh /data/fe/bin/stop_fe.sh --daemon
2. 停止be节点
sh /data/be/bin/stop_be.sh --daemon
3. 停止CN节点
sh /data/be/bin/stop_cn.sh --daemon
1. 启动fe节点
sh /data/fe/bin/start_fe.sh --daemon
2. 启动be节点
sh /data/be/bin/start_fe.sh --daemon
3. 启动CN节点
sh /data/be/bin/start_fe.sh --daemon
1. FE 节点没有正常启动,定位问题 fe/log/fe.warn.log 中的日志来确定问题所在。
cat /data/fe/log/fe.warn.log
2. be没启动,定位问题
cat /data/be/log/be.WARNING
3. CN节点没启动,定位问题
cat /data/be/log/cn.WARNING