StarRocks三节点集群部署

2024-04-17 23:04
文章标签 部署 集群 节点 starrocks

本文主要是介绍StarRocks三节点集群部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

系统:Centos7 X86-64

3台服务器部署3个BE服务和3个FE服务,生产环境建议FE节点部署在单独服务器

服务器

服务

192.168.0.221

BE、FE、jdk、Nginx

192.168.0.222

BE、FE、jdk

192.168.0.223

BE、FE、jdk

1. 配置系统参数

a. 编辑/etc/security/limits.conf

在最后面加上下面的内容

* soft nofile 65535
* hard nofile 65535
root soft nofile 65535
root hard nofile 65535

重启连接命令行生效。

b. 关闭Transparent Huge Pages 与 优化部分内核参数

echo never > /sys/kernel/mm/transparent_hugepage/enabled;
chmod +x /etc/rc.d/rc.local;
echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >>/etc/rc.d/rc.local;
echo "echo 120000 > /proc/sys/kernel/threads-max" >>/etc/rc.d/rc.local;
echo "echo 655360  > /proc/sys/vm/max_map_count" >>/etc/rc.d/rc.local;
echo "echo 200000 > /proc/sys/kernel/pid_max" >>/etc/rc.d/rc.local;

c. 编辑/etc/sysctl.conf

在最后面加上下面的内容

vm.overcommit_memory=1
vm.swappiness=0
fs.file-max = 6553560
vm.max_map_count=655360
fs.nr_open=20480000
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_abort_on_overflow=1

执行下面的命令生效

sysctl -p

d. 关闭swap

swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab

e. 关闭防火墙

systemctl stop firewalld.service;
systemctl disable firewalld.service ;
setenforce 0;
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config;

2. 安装

将安装需要的文件上传到服务器/opt目录下

2.1安装JDK

在所有服务器执行

a. 解压

cd /opt;
tar -zxvf jdk-8u191-linux-x64.tar.gz -C /opt;

b. 配置环境变量

编辑/etc/profile文件,在文件最后面加上下面的内容,保存

export JAVA_HOME=/opt/jdk1.8.0_191
export PATH=$PATH:$JAVA_HOME/bin

执行下面的命令

source /etc/profile;

2.2安装FE服务

a. 解压

在所有服务器执行

cd /opt;
tar -zxvf StarRocks-3.1.2.tar.gz -C /opt;
mv StarRocks-3.1.2 starrocks;

b. 创建元数据目录

在所有服务器执行

mkdir -p /opt/metadata

c. 编辑FE配置文件

/opt/starrocks/fe/conf/fe.conf,配置下面的内容

注意:不同服务器需要将priority_networks的值设置为服务器实际的IP,如:priority_networks = 192.168.0.221/24,可以使用ip addr命令查询ip地址

meta_dir = /opt/metadata
priority_networks = x.x.x.x/x

d.启动Leader 节点

注意:第一个启动的节点为Leader节点,第一个节点执行下面的命令启动

/opt/starrocks/fe/bin/start_fe.sh --daemon

查看是否启动成功

执行下面的命令

cat /opt/starrocks/fe/log/fe.log | grep thrift

如果日志打印以下内容,则说明该 FE 节点启动成功:

"2022-08-10 16:12:29,911 INFO (UNKNOWN x.x.x.x_9010_1660119137253(-1)|1) [FeServer.start():52] thrift server started with port 9020."

e.安装mysql客户端

在FE Leader节点执行下面的命令

cd /opt;
rpm -ivh mysql-community-client-5.7.42-1.el7.x86_64.rpm --force --nodeps;

f.连接FE服务

通过 MySQL 客户端连接到 StarRocks。您需要使用初始用户 root 登录,密码默认为空。

将 <fe_address> 替换为 Leader FE 节点的 IP 地址(priority_networks),

并将 <query_port>(默认:9030)替换为您在 fe.conf 中指定的 query_port

示例:如 mysql -h 192.168.0.221 -P9030 -uroot

mysql -h <fe_address> -P<query_port> -uroot

执行以下 SQL 查看 Leader FE 节点状态。

SHOW PROC '/frontends'\G

示例:

[root@localhost opt]# mysql -h 192.168.0.221 -P9030 -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 0
Server version: 5.1.0Copyright (c) 2000, 2023, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> SHOW PROC '/frontends'\G
*************************** 1. row ***************************Name: 192.168.0.221_9010_1693906782665IP: 192.168.0.221EditLogPort: 9010HttpPort: 8030QueryPort: 9030RpcPort: 9020Role: LEADERClusterId: 904464764Join: trueAlive: true
ReplayedJournalId: 659LastHeartbeat: 2023-09-05 18:15:55IsHelper: trueErrMsg: StartTime: 2023-09-05 17:39:51Version: 3.1.2-4f3a2ee
1 row in set (0.04 sec)

如果字段 Alive 为 true,说明该 FE 节点正常启动并加入集群。

如果字段 Role 为 FOLLOWER,说明该 FE 节点有资格被选为 Leader FE 节点。

如果字段 Role 为 LEADER,说明该 FE 节点为 Leader FE 节点。

g.将额外的FE节点添加至集群

执行以下 SQL 将额外的 FE 节点添加至集群

注意:将 <new_fe_address> 替换为您需要添加的新 FE 节点的 IP 地址(priority_networks),

并将 <edit_log_port>(默认:9010)替换为您在新 FE 节点的 fe.conf 中指定的 edit_log_port。

示例:ALTER SYSTEM ADD FOLLOWER "192.168.0.222:9010";

ALTER SYSTEM ADD FOLLOWER "192.168.0.223:9010";

ALTER SYSTEM ADD FOLLOWER "<new_fe_address>:<edit_log_port>";

f.启动第2、3个节点

执行下面的命令启动

注意:将 <helper_fe_ip> 替换为 Leader FE 节点的 IP 地址(priority_networks)

并将 <helper_edit_log_port>(默认:9010)替换为 Leader FE 节点的 edit_log_port

示例:/opt/starrocks/fe/bin/start_fe.sh --helper 192.168.0.221:9010 --daemon

/opt/starrocks/fe/bin/start_fe.sh --helper <helper_fe_ip>:<helper_edit_log_port> --daemon

e.查看是否启动成功

执行下面的命令

cat /opt/starrocks/fe/log/fe.log | grep thrift

如果日志打印以下内容,则说明该 FE 节点启动成功:

"2022-08-10 16:12:29,911 INFO (UNKNOWN x.x.x.x_9010_1660119137253(-1)|1) [FeServer.start():52] thrift server started with port 9020."

2.3安装BE服务

a.创建数据存储目录

注意:将 <storage_root_path> 替换为您要创建的数据存储路径。如mkdir -p /data/starrocksdata

mkdir -p <storage_root_path>

b.修改BE配置文件

编辑/opt/starrocks/be/conf/be.conf,配置下面的内容

注意:1.将 <storage_root_path> 替换为您创建的数据存储路径。如:storage_root_path = /data/starrocksdata

2.需要将priority_networks的值设置为服务器实际的IP,如:priority_networks = 192.168.0.221/24

storage_root_path = <storage_root_path>
priority_networks = x.x.x.x/x

c. 启动

/opt/starrocks/be/bin/start_be.sh --daemon

d. 查看是否启动成功

查看 BE 日志,检查 BE 节点是否启动成功

cat /opt/starrocks/be/log/be.INFO | grep heartbeat

如果日志打印以下内容,则说明该 BE 节点启动成功:

"I0614 17:41:39.782819 3717531 thrift_server.cpp:388] heartbeat has started listening port on 9050"

2.4 BE加入集群

a.安装mysql客户端

执行下面的命令

cd /opt;
rpm -ivh mysql-community-client-5.7.42-1.el7.x86_64.rpm --force --nodeps;

b.连接FE服务

通过 MySQL 客户端连接到 StarRocks。您需要使用初始用户 root 登录,密码默认为空。

# 将 <fe_address> 替换为 Leader FE 节点的 IP 地址(priority_networks)或 FQDN,
# 并将 <query_port>(默认:9030)替换为您在 fe.conf 中指定的 query_port。
# 如 mysql -h 192.168.0.221 -P9030 -urootmysql -h <fe_address> -P<query_port> -uroot

c. 添加 BE 节点至集群

# 将 <be_address> 替换为 BE 节点的 IP 地址(priority_networks)或 FQDN,
# 并将 <heartbeat_service_port>(默认:9050)替换为您在 be.conf 中指定的 heartbeat_service_port。
#如 ALTER SYSTEM ADD BACKEND "192.168.0.221:9050","192.168.0.222:9050","192.168.0.223:9050";ALTER SYSTEM ADD BACKEND "<be_address>:<heartbeat_service_port>", "<be2_address>:<heartbeat_service_port>", "<be3_address>:<heartbeat_service_port>";

说明

您可以通过一条 SQL 添加多个 BE 节点。每对 <be_address>:<heartbeat_service_port> 代表一个 BE 节点

执行以下 SQL 查看 BE 节点状态。

SHOW PROC '/backends'\G
  1. 示例:
MySQL [(none)]> SHOW PROC '/backends'\G
*************************** 1. row ***************************BackendId: 10007IP: 172.26.195.67HeartbeatPort: 9050BePort: 9060HttpPort: 8040BrpcPort: 8060LastStartTime: 2023-06-15 15:23:08LastHeartbeat: 2023-06-15 15:57:30Alive: trueSystemDecommissioned: false
ClusterDecommissioned: falseTabletNum: 30DataUsedCapacity: 0.000 AvailCapacity: 341.965 GBTotalCapacity: 1.968 TBUsedPct: 83.04 %MaxDiskUsedPct: 83.04 %ErrMsg: Version: 3.0.0-48f4d81Status: {"lastSuccessReportTabletsTime":"2023-06-15 15:57:08"}DataTotalCapacity: 341.965 GBDataUsedPct: 0.00 %CpuCores: 16NumRunningQueries: 0MemUsedPct: 0.01 %CpuUsedPct: 0.0 %

如果字段 Alive 为 true,说明该 BE 节点正常启动并加入集群。

2.5安装Nginx进行负载均衡

Nginx可以部署在FE节点任意一个节点上或者单独一台服务器。

将update_host.sh、nginx_install上传到Nginx服务器/opt目录下

a.配置主机名

在nginx服务器上执行下面的命令将配置主机名,将<feserver*>替换为实际的fe节点的IP地址

示例:export feserver1=192.168.0.221;

export feserver2=192.168.0.222;

export feserver3=192.168.0.223;

cd /opt;
export feserver1=<feserver1>
export feserver2=<feserver2>
export feserver3=<feserver3>bash update_host.sh;

b.安装nginx

cd /opt/nginx_install;
bash nginx_install.sh;

3.运维

启动

/opt/starrocks/fe/bin/start_fe.sh --daemon

停止 FE 节点

/opt/starrocks/fe/bin/stop_fe.sh --daemon

停止 BE 节点

/opt/starrocks/be/bin/start_be.sh --daemon
/opt/starrocks/be/bin/stop_be.sh --daemon

这篇关于StarRocks三节点集群部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/913104

相关文章

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

k8s部署MongDB全过程

《k8s部署MongDB全过程》文章介绍了如何在Kubernetes集群中部署MongoDB,包括环境准备、创建Secret、创建服务和Deployment,并通过Robo3T工具测试连接... 目录一、环境准备1.1 环境说明1.2 创建 namespace1.3 创建mongdb账号/密码二、创建Sec

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像

Python项目打包部署到服务器的实现

《Python项目打包部署到服务器的实现》本文主要介绍了PyCharm和Ubuntu服务器部署Python项目,包括打包、上传、安装和设置自启动服务的步骤,具有一定的参考价值,感兴趣的可以了解一下... 目录一、准备工作二、项目打包三、部署到服务器四、设置服务自启动一、准备工作开发环境:本文以PyChar

centos7基于keepalived+nginx部署k8s1.26.0高可用集群

《centos7基于keepalived+nginx部署k8s1.26.0高可用集群》Kubernetes是一个开源的容器编排平台,用于自动化地部署、扩展和管理容器化应用程序,在生产环境中,为了确保集... 目录一、初始化(所有节点都执行)二、安装containerd(所有节点都执行)三、安装docker-

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

如何在一台服务器上使用docker运行kafka集群

《如何在一台服务器上使用docker运行kafka集群》文章详细介绍了如何在一台服务器上使用Docker运行Kafka集群,包括拉取镜像、创建网络、启动Kafka容器、检查运行状态、编写启动和关闭脚本... 目录1.拉取镜像2.创建集群之间通信的网络3.将zookeeper加入到网络中4.启动kafka集群

Jenkins中自动化部署Spring Boot项目的全过程

《Jenkins中自动化部署SpringBoot项目的全过程》:本文主要介绍如何使用Jenkins从Git仓库拉取SpringBoot项目并进行自动化部署,通过配置Jenkins任务,实现项目的... 目录准备工作启动 Jenkins配置 Jenkins创建及配置任务源码管理构建触发器构建构建后操作构建任务

若依部署Nginx和Tomcat全过程

《若依部署Nginx和Tomcat全过程》文章总结了两种部署方法:Nginx部署和Tomcat部署,Nginx部署包括打包、将dist文件拉到指定目录、配置nginx.conf等步骤,Tomcat部署... 目录Nginx部署后端部署Tomcat部署出现问题:点击刷新404总结Nginx部署第一步:打包