StarRocks三节点集群部署

news2024/11/28 16:37:43

系统: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.0

Copyright (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_1693906782665
               IP: 192.168.0.221
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 9030
          RpcPort: 9020
             Role: LEADER
        ClusterId: 904464764
             Join: true
            Alive: true
ReplayedJournalId: 659
    LastHeartbeat: 2023-09-05 18:15:55
         IsHelper: true
           ErrMsg: 
        StartTime: 2023-09-05 17:39:51
          Version: 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 -uroot

mysql -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: 10007
                   IP: 172.26.195.67
        HeartbeatPort: 9050
               BePort: 9060
             HttpPort: 8040
             BrpcPort: 8060
        LastStartTime: 2023-06-15 15:23:08
        LastHeartbeat: 2023-06-15 15:57:30
                Alive: true
 SystemDecommissioned: false
ClusterDecommissioned: false
            TabletNum: 30
     DataUsedCapacity: 0.000 
        AvailCapacity: 341.965 GB
        TotalCapacity: 1.968 TB
              UsedPct: 83.04 %
       MaxDiskUsedPct: 83.04 %
               ErrMsg: 
              Version: 3.0.0-48f4d81
               Status: {"lastSuccessReportTabletsTime":"2023-06-15 15:57:08"}
    DataTotalCapacity: 341.965 GB
          DataUsedPct: 0.00 %
             CpuCores: 16
    NumRunningQueries: 0
           MemUsedPct: 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1603489.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

elementui 弹窗展示自动校验表单项bug

表单校验失败一次之后&#xff0c;再次弹出表单&#xff0c;触发自动校验 解决方案&#xff1a; clearValidate() 方法清空表单校验项 this.$nextTick(() > {this.$refs[checkForm].clearValidate() }) 使用nextTick规避报错

Flask Web框架的使用(合集)

Flask Web框架的使用-静态文件和模版 一、前言二、引言三、Web 框架简介1.什么是Web框架2.常用的 Web 框架FlaskDjangoBottleTornado 四、Flask Web框架的使用1.安装虚拟环境安装Virtualen创建虚拟环境激活虚拟环境 2.安装Flask3.第一个Flask 程序4.开启调试模式5.路由变量规则…

书生·浦语大模型全链路开源体系-第4课

书生浦语大模型全链路开源体系-第4课 书生浦语大模型全链路开源体系-第4课相关资源XTuner 微调 LLMXTuner 微调小助手认知环境安装前期准备启动微调模型格式转换模型合并微调结果验证 将认知助手上传至OpenXLab将认知助手应用部署到OpenXLab使用XTuner微调多模态LLM前期准备启动…

【Python基础】MySQL

文章目录 [toc]创建数据库创建数据表数据插入数据查询数据更新 个人主页&#xff1a;丷从心 系列专栏&#xff1a;Python基础 学习指南&#xff1a;Python学习指南 创建数据库 import pymysqldef create_database():db pymysql.connect(hostlocalhost, userroot, passwordr…

Nginx第2篇-HTTPS配置教程

背景 我最近做个项目要上线&#xff0c;接口部署到服务器&#xff0c;总不能给别人个ip地址加端口吧&#xff0c;而且小程序上线要有接口不能是ip和http协议&#xff0c;必须是https协议。这里记录下使用Nginx配置HTTPS的过程&#xff0c;主要包含以下三部分。 申请域名SSL证…

IDEA plugins 好用的插件集

IDEA plugins RestfulToolkit 1. 安装插件 File–>Settings --> plugins --> RestfulToolkit 2.插件有点&#xff1a; 2.1、帮助把项目中的 RestURL 按照项目汇总出来&#xff0c;找到对应URL直接在IDEA上面进行请求测试。 2.2、开发Java Web页面项目&#xff0c;经…

SpringCloud系列(3)--SpringCloud新建父工程

1、新建项目 2、填写项目名称和工作组名称 3、选择构建项目的Maven版本 4、查看项目编码&#xff0c;若不是UTF-8&#xff0c;需要设置为UTF-8 5、启用注解处理 6、选择项目的编译版本为JDK8 7、查看项目结构&#xff0c;若JDK版本不是8&#xff0c;则给它设置为8 8、删掉父工程…

全国产化无风扇嵌入式车载电脑在车队管理嵌入式车载行业应用

车队管理嵌入式车载行业应用 车队管理方案能有效解决车辆繁多管理困难问题&#xff0c;配合调度系统让命令更加精确有效执行。实时监控车辆状况、行驶路线和位置&#xff0c;指导驾驶员安全有序行驶&#xff0c;有效降低保险成本、事故概率以及轮胎和零部件的磨损与损坏。 方…

短视频矩阵系统----技术源头开发

短视频矩阵系统--- 1. 确定账号类型和目标受众 2. 准备账号资料 3. 搭建系统框架 4. 开发核心功能 5. 测试和调试 6. 部署和维护 7. 推广和运营 在开发短视频账号矩阵系统源码时&#xff0c;可以使用一些开源框架和工具来提高开发效率和降低开发难度。同时&#xff0c;需要组…

pajamas 1 daydream.sequence-template

0. 老实交代&#xff0c;最近对于python&#xff0c;非常之感冒 热天气常驻之后&#xff0c;各种毛病就来了&#xff1a;蚊子很彪悍&#xff0c;牙齿不舒服&#xff0c;肠胃那更是一坨 … 虽然不久前&#xff0c;荷包大残&#xff0c;但是关注到 mac mini 之后&#xff0c;就…

Java面试八股之Iterator和ListIterator的区别是什么

Iterator和ListIterator的区别是什么 这道题也是考查我们对迭代器相关的接口的了解程度&#xff0c;从代码中我们可以看出后者是前者的子接口&#xff0c;在此基础上做了一些增强&#xff0c;并且只用于List集合类型。 定义与基本概念 Iterator&#xff1a; 定义&#xff1a…

【Pytorch】VSCode实用技巧 - 默认终端修改为conda activate pytorch

VScode修改配置使得启动终端为conda环境 VScode跑项目&#xff0c;在启动pytorch项目时往往会有千奇百怪的问题&#xff0c;最常见的就是显示“conda activate pytorch”后会要求“conda init”&#xff0c;但输入后实际上也不行&#xff0c;这是因为VSCode默认终端为 Powersh…

Redis中的基本指令

回顾 上一篇文章介绍了redis的一些特性和安装方式&#xff0c;但光说不练假把式~ 本文就来着重来介绍一下redis中的基本指令 Redis基本结构 Redis是一个客户端-服务器结构的程序(MySQL也是)&#xff0c;客户端和服务器可以在同一台主机上&#xff0c;也可以不在同一台主机(本…

OpenCV杂记(1):绘制OSD(cv::getTextSize, cv::putText)

1. 简述 我们使用OpenCV时&#xff0c;有时会在图像的某个位置绘制OSD信息&#xff0c;如绘制一些字符串作为指示信息。 本文将简要介绍在图像&#xff08;cv::Mat&#xff09;上绘制固定的字符串信息。 2. 使用的API &#xff08;1&#xff09;cv::getTextSize() CV_EXPORT…

Qt 6子窗口全屏显示

一、全屏显示效果 二、全屏相关函数 1,全屏显示函数 QWidget::showFullScreen(); // 此方法只对顶级窗口有效&#xff0c;对子窗口无效 2&#xff0c;恢复显示函数 QWidget::showNormal(); // 此方法也只对顶级窗口有效&#xff0c;对子窗口无效 3&#xff0c;最小化显示函…

陇剑杯 省赛 攻击者1 CTF wireshark 流量分析

陇剑杯 省赛 攻击者1 题目 链接&#xff1a;https://pan.baidu.com/s/1KSSXOVNPC5hu_Mf60uKM2A?pwdhaek 提取码&#xff1a;haek ├───LogAnalize │ ├───linux简单日志分析 │ │ linux-log_2.zip │ │ │ ├───misc日志分析 │ │ acce…

【数学】主成分分析(PCA)的应用案例解析(Python)

接着上文PCA的数学详细推导过程&#xff0c;本文介绍使用Python结合图像压缩案例解释PCA的具体实现流程&#xff0c;以了解数据处理的一些方法 Jupyter Notebook file 文章目录 借助 scikit-learn 实现 PCA输入数据PCA降维并重建 手动实现 PCA 过程输入数据数据居中处理协方差矩…

PPTist在线编辑、播放幻灯片

PPTist简介 “一个基于 Vue3.x TypeScript 的在线演示文稿&#xff08;幻灯片&#xff09;应用&#xff0c;还原了大部分 Office PowerPoint 常用功能&#xff0c;支持 文字、图片、形状、线条、图表、表格、视频、音频、公式 几种最常用的元素类型&#xff0c;每一种元素都拥…

多模态大语言模型综述

节前&#xff0c;我们星球组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学&#xff0c;针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 汇总…

arcgis中坡向计算工作原理说明

用于识别出从每个像元到其相邻像元方向上值的变化率最大的下坡方向。坡向可以被视为坡度方向。输出栅格中各像元的值可指示出各像元位置处表面的朝向的罗盘方向。将按照顺时针方向进行测量&#xff0c;角度范围介于 0&#xff08;正北&#xff09;到 360&#xff08;仍是正北&a…