1. Starrocks简介
StarRocks是一种分布式的互联网分析型数据库 (OLAP) 系统,它能够支持丰富的 SQL 查询,并且在海量数据的场景下提供极高的性能和可扩展性。
StarRocks的主要功能组件包括:
-
Frontend (FE): 负责解析和优化用户提交的SQL语句,并将优化后的查询计划下发到Backend节点执行。
-
Backend (BE): 执行FE下发的查询计划,并将结果返回给FE节点。
-
Statestore: 存储集群的元数据,如表的schema信息、索引信息、副本信息等。
-
Catalog: 存储StarRocks表的元数据,包括表的schema信息、索引信息等。
-
Tablet: StarRocks中的基本存储单元,是数据的物理存储单元,每个tablet包含一个或多个partitions,每个partition包含表中的一部分数据。
-
Load Broker: 负责管理StarRocks中的数据导入任务,将数据从外部存储系统导入到StarRocks中。
-
AdHoc Analysis: 提供交互式的分析能力,用户可以通过AdHoc Analysis对数据进行探索和分析。
-
SQL: StarRocks支持标准的SQL语言,包括SELECT、INSERT、UPDATE和DELETE等基本语句,同时还支持复杂的查询语句,如JOIN、GROUP BY和WINDOW等。
-
Data Visualization: 提供直观的可视化数据分析功能,帮助用户更好地理解和分析数据。
-
Management Console: 提供集群监控和管理功能,包括集群资源监控、任务管理、配置管理等。
这些组件共同构成了StarRocks的核心功能,为用户提供了高效、可靠、易用的数据分析和查询服务。
2. Win安装
待补充
3. Linux安装
3.1 下载并解压
wget https://download.starrocks.com/zh-CN/download/request-download/55/StarRocks-2.3.3.tar.gz
3.2 配置FE节点
进入 StarRocks-x.x.x/fe 路径,修改FE配置文件conf/fe.conf
添加元数据目录配置项。
meta_dir = ${STARROCKS_HOME}/meta
添加 Java 目录配置项。
JAVA_HOME = ${JAVA_HOME}
在StarRocks-x.x.x/fe目录下面,创建元数据路径
mkdir -p meta
3.3 启动FE节点
./bin/start_fe.sh --daemon
./bin/stop_fe.sh --daemon
通过查看日志log/fe.log和JPS命令查询java进程确认是否启动成功。
启动成功则可以在浏览器访问WEB UI ip:http_port(默认 http_port 为 8030),用户名为 root,密码为空。
3.4 添加BE节点
可通过 MySQL 客户端连接 StarRocks 以添加 FE 节点。
在 FE 进程启动后,使用 MySQL 客户端连接 FE 实例。
mysql -h 127.0.0.1 -P9030 -uroot
说明 root 为 StarRocks 默认内置 user,密码为空,端口为 fe/conf/fe.conf 中的 query_port 配置项,默认值为 9030。
查看 FE 状态。
SHOW PROC '/frontends'\G
3.5 配置BE节点
进入StarRocks-x.x.x/be目录,创建 BE 节点中的数据路径 storage。
mkdir -p storage
3.6 添加BE节点
通过 MySQL 客户端将 BE 节点添加至 StarRocks 集群。
//添加节点
ALTER SYSTEM ADD BACKEND "host:port";//host 需要与 priority_networks 相匹配,port 需要与 be.conf 文件中的设置的 heartbeat_service_port 相同,默认为 9050。
//删除节点
ALTER SYSTEM decommission BACKEND "host:port";
3.7 启动BE节点
./bin/start_be.sh --daemon
./bin/stop_be.sh --daemon
确认BE启动是否成功,在通过mysql客户端执行命令
SHOW PROC '/backends'\G
3.8 简单使用
//查看表信息及存储介质等 表可以存储在机械磁盘也可以存储在ssd固态硬盘加速
show partitions from table
//查询某个分区数据
select * from table partition (p1);
4. 一键部署脚本
下面是一个可以实现一键部署 StarRocks 集群的脚本:
#!/bin/bash
set -e
# 定义变量
starrocks_version="2.3.3"
fe_port="8030"
be_port="9050"
mysql_host="127.0.0.1"
mysql_port="9030"
mysql_user="root"
mysql_password=""
# 下载并解压 StarRocks
wget https://download.starrocks.com/zh-CN/download/request-download/55/StarRocks-${starrocks_version}.tar.gz
tar -xzvf StarRocks-${starrocks_version}.tar.gz
# 配置 FE 节点
cd StarRocks-${starrocks_version}/fe
echo "meta_dir = ${PWD}/meta" >> conf/fe.conf
echo "JAVA_HOME = ${JAVA_HOME}" >> conf/fe.conf
mkdir -p meta
# 启动 FE 节点
./bin/start_fe.sh --daemon
sleep 3
if ! jps | grep -q coordinator; then
echo "FE node failed to start"
exit 1
fi
# 添加 BE 节点
cd ../be
mkdir -p storage
mysql -h ${mysql_host} -P ${mysql_port} -u ${mysql_user} -p${mysql_password} <<EOF
ALTER SYSTEM ADD BACKEND "localhost:${be_port}";
EOF
# 启动 BE 节点
./bin/start_be.sh --daemon
sleep 3
if ! jps | grep -q be; then
echo "BE node failed to start"
exit 1
fi
echo "StarRocks cluster is now up and running."
echo "You can access the Web UI at http://<ip_address>:${fe_port} (default username is root, password is empty)"
该脚本具有以下特点:
- 可配置的变量,如版本号、FE 和 BE 节点端口、MySQL 连接信息等,可以根据需要进行修改。
- 脚本中包含错误检查和提示信息,以帮助用户更好地理解部署过程和问题。
- 在启动 FE 和 BE 节点之后,脚本会检查进程是否成功启动,以确保集群可用。
在实际使用中,要根据自己的需求进行修改和优化。