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

相关文章

SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程

《SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程》本文详细介绍了如何在虚拟机和宝塔面板中安装RabbitMQ,并使用Java代码实现消息的发送和接收,通过异步通讯,可以优化... 目录一、RabbitMQ安装二、启动RabbitMQ三、javascript编写Java代码1、引入

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

redis群集简单部署过程

《redis群集简单部署过程》文章介绍了Redis,一个高性能的键值存储系统,其支持多种数据结构和命令,它还讨论了Redis的服务器端架构、数据存储和获取、协议和命令、高可用性方案、缓存机制以及监控和... 目录Redis介绍1. 基本概念2. 服务器端3. 存储和获取数据4. 协议和命令5. 高可用性6.

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

nginx部署https网站的实现步骤(亲测)

《nginx部署https网站的实现步骤(亲测)》本文详细介绍了使用Nginx在保持与http服务兼容的情况下部署HTTPS,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录步骤 1:安装 Nginx步骤 2:获取 SSL 证书步骤 3:手动配置 Nginx步骤 4:测

Tomcat高效部署与性能优化方式

《Tomcat高效部署与性能优化方式》本文介绍了如何高效部署Tomcat并进行性能优化,以确保Web应用的稳定运行和高效响应,高效部署包括环境准备、安装Tomcat、配置Tomcat、部署应用和启动T... 目录Tomcat高效部署与性能优化一、引言二、Tomcat高效部署三、Tomcat性能优化总结Tom

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus