当前按照官网上的提供的安装包方式安装,版本是 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 个目录,分别是 febeapache_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 的元数据目录。

然后是端口号部分的设置,我们这里都使用了默认值:

  1. http_port 是 FE 对外提供的 HTTP 端口,默认是 8030
  2. rpc_port 是 FE 对外提供的 Thrift 端口,默认是 9020
  3. query_port 是 FE 对外提供的查询端口,可以使用 MySQL 客户端连接,默认是 9030
  4. 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 相关的调用。

然后端口号的配置我们同样保持默认:

  1. be_port 是 BE 对外提供的 Thrift 端口,默认是 9060
  2. be_http_port 是 BE 对外提供的 HTTP 端口,默认是 8040
  3. heartbeat_service_port 是 BE 之间心跳服务的端口,默认是 9050
  4. brpc_port 是 BE 对外提供的 bRPC 端口,默认是 8060
  5. 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:

  1. https://docs.starrocks.io/zh/docs/deployment/deploy_manually/

StarRocks 集群安装的更多相关文章

  1. StarRocks 3.0 集群安装手册

    本文介绍如何以二进制安装包方式手动部署最新版 StarRocks 3.0集群. 什么是 StarRocks StarRocks 是新一代极速全场景 MPP (Massively Parallel Pr ...

  2. 【Oracle 集群】Oracle 11G RAC教程之集群安装(七)

    Oracle 11G RAC集群安装(七) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总. ...

  3. kafka集群安装部署

    kafka集群安装 使用的版本 系统:centos6.5 centos6.7 jdk:1.7.0_79 zookeeper:3.4.9 kafka:2.10-0.10.1.0 一.环境准备[只列,不具 ...

  4. CentOS下Hadoop-2.2.0集群安装配置

    对于一个刚开始学习Spark的人来说,当然首先需要把环境搭建好,再跑几个例子,目前比较流行的部署是Spark On Yarn,作为新手,我觉得有必要走一遍Hadoop的集群安装配置,而不仅仅停留在本地 ...

  5. Hadoop多节点集群安装配置

    目录: 1.集群部署介绍 1.1 Hadoop简介 1.2 环境说明 1.3 环境配置 1.4 所需软件 2.SSH无密码验证配置 2.1 SSH基本原理和用法 2.2 配置Master无密码登录所有 ...

  6. codis集群安装

    在网上找了很多codis的集群安装方法,看起来都是大同小异,本人结合了大多种方法完成了一套自己使用的codis的集群安装,可以供大家学习使用,如果有什么问题或者不懂的地方欢迎指正 1.集群规划: 三台 ...

  7. [bigdata] spark集群安装及测试

    在spark安装之前,应该已经安装了hadoop原生版或者cdh,因为spark基本要基于hdfs来进行计算. 1. 下载 spark:  http://mirrors.cnnic.cn/apache ...

  8. (原) 1.2 Zookeeper伪集群安装

    本文为原创文章,转载请注明出处,谢谢 Zookeeper伪集群安装 zookeeper单机安装配置可以查看 1.1 zookeeper单机安装 1.复制三份zookeeper,分别为zookeeper ...

  9. 一步步教你Hadoop多节点集群安装配置

    1.集群部署介绍 1.1 Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台.以Hadoop分布式文件系统HDFS(Hadoop Distributed Filesys ...

  10. kafka 集群安装与安装测试

    一.集群安装 1. Kafka下载:wget https://archive.apache.org/dist/kafka/0.8.1/kafka_2.9.2-0.8.1.tgz 解压 tar zxvf ...

随机推荐

  1. EL1008E: Property or field 'timestamp' cannot be found on object of type 'java.util.HashMap' - maybe not public-请求springboot-后台报错

    一.问题由来 自己在使用node.js写的前端项目访问springBoot访问的后端项目的时候,springboot项目中报这个错,抛出这个异常. 详细的错误信息如下: Servlet.service ...

  2. java 携带session 前台传递cookie 跨域解决方案 vue + java

    前台 axios 设置 withCredentials: true 后台设置 跨域 header("Access-Control-Allow-Origin","源地址&q ...

  3. Oss流程分析

    最新式上传方案是:前端上传获取token,然后token中带有bucket.账号.回调地址等相关信息,前端直接上传到阿里云,阿里云上传成功后回调之前设定好的地址,完成上传.(下图是技术负责人的图,盗来 ...

  4. oracle错误之未知的命令开头imp忽略了剩余行解决方案

    现象:执行imp命令如下: imp username/password@orcl full=y  file=C:\optimove.dmp ignore=y  解决方案: imp 命令是在dos提示符 ...

  5. leetcode算法之Valid Anagram

    原文算法说明如下: Given two strings s and t, write a function to determine if t is an anagram of s. For exam ...

  6. Android 开发Day7

    <project version="4"> <component name="ExternalStorageConfigurationManager&q ...

  7. 【实时渲染】3DCAT实时渲染云在BIM领域的应用

    很多人不知道实时渲染云在BIM领域都有哪些应用,今天3DCAT就为大家整理了一篇关于实时渲染云在BIM领域的应用介绍的文章.我们将会从什么是BIM.BIM在协作方面的挑战.3DCAT的解决方案及3DC ...

  8. 记录-有意思的气泡 Loading 效果

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 今日,群友提问,如何实现这么一个 Loading 效果: 这个确实有点意思,但是这是 CSS 能够完成的? 没错,这个效果中的核心气泡效果 ...

  9. 关于GDPR体系文件介绍,介绍GDPR体系文件的内容和意义

    随着数字化时代的到来,个人数据保护成为了一个日益受到关注的问题.欧盟于2018年5月25日颁布了"通用数据保护条例"(GDPR),旨在加强对欧洲公民个人数据的保护.GDPR对企业和 ...

  10. KingbaseES V8R6运维案例之---pg_statistic toast表故障修复

    ​ 案例说明: 数据库在日常的维护过程中,执行表结构查询语句(\d t1),如下图所示,出现"missing chunk number 0 for toast value 16259 in ...