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 分析和高性能查询方面可能具有竞争优势。

相关推荐
在路上走着走着9 分钟前
openEuler安装OpenGauss5.0
数据库·gaussdb
余~~1853816280032 分钟前
矩阵碰一碰发视频源码技术解析,支持OEM
数据库·microsoft
赛逸展张胜43 分钟前
CES Asia是一个关于什么的展会?
大数据·人工智能·科技
树莓集团1 小时前
树莓集团:数字化产业园建设运营推动数字经济
大数据·云计算·媒体
努力的布布1 小时前
Elasticsearch-模糊查询
大数据·elasticsearch·搜索引擎
张声录11 小时前
【ETCD】【实操篇(十五)】etcd集群成员管理:如何高效地添加、删除与更新节点
数据库·etcd
天乐敲代码1 小时前
Etcd静态分布式集群搭建
数据库·分布式·etcd
chengma_0909091 小时前
MySQL 数据库连接数查询、配置
数据库·mysql
TDengine (老段)2 小时前
两分钟掌握 TDengine 全部写入方式
大数据·数据库·时序数据库·tdengine·涛思数据