StarRocks 集群安装
当前按照官网上的提供的安装包方式安装,版本是 3.2.2,部署模式为存算一体,安装的操作系统是 Ubuntu 22.04,JDK 版本为 OpenJDK 11,这里选择 3 个节点进行安装,节点的 hosts 定义如下:
10.0.1.25 ec25
10.0.1.26 ec26
10.0.1.27 ec27
由于 StarRocks 安装包比较大,所以选择在每个节点上都单独解压,否则发送解压后读文件速度比较慢:
# 每个机器上分别解压
tar -xvzf StarRocks-3.2.2.tar.gz -C /opt
cd /opt/StarRocks-3.2.2
解压后的目录中除了两个 txt 的文件外有 3 个目录,分别是 fe 、be 和 apache_hdfs_broker ,其中 fe 是 FE 角色相关的程序,be 是 BE 角色相关的程序,apache_hdfs_broker 是 Broker 节点的相关的程序,主要用于对接 HDFS 或 S3 等外部存储数据源,不过从 StarRocks 2.5 版本起不需要手动部署 Broker 节点,StarRocks 本身已经集成了这部分功能。
我们计划将 3 个 FE 和 3 个 BE 在 3 个节点上混合部署,不过我们首先启动其中 1 个 FE,等集群整体组件完毕再加入另外 2 个 FE 从而实现高可用的功能。
安装 FE 服务
在所有节点提前创建 FE 元数据目录:
# 建议为 StarRocks 分配独立的外部挂载
mkdir -p /data/starrocks/meta
然后我们修改 FE 的配置文件 fe/conf/fe.conf 主要修改下面的一些配置:
meta_dir = /data/starrocks/meta
http_port = 8030
rpc_port = 9020
query_port = 9030
edit_log_port = 9010
mysql_service_nio_enabled = true
priority_networks = 10.0.1.0/24
meta_dir 配置 FE 的元数据目录。
然后是端口号部分的设置,我们这里都使用了默认值:
http_port是 FE 对外提供的 HTTP 端口,默认是8030。rpc_port是 FE 对外提供的 Thrift 端口,默认是9020。query_port是 FE 对外提供的查询端口,可以使用 MySQL 客户端连接,默认是9030。edit_log_port是多个 FE 之间组建高可用集群使用的通信端口,默认是9010。
priority_networks 配置集群所在的网络,格式是 CIDR 描述,如果我们使用主机名(FQDN)访问,则不需要配置这个项,我们这里计划使用 IP 地址访问,所以需要设置一下这个配置。
如果我们系统上有多个 JDK,那么可以单独指定我们要使用的 JAVA_HOME ,例如:
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
因为我们全局只有一个 JDK 并且在 /etc/profile 中设置了 JAVA_HOME 环境变量,所以这里就不需要再配置了。
基本的配置就是上面这些,我们修改完成后保存配置,然后注意将配置文件同步到其他节点,用的时候就不用再修改了。
然后我们可以启动 FE 服务,现在是只在第 1 个节点上执行:
./fe/bin/start_fe.sh --daemon
# 如果是使用主机名访问,那么需要指定 --host_type
./fe/bin/start_fe.sh --host_type FQDN --daemon
然后我们查看日志确保启动成功即可。
安装 BE 服务
在所有节点都创建 BE 数据目录:
mkdir -p /data/starrocks/storage
然后修改配置文件 be/conf/be.conf 主要内容如下:
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
be_port = 9060
be_http_port = 8040
heartbeat_service_port = 9050
brpc_port = 8060
starlet_port = 9070
priority_networks = 10.0.1.0/24
storage_root_path = /data/starrocks/storage
首先是建议为 BE 指定 JAVA_HOME,因为 BE 不会自动搜索系统的 JDK,需要手动配置一下,否则将无法使用 JNI 相关的调用。
然后端口号的配置我们同样保持默认:
be_port是 BE 对外提供的 Thrift 端口,默认是9060。be_http_port是 BE 对外提供的 HTTP 端口,默认是8040。heartbeat_service_port是 BE 之间心跳服务的端口,默认是9050。brpc_port是 BE 对外提供的 bRPC 端口,默认是8060。starlet_port是存算分离集群用于心跳的端口,默认是9070。
然后 priority_networks 仍然是和 FE 一样,由于使用 IP 访问所以需要配置一下,如果使用主机名则不需要配置。
最后 storage_root_path 配置 BE 的数据目录。
基本配置就上面这些,配置完成后保存,然后同步到其他的节点。
然后在所有节点都启动 BE 服务:
./be/bin/start_be.sh --daemon
这里和 FE 不太一样的地方是如果要使用主机名访问不需要指定 --host_type ,但是要确保 hosts 配置正确即可。
启动之后查看日志确保启动成功,3 个节点都启动后会自动组成 BE 高可用集群。
我们在第一个节点上使用 MySQL 客户端连接:
mysql -h127.0.0.1 -P9030 -uroot --prompt='StarRocks > '
默认 root 用户不需要密码,我们连接上去之后查看 FE 状态:
SHOW PROC '/frontends'\G
当前 FE 只有 1 个就是当前的节点,然后查看 BE 状态:
SHOW PROC '/backends'\G
这里 BE 应该为空,我们需要手动添加 BE 节点:
-- 注意端口使用 heartbeat_service_port 配置的端口
ALTER SYSTEM ADD BACKEND "10.0.1.25:9050", "10.0.1.26:9050", "10.0.1.27:9050";
然后再次查看 BE 的状态:
SHOW PROC '/backends'\G
现在就可以看到 3 个 BE 节点了。
配置 FE 高可用
首先在第一个节点添加 FE 节点:
ALTER SYSTEM ADD FOLLOWER "10.0.1.26:9010";
ALTER SYSTEM ADD FOLLOWER "10.0.1.27:9010";
注意这里只能一行添加 1 个 FE,不能添加多个,端口使用的是 FE 中配置的 edit_log_port,添加后查看状态 active 和 join 应该都是 false,然后我们要启动另外两个节点的 FE 服务:
# 添加 --helper 参数指定 Leader FE
fe/bin/start_fe.sh --helper 10.0.1.25:9010 --daemon
启动之后再查看 FE 的状态就正常了,这样 FE 集群就具备了高可用的能力。
如果之前不小心启动了其他节点的 FE,那么再次启动加入集群时可能会报错如下:
weren't! UNEXPECTED_STATE: Unexpected internal state, may have side effects.
这个原因就是启动的时候 FE 会生成元数据,由于加入 FE 集群会重新生成新的元数据,所以数据出现了冲突,遇到这个问题只需要清空报错节点的元数据目录,再次添加 --helper 参数启动即可。
另外停止服务可以执行:
./fe/bin/stop_fe.sh --daemon
./be/bin/stop_be.sh --daemon
最后由于 root 用户默认没有密码,为了安全需要设置 root 用户密码:
SET PASSWORD = PASSWORD('<password>')
设置后再次登录就需要输入密码了,这个密码和 FE 的 HTTP 访问密码都是相同的,建议生产环境为数据库单独分配用户。
Reference:
StarRocks 集群安装的更多相关文章
- StarRocks 3.0 集群安装手册
本文介绍如何以二进制安装包方式手动部署最新版 StarRocks 3.0集群. 什么是 StarRocks StarRocks 是新一代极速全场景 MPP (Massively Parallel Pr ...
- 【Oracle 集群】Oracle 11G RAC教程之集群安装(七)
Oracle 11G RAC集群安装(七) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总. ...
- kafka集群安装部署
kafka集群安装 使用的版本 系统:centos6.5 centos6.7 jdk:1.7.0_79 zookeeper:3.4.9 kafka:2.10-0.10.1.0 一.环境准备[只列,不具 ...
- CentOS下Hadoop-2.2.0集群安装配置
对于一个刚开始学习Spark的人来说,当然首先需要把环境搭建好,再跑几个例子,目前比较流行的部署是Spark On Yarn,作为新手,我觉得有必要走一遍Hadoop的集群安装配置,而不仅仅停留在本地 ...
- Hadoop多节点集群安装配置
目录: 1.集群部署介绍 1.1 Hadoop简介 1.2 环境说明 1.3 环境配置 1.4 所需软件 2.SSH无密码验证配置 2.1 SSH基本原理和用法 2.2 配置Master无密码登录所有 ...
- codis集群安装
在网上找了很多codis的集群安装方法,看起来都是大同小异,本人结合了大多种方法完成了一套自己使用的codis的集群安装,可以供大家学习使用,如果有什么问题或者不懂的地方欢迎指正 1.集群规划: 三台 ...
- [bigdata] spark集群安装及测试
在spark安装之前,应该已经安装了hadoop原生版或者cdh,因为spark基本要基于hdfs来进行计算. 1. 下载 spark: http://mirrors.cnnic.cn/apache ...
- (原) 1.2 Zookeeper伪集群安装
本文为原创文章,转载请注明出处,谢谢 Zookeeper伪集群安装 zookeeper单机安装配置可以查看 1.1 zookeeper单机安装 1.复制三份zookeeper,分别为zookeeper ...
- 一步步教你Hadoop多节点集群安装配置
1.集群部署介绍 1.1 Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台.以Hadoop分布式文件系统HDFS(Hadoop Distributed Filesys ...
- kafka 集群安装与安装测试
一.集群安装 1. Kafka下载:wget https://archive.apache.org/dist/kafka/0.8.1/kafka_2.9.2-0.8.1.tgz 解压 tar zxvf ...
随机推荐
- springboot+kaptcha生成数学运算验证码和字符验证码
使用以下代码只需要复制粘贴,修改一处文本生成器路径即可,文中有交代. 1.添加kaptcha依赖 <dependency> <groupId>com.github.penggl ...
- Android开发过程中的坑及解决方法收录(7)
1.无法找到自定义View的实例对象 问题描述: 由于经常要使用到两个TextView的布局,所以,我打算将其封装成一个自定义View,封装成功,界面能够成功显示了,但是,想给它设置点击监听器的时候就 ...
- Android IjkPlayer解决RTSP延时300ms左右
简介 在上一篇<ijkplayer编译-RTSP>中介绍了,ijkplayer如何进行编译成so库的,以及如何开启rtsp.那么实际在使用的时候会发现延迟不是一般的大. 现在来介绍一下如何 ...
- Python简单程序设计(Average篇)
如题: 解题方式如下:
- 记录--JS 的垃圾回收机制
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 垃圾回收(Garbage Collection)是一种内存管理机制,用于检测和清理不再被程序使用的内存,这些不再被使用的内存就被称为 ...
- Advanced .Net Debugging 5:基本调试任务(线程的操作、代码审查、CLR内部的命令、诊断命令和崩溃转储文件)
一.介绍 这是我的<Advanced .Net Debugging>这个系列的第五篇文章.今天这篇文章的标题虽然叫做"基本调试任务",但是这章的内容还是挺多的.上一篇我 ...
- SpringBoot集成drools
目录 1.背景 2.需求 3.实现 3.1 引入jar包 3.2 编写drools配置类 3.3 编写Person对象 3.4 编写drl文件 3.5 编写kmodule.xml文件 3.6 编写Co ...
- css实现按钮点击水波纹效果和两边扩散效果
废话少说,先上代码了,复制到html中即可使用 点击查看代码 <!DOCTYPE html> <html lang="en"> <head> & ...
- sql语句TRUNCATE 清空表数据
清空表数据 TRUNCATE TABLE zzsfp_hwmx;
- Codeforces Round #670 (Div. 2)
CF1406A Subset Mex 洛谷传送门 CF1406A 分析 从小到大考虑每一个数的出现次数,最小未出现的数就是A的mex值, 然后将A选完的数删掉一个接着以同样的方式找B的mex值,这显然 ...