starRocks搭建

公司要使用新的大数据架构,打算用国产代替国外的大数据平台。所以这里我就纠结用doris还是starrocks,如果用doris,因为是开源的,以后就可以直接用云厂商的。如果用starrocks就得自己搭建,但是以后肯定会商业化,也是要收钱的。doris我以前用过,没用过starRocks,想试下是不是真的像下面参考链接里的高性能,所以我选择了starrocks。用他来做数仓,代替我们以前cdh里的hive-presto或者kudu-impala。

大家觉得starRocks可以替代hive吗?我觉得是可以的,hadoop那一套的都是20年前google玩腻的了,hadoop那套组件太多了,好处就是非常稳定,20年了,几乎遇到的大bug都修完了。彻底不用hadoop那套,可以用starRocks代替。

检测cpu是否支持

cat /proc/cpuinfo | grep avx2

如果什么都没有打印,那么你可以换cpu了。

Be是负责计算的,你没有这个指令集,那么部署不了

介绍

startrocks是做【数据分析】的【数据仓库】,可以替代传统的hive,他具有向量化MMP架构列式存储引擎,支持实时分析,并发计算。兼容mysql协议,可使用mysql客户端对接。支持水平扩展。全系统无外部依赖,也就是不需要zookeeper来管理,或者元数据存在mysql,只用维护自身。

他不适合做事务操作,比如更新等操作,用来分析的数据都是写入了就不变的,比如日志数据,或者是体检报告等。

向量化:指的是将数据向量化后,cpu原本只能处理一条,现在可以同时处理多条

MPP架构:大规模并行处理架构,将数据拆分给多台机器一起执行,处理大量数据

列式存储引擎:将列进行管理,支持大宽表存储和分析,mysql就不行,字段多了就崩了,单独查列很快,可以实时更新列

实时分析:查询分析速度比较快,毫秒级

mysql客户端对接:比如navicat,或者jdbc都可以直接链接它?待验证

水平扩展:1台太弱,我可以继续加机器,让他分析能力变强

支持以下BI对接:包括 Tableau、Power BI、FineBI 和 Smartbi。

作为实时数仓,他只能【秒级】同步数据,可以实时【毫秒级查询

系统架构(维护以及搭建必看)

系统的核心只有 FE(Frontend)、BE (Backend) 或 CN (Compute Node) 进程。

前端(显示界面)、后端(逻辑控制)、节点

3.0后支持了存算分离,存储持久化数据必须放到hdfs上。当然你也可以选择存算一体。

3.0同样支持这两种架构。

这2个有啥区别,存算一体的话,你必须将【数据复制】到startRocks里一份,存算分离的话,你【直接用hdfs】的数据就行了。少了一步复制,存算分离的话更加省钱,省磁盘,更好的动态扩容,扩容就不用管存储了,直接扩容计算节点就行。缺点就是要多维护一套外源数据。

不支持混合部署,存算一体选择了,就不能弄存算分离了。

Fe负责协调、和目录管理

存算一体

Be负责存储计算

Fe(详细版)

负责管理元数据,管理客户端的连接,查询规划、查询调度。

FE的元数据是存储在内存里的,磁盘中也有一份。

FE有3种角色,leader,follower,observer

Leader是选举出来的,他负责读写。然后写入后,将元数据更新完,同步给follwer和observer,只有一半的follwer成功了才算成功。

Follwer没有写入权限,只有读取权限

Observer和follwer一样,可选部署,能提高查询速度,不参与选举,相当于是如虎添翼

Be(详细版)

每个BE是一样的(没有啥leader,follwer),但是并不是每一个be都有完整的数据,BE负责是存储和计算,FE将数据分配到BE,BE将他存下来,并且生成索引。

Be计算,会将sql根据语法意思,分成逻辑单元(代码层面),然后根据数据分布变成物理单元(硬件层面),然后会在本地执行。

元数据:这个不会没人知道吧,说实话我都不想写,只是为了照顾小白。比如这个数据是什么类型的,是字符串还是数字,这就是元数据,用来修饰数据的数据。

查询规划:计划要消耗多少性能,用什么sql,进行优化,转换成物理计划

查询调度:选择哪台be去执行这个物理计划

存算提一体数据管理

starRocks最小的存储单元叫做tablet。我们可以自行分区,然后指定分桶。

图中是按时间列分区,然后对指定4个字段进行分桶(4列,其实用1列都可以),然后指定了3个副本,每个列的数据每个单元数据,分布在不同的节点下。A-1和A-2还有A-3都是相同的数据,是A的备份。

他扩容的时候,不需要停止服务,增加节点会自动迁移,节点减少时也会自动均横分布数据。

存算分离

引入了【缓存】的概念,Be【只】负责计算,然后改名叫做Cn(计算节点-compute node)

缓存:会自动根据查询频率将数据进行动态变化

动态变化:分为3级,内存,本地,外源。最热的数据在内存中,然后其他是本地磁盘中,然后冷数据(不经常用的)在外源中。随着你的访问频率进行动态数据调整

存算分离建表时候,需要告诉他是否开启缓存。

支持以下后端存储:

  • 兼容 AWS S3 协议的对象存储系统(支持主流的对象存储系统如 AWS S3、Google GCP、阿里云 OSS、腾讯云 COS、百度云 BOS、华为云 OBS 以及 MinIO 等)
  • Azure Blob Storage
  • 传统数据中心部署的 HDFS


这里官网的系统架构的每句话,我都已经用自己话讲完了。下面开始搭建。

快速上手体验

他是用docker容器帮你打包好环境了,所以可以直接启动。

首先安装docker,至少4G内存,10GB空间。

我们服务器的cpu不支持avx2,这里我在下虚拟机,打算在windows上面弄一个Ubuntu.22,因为我个人电脑是支持avx2的。---等我下载完,在开始写后面的。


 

参考:

📚 【源码解析】StarRocks 查询优化系列文章 - 原理解读 - StarRocks中文社区论坛

StarRocks | StarRocks

部署前提条件 | StarRocks

https://www.cnblogs.com/huanghanyu/p/18186894

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

初学51单片机之UART串口通信

CSDN其他博主的博文(自用)嵌入式学习笔记9-51单片机UART串口通信_51uart串口通讯-CSDN博客 CSDN其他博主的博文写的蛮好,如果你想了解51单片机UART串口可以点进去看看: UART全称Universal Asynchronous Receiver/Transmitter即通…

Codeforces Round 957 (Div. 3)(A~E题解)

这次比赛只能用抽象来形容,前五道题都没有什么算法,都是思维加模拟都能过,然后第四题卡住了,第五题不知道为什么做出来的人那么少,就是纯暴力就能过,但是没抓住上分的机会,有些可惜,…

Python编写的俄罗斯方块小游戏

文章目录 游戏页面实现代码 游戏页面 左右键移动方块位置,上键切换方块形态。 实现代码 import pygame import random# 初始化 Pygame pygame.init()# 定义颜色 colors [(0, 0, 0), # 黑色(255, 0, 0), # 红色(0, 255, 0), # 绿色(0, 0, 255), # 蓝色(255,…

差分约束——AcWing 362. 区间

差分约束 定义 差分约束系统是一种在计算机科学和运筹学中用于解决特定类型优化问题的工具。它主要用于处理一类线性不等式组,这些不等式描述了变量之间的相对大小关系,而不是直接的绝对值大小。差分约束系统通常用于路径寻找、调度、资源分配等问题。…

接口幂等性和解决方案

针对前端重复发起相同请求的解决方案: 注意: Redis保证了在相同key的情况下,只会保留一条数据,这就保证了多次请求只会消费一条数据。 并且需要注意的是,生成/获取token和携带token发送请求的过程需要是两个不同的过…

AI克隆声音,基于函数计算部署GPT-Sovits语音生成模型

阿里云的 https://developer.aliyun.com/adc/scenario/808348a321844a62b922187d89cd5077 还是 函数计算 FC (aliyun.com) 选择 语音克隆生成 GPT-SOVITS 通过访问域名就能访问 就可以上传个人的声音,然后进行输出 。

极狐Gitlab使用(2)

目录 1. Gitlab命令行修改管理员密码 2. Gitlab服务管理 3. 公司的开发代码提交处理流程 4. Gitlab 备份与恢复 数据备份 测试数据恢复 5. 邮箱配置 1. Gitlab命令行修改管理员密码 [roottty01 ~]# gitlab-rails console -e production # 启动GitLab的Rails控制…

FastAPI 学习之路(四十一)定制返回Response

接口中返回xml格式内容 from fastapi import FastAPI, Responseapp FastAPI()# ① xml app.get("/legacy") def get_legacy_data():data """<?xml version"1.0"?><shampoo><Header>Apply shampoo here.</Header&…

Day1每日编程题日记:数字统计、两个数组的交集、点击消除

前言&#xff1a;该篇用于记录自看。曾回看昨天的做题代码&#xff0c;竟然会觉得陌生&#xff0c;这竟然是我写的&#xff0c;细细读了一下&#xff0c;原来我当时是这么想的。因此我觉得记代码没有实际用处&#xff0c;重点是领悟了思想&#xff0c;这样子代码就在心中&#…

java虚拟机

JVM的运行机制 运行过程 Java源文件被编译器编译成字节码文件JVM将字节码文件编译成相应操作系统的机器码机器码调用相应操作系统的本地方法库执行相应的方法 类加载器用于将编译好的.Class文件加载到JVM中即时编译器&#xff1a;将Java字节码编译成具体的机器码 多线程 JV…

小米开放式耳机怎么样?小米、西圣、漫步者王者pk测评角逐

我们常说的开放式耳机&#xff0c;就是一种采用开放式设计的音频设备&#xff0c;能够给用户带来更加自然且广阔的音质体验&#xff0c;相比与传统的入耳式耳机&#xff0c;开放式耳机无需入耳&#xff0c;在佩戴方面更加的舒适&#xff0c;在音质方面开放式耳机的听感会更加自…

Flat Ads:金融APP海外广告投放素材的优化指南

在当今全球化的数字营销环境中,金融APP的海外营销推广已成为众多金融机构与开发者最为关注的环节之一。面对不同地域、文化及用户习惯的挑战,如何优化广告素材,以吸引目标受众的注意并促成有效转化,成为了广告主们亟待解决的问题。 作为领先的全球化营销推广平台,Flat Ads凭借…

如何保证语音芯片的稳定性能和延长使用寿命

要让语音芯片保持稳定性能&#xff0c;首先需要深入理解其工作原理和内部构造。语音芯片&#xff0c;作为现代电子设备中的核心组件之一&#xff0c;承载着声音信号的处理与输出功能。为了确保其稳定运行&#xff0c;我们需要从多个方面进行细致的考虑和操作。‌ 1、避免长期高…

【数据结构】初探数据结构面纱:栈和队列全面剖析

【数据结构】初探数据结构面纱&#xff1a;栈和队列全面剖析 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;数据结构 文章目录 【数据结构】初探数据结构面纱&#xff1a;栈和队列全面剖析前言一.栈1.1栈的概念及结构1.2栈的结构选择1.3栈的…

数据结构(3.9_1)——特殊矩阵的压缩存储

总览 一维数组的存储结构 如果下标从1开始&#xff0c;则a[i]的存放地址LOC (i-1)*sizeof(ElemType); 二维数组的存储 二维数组也具有随机存储的特性 设起始地址为LOC 在M行N列的二维数组b[M][N]中&#xff0c;若按行优先存储&#xff0c; 则b[i][j]的存储地址的LOC (i*…

【JVM】对象的生命周期一 | 对象的创建与存储

Java | 对象的生命周期1-对象的创建与存储 文章目录 前言对象的创建过程内存空间的分配方式方式1 | 指针碰撞方式2 | 空闲列表 线程安全问题 | 避免空间冲突的方式方式1 | 同步处理&#xff08;加锁)方式2 | 本地线程分配缓存 对象的内存布局Part1 | 对象头Mark Word类型指针 P…

文献翻译与阅读《Integration Approaches for Heterogeneous Big Data: A Survey》

CYBERNETICS AND INFORMATION TECHNOLOGIES’24 论文原文下载地址&#xff1a;原文下载 目录 1 引言 2 大数据概述 3 大数据的异构性 4 讨论整合方法 4.1 大数据仓库&#xff08;BDW&#xff09; 4.2 大数据联盟&#xff08;BDF&#xff09; 5 DW 和 DF 方法的比较、分…

智充科技营收增速放缓:经营成本飙升,应收账款大幅增长

《港湾商业观察》黄懿 6月10日&#xff0c; XCHG Limited 智能充电有限公司(下称&#xff1a;智充科技)在美国证监会(SEC)更新招股书&#xff0c;拟在美国纳斯达克上市&#xff0c;其股票代码为“XCH”。北京智充科技有限公司为其国内运营主体&#xff08;下称“北京智充科技”…

IC后端设计中的shrink系数设置方法

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 在一些成熟的工艺节点通过shrink的方式(光照过程中缩小特征尺寸比例)得到了半节点,比如40nm从45nm shrink得到,28nm从32nm shrink得到,由于半节点的性能更优异,成本又低,漏电等不利因素也可以…

C++学习

一、注释 /*多行 。。。 。。。 注释*/ //单行注释 #include <iostream> using namespace std; int main() {cout << "hellow" << endl;system("pause");return 0; }二、变量定义 #include <iostream> using namespace std; int…