当前位置: 首页 > news >正文

StarRocks集群部署

Starrocks 是一款基于 MPP 架构的高性能实时分析型数据库,专为 OLAP(联机分析处理)场景 设计,尤其擅长处理海量数据的实时分析、复杂查询和多维统计。

硬件
CPU:StarRocks依靠AVX2指令集充分发挥其矢量化能力。因此,在生产环境中,强烈建议您将StarRocks部署于x86架构CPU的服务器上。
在终端中运行以下命令来检查CPU是否支持AVX2指令集:cat /proc/cpuinfo | grep avx2

操作系统
StarRocks 支持在CentOS Linux 7.9 和 Ubuntu Linux 22.04上部署。(推荐在CentOs 7.9上部署)
网络

建议使用万兆网络连接(10 Gigabit Ethernet,简称10GE)确保StarRocks集群内数据能够跨节点高效传输。

一、数据盘挂载目录
#基于LVM方式挂载数据盘

 数据盘挂载目录  折叠源码
安装逻辑卷管理工具:yum install lvm2 -y列出系统中的块设备信息,包括磁盘、分区和挂载点等:lsblk
创建pv:pvcreate /dev/vdb
查看:pvs创建vg:vgcreate vgdata /dev/vdb
查看:vgs创建lv:lvcreate -l +100%free -n lvdata vgdata
查看:lvs格式化:mkfs.xfs /dev/mapper/vgdata-lvdata创建目录:mkdir /starrocks-data
查看:ls /查看块设备标识信息:blkid
/dev/mapper/vgdata-lvdata: UUID="0f105c51-1280-4511-ab4f-36c57bbcc53c" TYPE="xfs"vim /etc/fstab
在文件最后一行新增UUID信息:UUID=0f105c51-1280-4511-ab4f-36c57bbcc53c /starrocks-data         xfs     defaults        0 0执行自动挂载命令:mount -a查看文件系统磁盘空间:df -h

二、配置hostname
#修改主机名:分别在各节点上执行
hostnamectl set-hostname xxx-sr1
hostnamectl set-hostname xxx-sr2
hostnamectl set-hostname xxx-sr3
hostnamectl set-hostname xxx-sr4
hostnamectl set-hostname xxx-sr5
hostnamectl set-hostname xxx-sr6

#设置hosts
1xx.21.2x3.194 xxx-sr1
1xx.21.2x3.45 xxx-sr2
1xx.21.2x3.31 xxx-sr3
1xx.21.2x3.50 xxx-sr4
1xx.21.2x3.193 xxx-sr5
1xx.21.2x3.112 xxx-sr6

三、配置SSH免密
第一步:在各节点生成公钥和私钥
ssh-keygen -t rsa

第二步:将生成的公钥写入authorized_keys文件
copy其它节点的公钥到sr1节点
ssh-copy-id -i ~/.ssh/id_rsa.pub xxx-sr1

第三步:在sr1机器上执行,将文件分发到其它机器。
scp authorized_keys root@xxx-sr2:~/.ssh

第四步:验证ssh免密登录
ssh xxx-sr2
保证每台机器都能免密登陆所有机器
注: 我之前 发有一篇关于服务器之间用脚本实现全自动化免密登陆,请在我的历史文章叫搜索一下。

四、时间同步

安装chrony:yum install chrony

编辑文件:/etc/chrony.conf #注 这里我用的是我公司的时间服务器,大家可根据自身情况来设置。
cat > /etc/chrony.conf <<EOF
server 1x2.2x.2x8.4 iburst
server 1x2.2x.2x9.8 iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
logdir /var/log/chrony
EOF

#设置开机启动和重启
systemctl enable chronyd
systemctl restart chronyd

#检测时间同步
chronyc sourcestats

五、配置jdk
mkdir /usr/java -p
将jdk压缩包上传至服务器目录:/usr/java
解压:tar -xf jdk-8u321-linux-x64.tar.gz
配置java环境变量,编辑文件:vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_321
export PATH=JAVAHOME/bin:JAVA_HOME/bin:JAVAHOME/bin:PATH

使配置生效:source /etc/profile
检查是否安装成功:java -version

六、部署工具StarGo

#创建目录
mkdir -p /usr/local/apps
mkdir -p /opt/starrocks
mkdir -p /starrocks-data/starrocks

上传文件:#大家可以去官网下载后上传到服务器上
stargo-v2.3.tar.gz
StarRocks-3.1.8.tar.gz

#校验安装包完整性
md5sum StarRocks-3.1.8.tar.gz
8989a2483856f11eac288e66344a5649 StarRocks-3.1.8.tar.gz

#检测服务器环境
解压缩:tar -xf stargo-v2.3.tar.gz
cd /usr/local/apps/stargo-v2.3
执行检测命令:./env_check.sh
在这里插入图片描述
在这里插入图片描述

调整环境参数:
vim /etc/sysctl.conf
vm.swappiness=0
vm.overcommit_memory=1
vm.max_map_count=262144

sysctl -p

echo 1 | sudo tee /proc/sys/vm/overcommit_memory
echo 262144 | sudo tee /proc/sys/vm/max_map_count
echo 1 | sudo tee /proc/sys/net/ipv4/tcp_abort_on_overflow

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

#修改配置文件

/usr/local/apps/stargo-v2.3

备份:cp deploy-template.yaml deploy-template.yaml.bak

修改文件名:mv deploy-template.yaml deploy-dev.yaml

编辑文件:vim deploy-dev.yaml

global:user: rootssh_port: 22fe_servers:- host: 1x2.2x.2x3.7ssh_port: 22java_heap_mem: 10240http_port: 8030rpc_port: 9020query_port: 9030edit_log_port: 9010deploy_dir: /opt/starrocks/femeta_dir: /starrocks-data/starrocks/fe/metalog_dir: /starrocks-data/starrocks/fe/logpriority_networks: 1x2.2x.2x3.7role: FOLLOWERconfig:sys_log_level: "INFO"- host: 1x2.2x.2x3.75ssh_port: 22java_heap_mem: 10240http_port: 8030rpc_port: 9020query_port: 9030edit_log_port: 9010deploy_dir: /opt/starrocks/femeta_dir: /starrocks-data/starrocks/fe/metalog_dir: /starrocks-data/starrocks/fe/logpriority_networks: 1x2.2x.2x3.75role: FOLLOWERconfig:sys_log_level: "INFO"- host: 1x2.2x.2x3.63ssh_port: 22java_heap_mem: 10240http_port: 8030rpc_port: 9020query_port: 9030edit_log_port: 9010deploy_dir: /opt/starrocks/femeta_dir: /starrocks-data/starrocks/fe/metalog_dir: /starrocks-data/starrocks/fe/logpriority_networks: 1x2.2x.2x3.63role: FOLLOWERconfig:sys_log_level: "INFO"be_servers:- host: 172.21.243.111ssh_port: 22be_port: 9060webserver_port: 8040heartbeat_service_port: 9050brpc_port: 8060deploy_dir : /opt/starrocks/bestorage_dir: /starrocks-data/starrocks/be/storagelog_dir: /starrocks-data/starrocks/be/logpriority_networks: 1x2.2x.2x3.111config:enable_new_load_on_memory_limit_exceeded: truemem_limit: 90%- host: 1x2.2x.2x3.135ssh_port: 22be_port: 9060webserver_port: 8040heartbeat_service_port: 9050brpc_port: 8060deploy_dir : /opt/starrocks/bestorage_dir: /starrocks-data/starrocks/be/storagelog_dir: /starrocks-data/starrocks/be/logpriority_networks: 1x2.2x.2x3.135config:enable_new_load_on_memory_limit_exceeded: truemem_limit: 90%- host: 172.21.243.234ssh_port: 22be_port: 9060webserver_port: 8040heartbeat_service_port: 9050brpc_port: 8060deploy_dir : /opt/starrocks/bestorage_dir: /starrocks-data/starrocks/be/storagelog_dir: /starrocks-data/starrocks/be/logpriority_networks: 1x2.2x.2x3.234config:enable_new_load_on_memory_limit_exceeded: truemem_limit: 90%##若不需要部署Broker,可删除下方配置。2.5版本后通常可不部署。
#broker_servers:
#  - host: 1x2.1x8.110.101
#    ssh_port: 22
#    broker_port: 8000
#    deploy_dir : /opt/starrocks/apache_hdfs_broker
#    log_dir: /data/starrocks/apache_hdfs_broker/log
#    config:
#      sys_log_level: "INFO"
#  - host: 1x2.1x8.110.102
#    ssh_port: 22
#    broker_port: 8000
#    deploy_dir : /opt/starrocks/apache_hdfs_broker
#    log_dir: /data/starrocks/apache_hdfs_broker/log
#    config:
#      sys_log_level: "INFO"
#  - host: 1x2.1x8.110.103
#    ssh_port: 22
#    broker_port: 8000
#    deploy_dir : /opt/starrocks/apache_hdfs_broker
#    log_dir: /data/starrocks/apache_hdfs_broker/log##若不需要部署CN,可删除下方配置。本地部署时通常可不部署。注意:CN不能与BE部署同一节点。
#cn_servers:
#  - host: 192.168.110.104
#    ssh_port: 22
#    thrift_port: 9060
#    webserver_port: 8040
#    heartbeat_service_port: 9050
#    brpc_port: 8060
#    deploy_dir : /opt/starrocks/cn
#    log_dir: /data/starrocks/cn/log
#    priority_networks: 1x2.1x8.110.104
#    config:
#      sys_log_level: INFO

辑文件:vim repo.yaml

sr_path: /usr/local/apps
sr_name: StarRocks-3.1.8.tar.gz

七、执行部署命令

cd /usr/local/apps/stargo-v2.3
./stargo cluster deploy sr-cluster v3.1.8 deploy-dev.yaml
在这里插入图片描述
在这里插入图片描述
八、验证集群

#查看集群信息和集群状态
./stargo cluster display sr-cluster
./stargo cluster status sr-cluster
在这里插入图片描述
九、监控部署

9.1 安装Prometheus

上传文件到目录:scp root@172.16.12.169:/usr/local/starrocks/new_starrocks/prometheus-2.45.2.linux-amd64.tar.gz /tmp

mv /tmp/prometheus-2.45.2.linux-amd64.tar.gz /usr/local/apps/

解压:tar -xf prometheus-2.45.2.linux-amd64.tar.gz
修改目录名:mv prometheus-2.45.2.linux-amd64 prometheus
创建目录:cd prometheus
mkdir data
备份文件:cp prometheus.yml prometheus.yml.bak
编辑文件:vim prometheus.yml

global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.- job_name: "StarRocks_Cluster"metrics_path: '/metrics'# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ['1x2.2x.2x3.7:8030','1x2.2x.2x3.75:8030','1x2.2x.2x3.63:8030']labels:group: fe- targets: ['1x2.2x.2x3.111:8040','1x2.2x.2x3.135:8040','1x2.2x.2x3.234:8040']labels:group: be

在这里插入图片描述
#创建prometheus系统服务启动文件

cd /etc/systemd/system/
vim prometheus.service

[Unit]
Description=Prometheus service
After=network.target[Service]
User=root
Type=simple
ExecReload=/bin/sh -c "/bin/kill -1 `/usr/bin/pgrep prometheus`"
ExecStop=/bin/sh -c "/bin/kill -9 `/usr/bin/pgrep prometheus`"
ExecStart=/usr/local/apps/prometheus/prometheus --config.file=/usr/local/apps/prometheus/prometheus.yml --storage.tsdb.path=/usr/local/apps/prometheus/data[Install]
WantedBy=multi-user.target

重新加载某个服务的配置文件,是配置文件生效。

systemctl daemon-reload
在这里插入图片描述
#启动prometheus服务

#使用系统服务文件启动的方式(推荐)
开机启动:systemctl enable prometheus.service
启动服务:systemctl start prometheus.service
查看状态:systemctl status prometheus.service
在这里插入图片描述
9.2 安装Grafana

上传文件到目录:scp root@1x2.1x.1x.169:/usr/local/starrocks/new_starrocks/grafana-enterprise-10.2.1.linux-amd64.tar.gz /tmp

mv /tmp/grafana-enterprise-10.2.1.linux-amd64.tar.gz /usr/local/apps/
解压:tar -xf grafana-enterprise-10.2.1.linux-amd64.tar.gz
修改目录名:mv grafana-v10.2.1 grafana
#创建grafana系统服务启动文件

cd /usr/lib/systemd/system/
vim grafana.service

[Unit]
Description=Grafana
After=network.target[Service]
Type=simple
ExecStart=/usr/local/apps/grafana/bin/grafana server --homepath=/usr/local/apps/grafana[Install]
WantedBy=multi-user.target

#启动grafana服务
启动:systemctl start grafana
设置开机启动:systemctl enable grafana
查看状态:systemctl status grafana

在这里插入图片描述

http://www.lryc.cn/news/621545.html

相关文章:

  • 39 C++ STL模板库8-容器1-array
  • 常见IP模块的仲裁策略和实现
  • YOLO11分割模型使用rknn2量化部署
  • 网络安全蓝队常用工具全景与实战指南
  • 【DDIA】第二部分:分布式数据
  • 从零到一:发布你的第一个 npm 开源库(2025 终极指南)
  • Elasticsearch赋能规章制度智能检索:从海量文档到秒级响应
  • app-5 控制卡升级
  • 【CV 目标检测】②R-CNN模型
  • 「iOS」————UITableView性能优化
  • GCC深度剖析:从编译原理到嵌入式底层实战
  • 阿里云出里两款新的云服务器
  • 基于单片机的超市储物柜设计
  • 打破传统局限,人工智能+虚拟仿真赋能日化品设计实验教学
  • 异步并发×编译性能:Dart爬虫的实战突围
  • 笔试——Day39
  • Python洛谷做题39:P5729 【深基5.例7】工艺品制作
  • 【题解|两种做法】[ZJOI2008] 洛谷 P2600 瞭望塔[半平面交]
  • 第十章 项目进度管理-10.3 规划进度管理
  • Mini MAX AI应用矩阵测评报告——基于旗下多款产品的综合体验与行业价值分析
  • 【大模型微调系列-02】 深度学习与大模型初识
  • 《WINDOWS 环境下32位汇编语言程序设计》第1章 背景知识
  • uniapp纯前端绘制商品分享图
  • MySQL 主键详解:作用与使用方法
  • Uniapp之微信小程序自定义底部导航栏形态
  • mac 通过homebrew 安装和使用nvm
  • 【uni-app】根据角色/身份切换显示不同的 自定义 tabbar
  • 晶振电路的负载电容、电阻参数设计
  • Vue3 Element-plus 封装Select下拉复选框选择器
  • 一文打通 AI 知识脉络:大语言模型等关键内容详解