- StarRocks
- 产品简介
- 快速开始
- 表设计
- 数据导入
- 数据提取
- 使用StarRocks
- 管理手册
- 参考手册
- SQL参考
- 用户账户管理
- 集群管理
- ADMIN CANCEL REPAIR
- ADMIN CHECK TABLET
- ADMIN REPAIR
- ADMIN SET CONFIG
- ADMIN SET REPLICA STATUS
- ADMIN SHOW CONFIG
- ADMIN SHOW REPLICA DISTRIBUTION
- ADMIN SHOW REPLICA STATUS
- ALTER SYSTEM
- CANCEL DECOMMISSION
- CREATE RESOURCE GROUP
- CREATE FILE
- DROP FILE
- INSTALL PLUGIN
- SHOW BACKENDS
- SHOW BROKER
- SHOW FRONTENDS
- SHOW FULL COLUMNS
- SHOW INDEX
- SHOW PLUGINS
- SHOW TABLE STATUS
- SHOW FILE
- UNINSTALL PLUGIN
- DDL
- ALTER DATABASE
- ALTER TABLE
- ALTER VIEW
- ALTER RESOURCE
- BACKUP
- CANCEL BACKUP
- CANCEL RESTORE
- CREATE DATABASE
- CREATE INDEX
- CREATE MATERIALIZED VIEW
- CREATE REPOSITORY
- CREATE RESOURCE
- CREATE TABLE AS SELECT
- CREATE TABLE LIKE
- CREATE TABLE
- CREATE VIEW
- CREATE FUNCTION
- DROP DATABASE
- DROP INDEX
- DROP MATERIALIZED VIEW
- DROP REPOSITORY
- DROP RESOURCE
- DROP TABLE
- DROP VIEW
- DROP FUNCTION
- HLL
- RECOVER
- RESTORE
- SHOW RESOURCES
- SHOW FUNCTION
- TRUNCATE TABLE
- DML
- ALTER ROUTINE LOAD
- BROKER LOAD
- CANCEL LOAD
- CANCEL EXPORT
- DELETE
- EXPORT
- GROUP BY
- INSERT
- PAUSE ROUTINE LOAD
- RESUME ROUTINE LOAD
- CREATE ROUTINE LOAD
- SELECT
- SHOW ALTER
- SHOW BACKUP
- SHOW DATA
- SHOW DATABASES
- SHOW DELETE
- SHOW DYNAMIC PARTITION TABLES
- SHOW EXPORT
- SHOW LOAD
- SHOW PARTITIONS
- SHOW PROPERTY
- SHOW REPOSITORIES
- SHOW RESTORE
- SHOW ROUTINE LOAD
- SHOW ROUTINE LOAD TASK
- SHOW SNAPSHOT
- SHOW TABLES
- SHOW TABLET
- SHOW TRANSACTION
- SPARK LOAD
- STOP ROUTINE LOAD
- STREAM LOAD
- 数据类型
- 辅助命令
- 函数参考
- 日期函数
- convert_tz
- curdate
- current_timestamp
- curtime
- datediff
- date_add
- date_format
- date_sub
- date_trunc
- day
- dayname
- dayofmonth
- dayofweek
- dayofyear
- from_days
- from_unixtime
- hour
- minute
- month
- monthname
- now
- second
- str_to_date
- timediff
- time_slice
- timestampadd
- timestampdiff
- to_date
- to_days
- unix_timestamp
- utc_timestamp
- week
- weekofyear
- year
- hours_diff
- minutes_diff
- months_diff
- seconds_diff
- weeks_diff
- years_diff
- quarter
- timestamp
- time_to_sec
- str2date
- microseconds_add
- microseconds_sub
- 加密函数
- 地理位置函数
- 字符串函数
- JSON 函数
- 模糊/正则匹配函数
- 工具函数
- 聚合函数
- Bitmap函数
- 数组函数
- bit函数
- cast函数
- hash函数
- 条件函数
- 百分位函数
- 数学函数
- 日期函数
- 系统变量
- 错误码
- 系统限制
- SQL参考
- 常见问题解答
- 性能测试
- Release Notes
手动部署 StarRocks
本文介绍如何以二进制安装包方式手动部署 StarRocks。
如需从 源码 编译安装 StarRocks,参考 Docker 编译。
您还可以通过 Docker 镜像,StarRocks Manager,或者 StarGo 安装 StarRocks。
以下示例仅部署一台 FE 节点以及一台 BE 节点。在正常应用环境中,一个 StarRocks 集群需要部署三个 BE 节点。
如需在生产环境中扩容,参考 扩容缩容。
前提条件
在部署 StarRocks 之前,请确保如下环境要求已满足。
分类 | 描述 | 说明 |
---|---|---|
硬件要求 |
|
|
操作系统 | 所有节点操作系统需为 CentOS(7 或以上)。 | |
软件要求 | 所有节点需安装:
| |
系统环境 |
|
说明 依据不同的工作负载复杂性,StarRocks 每个 CPU 线程每秒可以处理 10M 至 100M 行数据。您可以据此估计集群中需要多少 CPU 线程能够满足您的要求。而 StarRocks 在存储数据时利用列存储和压缩,可以达到 4-10 倍的压缩比,您可以使用该数据来估计集群所需的存储量。
其他系统参数配置:
- 建议关闭交换区,消除交换内存到虚拟内存时对性能的扰动。
echo 0 | sudo tee /proc/sys/vm/swappiness
- 建议使用 Overcommit,将
cat /proc/sys/vm/overcommit_memory
设置为1
。
echo 1 | sudo tee /proc/sys/vm/overcommit_memory
部署 FE 节点
本小节介绍如何配置部署 Frontend (FE) 节点。FE 是StarRocks的前端节点,负责管理元数据,管理客户端连接,进行查询规划,查询调度等工作。
下载并解压安装包
下载 StarRocks 并解压二进制安装包。
tar -xzvf StarRocks-x.x.x.tar.gz
注意 将以上文件名修改为下载的二进制安装包名。
配置 FE 节点
进入 StarRocks-x.x.x/fe 路径。
cd StarRocks-x.x.x/fe
注意 将以上路径名修改为解压后的路径名。
修改 FE 配置文件 conf/fe.conf。以下示例仅添加元数据目录和 Java 目录,以保证部署成功。如需在生产环境中对集群进行详细优化配置,参考 FE 参数配置。
注意 当一台机器拥有多个 IP 地址时,需要在 FE 配置文件 conf/fe.conf 中设置
priority_networks
,为该节点设定唯一 IP。
添加元数据目录。
meta_dir = ${STARROCKS_HOME}/meta
添加 Java 目录。
JAVA_HOME = /path/to/your/java
注意:将以上路径修改为 Java 所在的本地路径。
创建元数据路径
创建 FE 节点中的元数据路径 meta。
mkdir -p meta
注意:该路径需要与 conf/fe.conf 文件中配置路径保持一致。
启动 FE 节点
运行以下命令启动 FE 节点。
bin/start_fe.sh --daemon
确认 FE 启动成功
通过以下方式验证 FE 节点是否启动成功:
- 通过查看日志 log/fe.log 确认 FE 是否启动成功。
2020-03-16 20:32:14,686 INFO 1 [FeServer.start():46] thrift server started. // FE 节点启动成功。
2020-03-16 20:32:14,696 INFO 1 [NMysqlServer.start():71] Open mysql server success on 9030 // 可以使用 MySQL 客户端通过 `9030` 端口连接 FE。
2020-03-16 20:32:14,696 INFO 1 [QeService.start():60] QE service start.
2020-03-16 20:32:14,825 INFO 76 [HttpServer$HttpServerThread.run():210] HttpServer started with port 8030
...
- 通过运行
jps
命令查看 Java 进程,确认 StarRocksFe 进程是否存在。 - 通过在浏览器访问
FE ip:http_port
(默认http_port
为8030
),进入 StarRocks 的 WebUI,用户名为root
,密码为空。
说明 如果由于端口被占用导致 FE 启动失败,可修改配置文件 conf/fe.conf 中的端口号
http_port
。
添加 FE 节点
您可通过 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
示例:
MySQL [(none)]> SHOW PROC '/frontends'\G
*************************** 1. row ***************************
Name: 172.26.xxx.xx_9010_1652926508967
IP: 172.26.xxx.xx
HostName: iZ8vb61k11tstgnvrmrdfdZ
EditLogPort: 9010
HttpPort: 8030
QueryPort: 9030
RpcPort: 9020
Role: FOLLOWER
IsMaster: true
ClusterId: 1160043595
Join: true
Alive: true
ReplayedJournalId: 1303
LastHeartbeat: 2022-05-19 11:27:16
IsHelper: true
ErrMsg:
StartTime: 2022-05-19 10:15:21
Version: 2.2.0-RC02-2ab1482
1 row in set (0.02 sec)
- 当 Role 为 FOLLOWER 时,当前节点是一个能参与选主的 FE 节点。
- 当 IsMaster 为 true 时,当前 FE 节点为主节点。
如果 MySQL 客户端连接失败,可以通过查看 log/fe.warn.log 日志文件发现问题。
如果在初次部署时遇到任何意外问题,可以在删除并重新创建 FE 的元数据路径后,重新开始部署。
部署 FE 节点的高可用集群
StarRocks 的 FE 节点支持 HA 模型部署,以保证集群的高可用。详细设置方式参考 FE 高可用集群部署。
停止 FE 节点
运行以下命令停止 FE 节点。
./bin/stop_fe.sh --daemon
部署 BE 节点
本小节介绍如何配置部署 Backend (BE) 节点。BE 是StarRocks的后端节点,负责数据存储以及SQL执行等工作。以下例子仅部署一个 BE 节点。您可以通过重复以下步骤添加多个 BE 节点。
下载并解压安装包
下载 StarRocks 并解压二进制安装包。
tar -xzvf StarRocks-x.x.x.tar.gz
注意 将以上文件名修改为下载的二进制安装包名。
配置 BE 节点
进入 StarRocks-x.x.x/be 路径。
cd StarRocks-x.x.x/be
注意 将以上路径名修改为解压后的路径名。
修改 BE 节点配置文件 conf/be.conf。因默认配置即可启动集群,以下示例并未修改 BE 节点配置。如需在生产环境中对集群进行详细优化配置,参考 BE 参数配置。
创建数据路径
创建 BE 节点中的数据路径 storage。
mkdir -p storage
注意 该路径需要与 be.conf 文件中配置路径保持一致。
添加 BE 节点
通过 MySQL 客户端将 BE 节点添加至 StarRocks 集群。
mysql> ALTER SYSTEM ADD BACKEND "host:port";
注意
host
需要与priority_networks
相匹配,port
需要与 be.conf 文件中的设置的heartbeat_service_port
相同,默认为9050
。
如添加过程出现错误,需要通过以下命令将该 BE 节点从集群移除。
mysql> ALTER SYSTEM decommission BACKEND "host:port";
说明
host
和port
与添加的 BE 节点一致。
启动 BE 节点
运行以下命令启动 BE 节点。
bin/start_be.sh --daemon
确认 BE 启动成功
通过 MySQL 客户端确认 BE 节点是否启动成功。
SHOW PROC '/backends'\G
示例:
MySQL [(none)]> SHOW PROC '/backends'\G
*************************** 1. row ***************************
BackendId: 10003
Cluster: default_cluster
IP: 172.26.xxx.xx
HostName: sandbox-pdtw02
HeartbeatPort: 9050
BePort: 9060
HttpPort: 8040
BrpcPort: 8060
LastStartTime: 2022-05-19 11:15:00
LastHeartbeat: 2022-05-19 11:27:36
Alive: true
SystemDecommissioned: false
ClusterDecommissioned: false
TabletNum: 10
DataUsedCapacity: .000
AvailCapacity: 1.865 TB
TotalCapacity: 1.968 TB
UsedPct: 5.23 %
MaxDiskUsedPct: 5.23 %
ErrMsg:
Version: 2.2.0-RC02-2ab1482
Status: {"lastSuccessReportTabletsTime":"2022-05-19 11:27:01"}
DataTotalCapacity: 1.865 TB
DataUsedPct: 0.00 %
1 row in set (0.01 sec)
当 Alive
为 true
时,当前 BE 节点正常接入集群。
如果 BE 节点没有正常接入集群,可以通过查看 log/be.WARNING 日志文件排查问题。
如果日志中出现类似以下的信息,说明 priority_networks
的配置存在问题。
W0708 17:16:27.308156 11473 heartbeat_server.cpp:82\] backend ip saved in master does not equal to backend local ip127.0.0.1 vs. 172.16.xxx.xx
如遇到以上问题,可以通过 DROP 错误的 BE 节点,然后重新以正确的 IP 添加 BE 节点的方式来解决。
ALTER SYSTEM DROP BACKEND "172.16.xxx.xx:9050";
如果在初次部署时遇到任何意外问题,可以在删除并重新创建 BE 的数据路径后,重新开始部署。
停止 BE 节点
运行以下命令停止 BE 节点。
./bin/stop_be.sh --daemon
下一步
成功部署 StarRocks 集群后,您可以: