StarRocks本地部署

文章目录

官方文档

这里基本上是按文档来部署的,为了自己方便测试而纪录。

介绍

StarRocks 是一款高性能分析型数据仓库,使用向量化、MPP 架构、CBO、智能物化视图、可实时更新的列式存储引擎等技术实现多维、实时、高并发的数据分析。StarRocks 既支持从各类实时和离线的数据源高效导入数据,也支持直接分析数据湖上各种格式的数据。StarRocks 兼容 MySQL 协议,可使用 MySQL 客户端和常用 BI 工具对接。同时 StarRocks 具备水平扩展,高可用、高可靠、易运维等特性。广泛应用于实时数仓、OLAP 报表、数据湖分析等场景。

上面这段是直接引用官方的原话。

简单概括起来 Starrocks 有以下特点:

  • 列式存储: 优化了列式存储和向量化查询执行,这对于分析查询通常能提供更好的性能。
  • 实时写入: 支持实时数据写入和查询,这意味着它能够处理近实时的数据分析需求。
  • 水平可伸缩性: 易于横向扩展,可以根据数据量和查询负载增加或减少节点。
  • 高并发: 能够处理高并发查询,适用于多用户环境。
  • MPP架构: 使用MPP架构,可以在多个节点上并行处理查询,提高了查询效率。

MPP 架构是 Massively Parallel Processing(大规模并行处理)架构,它是一种分布式计算架构,可以充分利用多节点的计算能力,实现高性能的数据分析。

StarRocks 的 MPP 架构具有以下特点:

  1. 并行计算:通过 MPP 计算框架,实现 SQL 的并行执行,从而实现良好的交互式分析体验。
  2. 分布式存储:采用分布式架构,对数据表进行水平划分并以多副本存储,支持灵活的集群规模伸缩,能够处理更高级别的数据分析需求。
  3. 弹性容错:支持多副本存储,具备弹性容错能力,能够自动恢复节点故障。
  4. 高可用:元数据和数据都采用多副本存储,并且集群中服务有热备和多实例部署,避免了单点故障。
  5. 扩展性:单集群节点规模可扩展到数百节点。

基于docker安装

注意:这里仅部署一台FE节点以及一到BE节点。在正常应用环境中,一个集群需要部署三个BE节点。

创建dockerfile文件:

yaml 复制代码
FROM centos:centos7

# Prepare StarRocks Installer.
RUN yum -y install wget
RUN mkdir -p /data/deploy/ 
RUN wget -SO /data/deploy/StarRocks-2.2.1.tar.gz https://download.starrocks.com/zh-CN/download/request-download/30/StarRocks-2.2.1.tar.gz
RUN cd /data/deploy/ && tar zxf StarRocks-2.2.1.tar.gz

# Install Java JDK.
RUN yum -y install java-1.8.0-openjdk-devel.x86_64
RUN rpm -ql java-1.8.0-openjdk-devel.x86_64 | grep bin$
RUN /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.332.b09-1.el7_9.x86_64/bin/java -version

# Create directory for FE meta and BE storage in StarRocks.
RUN mkdir -p /data/deploy/StarRocks-2.2.1/fe/meta
RUN jps
RUN mkdir -p /data/deploy/StarRocks-2.2.1/be/storage

# Install relevant tools.
RUN yum -y install mysql net-tools telnet

# Run Setup script.
COPY run_script.sh /data/deploy/run_script.sh
RUN chmod +x /data/deploy/run_script.sh
CMD /data/deploy/run_script.sh

创建run_script.sh文件:

shell 复制代码
#!/bin/bash

# Set JAVA_HOME.
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.332.b09-1.el7_9.x86_64

# Start FE.
cd /data/deploy/StarRocks-2.2.1/fe/bin/
./start_fe.sh --daemon

# Start BE.
cd /data/deploy/StarRocks-2.2.1/be/bin/
./start_be.sh --daemon

# Sleep until the cluster starts.
sleep 30;

# Set BE server IP.
IP=$(ifconfig eth0 | grep 'inet' | cut -d: -f2 | awk '{print $2}')
mysql -uroot -h${IP} -P 9030 -e "alter system add backend '${IP}:9050';"

# Loop to detect the process.
while sleep 60; do
  ps aux | grep starrocks | grep -q -v grep
  PROCESS_STATUS=$?

  if [ PROCESS_STATUS -ne 0 ]; then
    echo "one of the starrocks process already exit."
    exit 1;
  fi
done

基于dockerfile构建镜像

shell 复制代码
docker build --no-cache --progress=plain -t starrocks:1.0 .

启动容器

shell 复制代码
docker run -p 9030:9030 -p 8030:8030 -p 8040:8040 --privileged=true -itd --name starrocks-test starrocks:1.0

验证是否部署成功

  • 先进入创建的容器
    docker exec -it -u root starrocks-test /bin/bash

  • 执行命令mysql命令
    mysql -uroot -h127.0.0.1 -P 9030

    mysql 复制代码
    # 查看fe节点信息
    show proc '/frontends'\G
    
    # 查看pe节点信息
    show proc '/backends'\G

最后

同类的产品有不少,比如 ClickHouse, Apache Druid 等,每种产品都有其特定的优势和适用的场景,我们之前选择使用它最大的原因就是因为具备水平拓展,方便我们部署,同时 StarRocks 在实时 OLAP 分析和高性能查询方面可能具有竞争优势。

相关推荐
NCIN EXPE1 小时前
redis 使用
数据库·redis·缓存
MongoDB 数据平台1 小时前
为编码代理引入 MongoDB 代理技能和插件
数据库·mongodb
极客on之路1 小时前
mysql explain type 各个字段解释
数据库·mysql
rADu REME1 小时前
探索Spring Cloud Config:构建高可用的配置中心
大数据·elasticsearch·搜索引擎
代码雕刻家1 小时前
MySQL与SQL Server的基本指令
数据库·mysql·sqlserver
lThE ANDE1 小时前
开启mysql的binlog日志
数据库·mysql
yejqvow121 小时前
CSS如何控制placeholder文字的颜色_使用--placeholder伪元素
jvm·数据库·python
oLLI PILO1 小时前
nacos2.3.0 接入pgsql或其他数据库
数据库
m0_743623922 小时前
HTML怎么创建多语言切换器_HTML语言选择下拉结构【指南】
jvm·数据库·python