教程|如何用 Docker/K8s 快速部署 StarRocks 集群

news2024/9/22 11:32:16

云原生是一种现代化的软件开发和部署方法论。相较于传统的应用开发和部署方式,云原生带来了显著的优势,包括弹性伸缩、应用程序可移植性、高可靠性和自动化部署与管理等方面,从而极大地提升了成本效益和开发效率。

StarRocks 从 3.0 版本开始支持了云原生存储分离架构,有越来越多用户在云上环境部署 StarRocks。Docker 容器化部署是当前最常见的部署方式之一,Docker 利用容器技术打包了 StarRocks 运行环境,简化了部署和运行过程,可以帮助用户实现快速功能验证;Kubernetes 则提供高级的容器编排和管理功能,可用来高效地扩缩容 StarRocks 集群。

接下来,就让我们带大家用一个更简捷的部署方式,通过 Docker/K8s 快速开启 StarRocks 旅程!🚀

准备工作

在正式开始前我们建议你先熟悉 StarRocks 的架构。 StarRocks 的基本架构相当简洁,包括 FE(前端)节点和 BE(后端)节点:FE 负责元数据管理、客户端连接管理、查询计划和查询调度;BE 负责数据存储和 SQL 执行。

如果你想了解更多,欢迎利用以下的学习资源:
📝 文档:https://docs.mirrorship.cn/zh-cn/latest/introduction/Architecture
🎞️ 视频:https://www.bilibili.com/video/BV1Hs4y1975F/?spm_id_from=333.788&vd_source=1cb452610138142d1300dd37a6162a88
接下来,我们要正式启程了!
 

用 Docker & K8s 快速部署 StarRocks 集群

1.Docker ——快速功能测试
 

小贴士: 你可以依照以下步骤部署一个简单的 StarRocks 集群,其中包含一个 FE 节点和一个 BE 节点使用 Docker 部署的方式目前只建议用在快速功能测试上,适用于小数据集验证 DEMO 的情况。不建议你将其用于大规模测试或生产环境。 此快速入门部署了一个 BE 节点。在 CREATE TABLE 子句中,你需要添加属性("replication_num" = "1"),以便只有一个数据副本持久保存在 BE 节点中。

以下操作需要使用的软件:

  • Docker (https://docs.docker.com/engine/install/)

  • MySQL(作为连接到 StarRocks 的客户端)

第一步:部署 StarRocks

请访问 StarRocks Dockerhub 存储库(https://hub.docker.com/r/starrocks/allin1-ubuntu/tags),并根据版本标签选择一个版本。

docker run -p 9030:9030 -p 8030:8030 -p 8040:8040 -itd starrocks/allin1-ubuntu:latest

第二步:连接到 StarRocks

由于部署是一个异步过程,建议在连接到集群之前等待一分钟。 使用 MySQL 客户端连接到 StarRocks 集群。

mysql -h127.0.0.1 -uroot -P9030

2.StarRocks Kubernetes Operator——在 K8s 上完整运行 StarRocks


以下操作需要使用的软件:

  • StarRocks Kubernetes (K8s) Operator (https://github.com/StarRocks/starrocks-kubernetes-operator)

StarRocks Kubernetes Operator 是由 StarRocks 社区开发的一个实用工具。它可以帮助你使用几行简单的命令将StarRocks 的 FE、BE 和 CN(计算节点)组件部署到你的 K8s 环境中。这种部署方法支持在两个简单步骤中部署任意数量的 FE(至少需要一个 FE)、BE 和 CN 节点。

准备工作

你需要一个可运行的 Kubernetes 环境,如果你没有这样的环境,你可以选择以下几个选项:

快速验证测试:

  • 带有 Kubernetes 的 Docker 桌面版 (https://docs.docker.com/desktop/kubernetes/)

  • Minikube (https://minikube.sigs.k8s.io/docs/start/)

或是你也可以使用公有云上的托管 K8s,像是:

  • 阿里云 ACK

  • 腾讯云 TKE

  • AWS EKS

  • GCP GKE

第一步:安装 StarRocks K8s Operator 安装 starrockscluster CRD:

kubectl apply -f 
https://raw.githubusercontent.com/StarRocks/starrocks-kubernetes-operator/main/deploy/starrocks.com_starrocksclusters.yaml

你可以选择在默认的 "starrocks" 命名空间中安装 Operator,也可以选择在自定义的命名空间中安装。

在 StarRocks 命名空间中安装 Operator

默认情况下,Operator 配置为安装在 "starrocks" 命名空间中。你可以通过以下命令来安装:
 

kubectl apply -f 
https://raw.githubusercontent.com/StarRocks/starrocks-kubernetes-operator/main/deploy/operator.yaml

在自定义命名空间中安装


然而,如果你想在自定义命名空间中安装 Operator,需要下载 Operator Manifest 并将所有命名空间从 "starrocks" 更改为所需的自定义命名空间的名称。

kubectl apply -f custom-namespace-operator.yaml

第二步:部署 StarRocks
 

你需要准备一个单独的 YAML 文件来部署 StarRocks 的 FE、BE 和 CN 组件。StarRocks Kubernetes Operator 的GitHub 代码库中包含一些示例,可以帮助你入门。

你可以修改示例模板或创建一个新模板,以更好地适应你的用例。Starrocks-kubernetes-operator GitHub 代码库的 README 上有关于如何用 configMap 配置 StarRocks 集群的各种参数以及如何配置存储卷的更多信息。

出于演示目的,我们使用 starrocks-fe-and-be.yaml 示例模板来启动一个 StarRocks 集群。这个 YAML 文件默认启动 3 个 FE 和 3 个 BE,你可以编辑 YAML 文件来更改 FE 的数量(设置为1)或者设置 BE 为其他数量 。

wget https://raw.githubusercontent.com/StarRocks/starrocks-kubernetes-operator/main/examples/starrocks/starrocks-fe-and-be.yaml 
kubectl apply -f starrocks-fe-and-be.yaml

第三步:连接到 StarRocks 集群
从 Kubernetes 集群内部连接 在部署 StarRocks 集群后,你可以使用 kubectl get svc -n <namespace>命令找到连接的 IP 地址。例如,如果 StarRocks 部署的命名空间是 starrocks,你可以执行以下命令:

kubectl get svc -n starrocks

<your-StarRocksCluster-name>-fe-service的 clusterIP 是连接到 StarRocks FE 的 IP 地址。然后,你可以使用以下命令访问新创建的 StarRocks 集群:

mysql -h <FE-IP> -P9030 -uroot

从 Kubernetes 集群外部连接
如果你从 Kubernetes 网络之外进行访问,你需要将服务类型更改为 LoadBalancer 或 NodePort。你可以使用以下命令进行配置:

kubectl -n starrocks patch --type=merge src starrockscluster-sample -p '{"spec":{"starRocksFeSpec":{"service":{"type": "LoadBalancer"}}}}'

接下来,你可以使用 kubectl get svc -n <namespace> 命令找到连接的 IP 地址。例如,如果 StarRocks 部署的命名空间是starrocks,你可以执行以下命令:

kubectl get svc -n starrocks

<your-StarRocksCluster-name>-fe-service的 ExternalIP 是连接到 StarRocks FE 的 IP 地址。然后,你可以使用以下命令访问新创建的 StarRocks 集群:

mysql -h <FE-IP> -P9030 -uroot

如果正式使用遇到问题,像是修改 K8s 环境的密码,可以参考文档👉🏻 https://github.com/StarRocks/starrocks-kubernetes-operator/blob/main/doc/change_root_password_howto.md

现在你已经准备好部署 StarRocks 了,接下来你只需要亲自体验一下这个过程是多么简单!加入我们的社区,亲眼见证为什么越来越多的人选择使用 StarRocks!
🔽 下载最新版本:https://mirrorship.cn/zh-CN/download/community


⭐ StarRocks GitHub:https://github.com/StarRocks/starrocks (欢迎提 issue 反馈问题和点 star 支持!)


💬 来 StarRocks 论坛寻求解答: https://forum.mirrorship.cn/ (搜 K8s/Docker 看常见问题)


📺 新手视频教程:
https://space.bilibili.com/1273141509/channel/collectiondetail?sid=1319703
https://www.bilibili.com/video/BV1JM4y1Q7c2/?spm_id_from=333.999.0.0&vd_source=1cb452610138142d1300dd37a6162a88

也欢迎你加入到 StarRocks 用户交流群!👇 https://842372.ma3you.cn/articles/Oz4kpdl/

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

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

相关文章

wms三代电子标签操作指导

一、服务器使用 V1.4基站已经内置服务程序&#xff0c;无需搭建服务&#xff1b;可跳至第1.4部分 1、服务器搭建 安装mysql5.7, 创建db_wms数据库并导入原始数据库文件 安装jdk1.8, 配置java环境变量 下载tomca8.0, 部署wms.war到tomcat, 并启动tomcat 2、下载资源 Wind…

dflow工作流使用1——架构和基本概念

对于容器技术、工作流等概念完全不懂的情况下理解dflow的工作方式会很吃力&#xff0c;这里记录一下个人理解。 dflow涉及的基本概念 工作流的概念很好理解&#xff0c;即某个项目可以分为多个步骤&#xff0c;每个步骤可以实现独立运行&#xff0c;只保留输入输出接口&#x…

以科技创新引领短交通行业发展,九号公司重磅新品亮相巴塞罗那MWC

2月27日&#xff0c;以“时不我待(VELOCITY) - 明日科技&#xff0c;将至已至”为主题的2023世界移动通信大会&#xff08;Mobile World Congress&#xff0c;以下简称MWC&#xff09;在西班牙巴塞罗那举办&#xff0c;全球创新短交通领军企业九号公司参加了大会。现场&#xf…

学习记录——DSConv

Dynamic Snake Convolution based on Topological Geometric Constraints for Tubular Structure Segmentation ICCV 2023 用于管状结构分割的动态蛇形卷积 仍存在一些复杂的领域&#xff0c;大模型还未能够很好的覆盖&#xff08;也许只是时间问题&#xff09;。例如伪装目标…

【MySQL】模具更新方案

系列文章 C#底层库–MySQLBuilder脚本构建类&#xff08;select、insert、update、in、带条件的SQL自动生成&#xff09; 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/129179216 C#底层库–MySQL数据库操作辅助类&#xff08;推荐阅读&#xff0…

接口测试用例设计:常见问题和风险

一、接口测试 接口测试&#xff0c;即对API进行测试。 接口测试过程容易出现的典型问题&#xff1a; (1) 传入参数处理不当&#xff0c;导致程序奔溃 (2) 类型溢出&#xff0c;导致数据读出和写入不一致 (3) 因对象权限未进行校验&#xff0c;可以访问其他用户的敏感信息 …

快速了解MyBatis---映射关系多对一

文章目录 映射关系多对一映射关系-官方文档映射关系多对1-基本介绍基本介绍注意细节 映射关系多对1-映射方式映射方式配置Mapper.xml 方式-应用实例注解实现多对1 映射-应用实例 映射关系多对一 映射关系-官方文档 文档地址: https://mybatis.org/mybatis-3/zh/sqlmap-xml.ht…

(树) 剑指 Offer 32 - I. 从上到下打印二叉树 ——【Leetcode每日一题】

❓剑指 Offer 32 - I. 从上到下打印二叉树 难度&#xff1a;中等 从上到下打印出二叉树的每个节点&#xff0c;同一层的节点按照从左到右的顺序打印。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3/ \9 20/ \15 7返回&#xff1a; [3,9,20,15,7]提示&#xff1a; 节…

软件测试——Postman Script脚本功能

Postman作为软件测试里一款非常流行的调试工具&#xff0c;给我们提供了一个执行JavaScript脚本的环境&#xff0c;所以我们可以使用js语言编写脚本来解决一些接口自动化的问题&#xff0c;比如接口依赖、接口断言等等。Postman有Pre-RequestScript和Tests两个编写js脚本的模块…

【LeetCode】最小路径和

最小路径和 题目描述算法流程编程代码 链接: 最小路径和 题目描述 算法流程 编程代码 class Solution { public:int minPathSum(vector<vector<int>>& grid) {int m grid.size();int n grid[0].size();vector<vector<int>> dp(m1,vector<in…

html5播放器视频切换和连续播放的实例

当前播放器实例可以使用changeVid接口切换正在播放的视频。当有多个视频&#xff0c;在上一个视频播放完毕时&#xff0c;自动播放下一个视频时也可采用该处理方式。 const option {vid: 88083abbf5bcf1356e05d39666be527a_8,//autoplay: true,//playsafe: , //PC端播放加密视…

ipad必须要配原装的电容笔吗?ipad可以用的手写笔

众所周知&#xff0c;苹果平板电脑的价格很贵&#xff0c;但只要你有充足的预算&#xff0c;是可以选择入手的。另外&#xff0c;iPad搭配上电容笔不但适用于专业画图&#xff0c;也适用于写字作笔记。苹果原装的电容笔&#xff0c;功能强大&#xff0c;但是价格昂贵&#xff0…

记录一个可支持 style 属性 HtmlTextView 控件

大家都知道可通过原生API Html.fromHtml(html) 在 TextView 上显示 html 文本&#xff0c;但显示效果有限。 对于复杂效果就不行了&#xff0c;费了点时间找了一些库验证&#xff0c;最终找到一个合适的&#xff0c;在此记录一下。 支持内容挺丰富的&#xff0c;包含很多 htm…

Mac查看系统状态

syatem profiler mac系统中提供了system profiler来查看系统的详细信息&#xff0c;包括硬件、网络以及安装的软件 Console 显示了系统上的日志文件信息&#xff0c;有助于诊断问题 Activity Monitor 可以提供正在运行的系统的相关信息 https://zhhll.icu/2021/Mac/查看系统…

学习记录——Octave Convolution、LSK

Octave Convolution 2019 ICCV 自然世界中的图像存在高低频&#xff0c;卷积层的输出特征图以及输入通道&#xff0c;也都存在高、低频分量。 低频分量支撑的是整体轮廓&#xff0c;高频分量则关注细节&#xff0c;显然&#xff0c;低频分量是存在冗余的&#xff0c;在编码过程…

LLM微调 | Prefix-Tuning, Prompt-Tuning, P-tuning, P-tuning-v2

&#x1f525; 下面我只是分析讲解下这些方法的原理以及具体代码是怎么实现的&#xff0c;不对效果进行评价&#xff0c;毕竟不同任务不同数据集效果差别还是挺大的。 文章目录 0、hard prompt & soft prompt区别1、Prefix-Tuning2、Prompt-Tuning3、P-tuning4、P-tuning-v…

【C++】stack | queue | priority_queue的模拟实现

stack&queue的模拟实现 stack 与 queue 作为容器适配器&#xff0c;都默认选择了 deque 作为其底层容器。 #pragma once #include <deque> using namespace std;namespace zs {template<class T, class Container deque<T>>class stack{public:void p…

【Java基础教程】(四十四)IO篇 · 上:File类、字节流与字符流,分析字节输出流、字节输入流、字符输出流和字符输入流的区别~

Java基础教程之IO操作 上 &#x1f539;本节学习目标1️⃣ 文件操作类&#xff1a;File2️⃣ 字节流与字符流2.1 字节输出流&#xff1a;OutputStream2.2 字节输入流&#xff1a;InputStream2.3 字符输出流&#xff1a;Writer2.4 字符输入流&#xff1a;Reader2.5 字节流与字符…

《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(15)-Fiddler弱网测试,知否知否,应是必知必会

1.简介 现在这个时代已经属于流量时代&#xff0c;用户对于App或者小程序之类的操作界面的数据和交互的要求也越来越高。对于测试人员弱网测试也是需要考验自己专业技术能力的一种技能。一个合格的测试人员&#xff0c;需要额外关注的场景就远不止断网、网络故障等情况了。还要…

grid map学习笔记2之grid map的一些常规定义和功能包说明

文章目录 0 引言1 常规定义1.1 单层grid map1.2 多层grid map1.3 迭代器类别1.4 移动grid map的位置 2 功能包2.1 grid_map_rviz_plugin2.2 grid_map_sdf2.3 grid_map_visualization2.3.1 订阅的主题2.3.2 发布的主题 2.4 grid_map_filters 0 引言 grid map学习笔记1已成功在U…