1 changed files with 203 additions and 0 deletions
@ -0,0 +1,203 @@ |
|||
好的,在本地搭建 StarRocks 是一个非常常见的需求,用于开发、测试或学习。下面我将为你提供两种最常用且简单的方法:**使用 Docker(最简单推荐)** 和 **使用二进制文件直接部署**。 |
|||
|
|||
我会以 **macOS 或 Linux** 环境为例进行说明(Windows 用户强烈建议使用 WSL2 或 Docker Desktop)。 |
|||
|
|||
--- |
|||
|
|||
### 方法一:使用 Docker 搭建(最快最方便,强烈推荐) |
|||
|
|||
这种方法无需处理复杂的依赖关系,几条命令就能拉起一个完整的 StarRocks 集群(包含 1 个 FE 和 1 个 BE)。 |
|||
|
|||
#### 步骤 1:安装 Docker |
|||
|
|||
确保你的本地环境已经安装了 Docker Desktop 或 Docker Engine。 |
|||
* 官网下载: [https://www.docker.com/products/docker-desktop/](https://www.docker.com/products/docker-desktop/) |
|||
* 安装后启动 Docker 服务。 |
|||
|
|||
#### 步骤 2:下载 StarRocks Docker 镜像 |
|||
|
|||
打开终端(Terminal),执行以下命令来下载官方镜像: |
|||
|
|||
```bash |
|||
docker pull starrocks/allin1-ubuntu |
|||
``` |
|||
|
|||
#### 步骤 3:启动 StarRocks 容器 |
|||
|
|||
使用以下命令启动一个容器: |
|||
|
|||
```bash |
|||
docker run -p 9030:9030 -p 8030:8030 -p 8040:8040 --name starrocks -d starrocks/allin1-ubuntu |
|||
``` |
|||
|
|||
* `-p 9030:9030`: 将容器的 FE MySQL 查询端口映射到本地。 |
|||
* `-p 8030:8030`: 将容器的 FE HTTP 端口(用于 Web 界面)映射到本地。 |
|||
* `-p 8040:8040`: 将容器的 BE HTTP 端口映射到本地。 |
|||
* `--name starrocks`: 为容器指定一个名字,方便后续操作。 |
|||
* `-d`: 让容器在后台运行。 |
|||
|
|||
#### 步骤 4:进入容器并连接 |
|||
|
|||
1. **进入容器内部**: |
|||
```bash |
|||
docker exec -it starrocks /bin/bash |
|||
``` |
|||
|
|||
2. **使用 MySQL 客户端连接**: |
|||
在容器内部的命令行中,使用预装好的 MySQL 客户端连接至 StarRocks 的 FE。 |
|||
|
|||
```bash |
|||
mysql -P9030 -h127.0.0.1 -uroot --prompt="StarRocks > " |
|||
``` |
|||
* 默认没有密码,直接回车即可。 |
|||
|
|||
#### 步骤 5:验证安装 |
|||
|
|||
连接成功后,你会看到 `StarRocks >` 提示符。执行一个简单的 SQL 来验证: |
|||
|
|||
```sql |
|||
SHOW FRONTENDS\G |
|||
``` |
|||
如果能看到 `Alive: true` 的节点信息,说明 FE 启动成功。 |
|||
|
|||
```sql |
|||
SHOW BACKENDS\G |
|||
``` |
|||
如果能看到 `Alive: true` 的节点信息,说明 BE 也启动成功。 |
|||
|
|||
**恭喜!至此,一个单机版的 StarRocks 集群就已经在 Docker 中运行起来了。** |
|||
|
|||
--- |
|||
|
|||
### 方法二:使用二进制包在本地部署 |
|||
|
|||
这种方法更接近生产环境的部署方式,适合想要深入了解其组成和配置的用户。 |
|||
|
|||
#### 步骤 1:下载二进制包 |
|||
|
|||
访问 StarRocks 官网的 [下载页面](https://www.starrocks.io/zh-CN/download/community) ,选择适合你操作系统(Linux)的版本。通常下载 `.tar.gz` 格式的压缩包。 |
|||
|
|||
例如,使用 `wget` 下载: |
|||
|
|||
```bash |
|||
wget https://releases.starrocks.io/starrocks/StarRocks-3.2.6.tar.gz |
|||
``` |
|||
|
|||
#### 步骤 2:解压安装包 |
|||
|
|||
```bash |
|||
tar -xzvf StarRocks-3.2.6.tar.gz |
|||
cd StarRocks-3.2.6 |
|||
``` |
|||
|
|||
#### 步骤 3:部署 FE(Frontend) |
|||
|
|||
1. **进入 FE 目录并创建元数据目录**: |
|||
```bash |
|||
cd fe && mkdir meta |
|||
``` |
|||
|
|||
2. **修改 FE 配置文件** (`conf/fe.conf`): |
|||
对于本地测试,主要确保端口不被占用即可。如果需要调整 JVM 堆大小(如果机器内存小),可以修改: |
|||
```ini |
|||
JAVA_OPTS = "-Xmx4096m -XX:+UseMembar -XX:SurvivorRatio=8 ..." |
|||
``` |
|||
将 `-Xmx4096m`(最大堆内存)改为 `-Xmx2048m`。 |
|||
|
|||
3. **启动 FE**: |
|||
```bash |
|||
./bin/start_fe.sh --daemon |
|||
``` |
|||
使用 `--daemon` 参数让它在后台运行。 |
|||
|
|||
4. **检查 FE 是否启动成功**: |
|||
```bash |
|||
jps |
|||
``` |
|||
你应该能看到 `StarRocksFe` 进程。 |
|||
也可以查看日志 `log/fe.log`,看到 `thrift server started` 和 `http server started` 等字样表示成功。 |
|||
|
|||
#### 步骤 4:部署 BE(Backend) |
|||
|
|||
1. **打开一个新终端窗口**,进入 BE 目录: |
|||
```bash |
|||
cd StarRocks-3.2.6/be |
|||
``` |
|||
|
|||
2. **创建 BE 数据存储目录**: |
|||
```bash |
|||
mkdir storage |
|||
``` |
|||
|
|||
3. **修改 BE 配置文件** (`conf/be.conf`): |
|||
同样,本地测试主要关注端口和存储路径。确保 `storage_root_path` 配置正确: |
|||
```ini |
|||
storage_root_path = /path/to/your/StarRocks-3.2.6/be/storage |
|||
``` |
|||
|
|||
4. **启动 BE**: |
|||
```bash |
|||
./bin/start_be.sh --daemon |
|||
``` |
|||
|
|||
5. **检查 BE 是否启动成功**: |
|||
```bash |
|||
jps |
|||
``` |
|||
你应该能看到 `StarRocksBe` 进程。 |
|||
查看日志 `log/be.INFO`,看到 ` heartbeat` 相关信息表示成功。 |
|||
|
|||
#### 步骤 5:将 BE 添加到集群中 |
|||
|
|||
现在 FE 和 BE 是两个独立的进程,需要通过 MySQL 客户端告诉 FE 有一个 BE 需要加入集群。 |
|||
|
|||
1. **使用 MySQL 客户端连接 FE**: |
|||
```bash |
|||
# 在FE所在机器的StarRocks-3.2.6目录下操作 |
|||
mysql -P9030 -h127.0.0.1 -uroot |
|||
``` |
|||
|
|||
2. **执行添加 BE 的命令**: |
|||
```sql |
|||
ALTER SYSTEM ADD BACKEND "127.0.0.1:9050"; |
|||
``` |
|||
`9050` 是 BE 的心跳服务端口,默认就是 9050。 |
|||
|
|||
#### 步骤 6:验证集群状态 |
|||
|
|||
在 MySQL 客户端中执行: |
|||
|
|||
```sql |
|||
SHOW FRONTENDS\G |
|||
SHOW BACKENDS\G |
|||
``` |
|||
如果两个节点的 `Alive` 字段均为 `true`,则表明本地集群搭建成功! |
|||
|
|||
--- |
|||
|
|||
### 下一步:使用 StarRocks |
|||
|
|||
1. **访问 Web UI**:在浏览器中打开 `http://127.0.0.1:8030`(Docker 方法端口是 8030,二进制方法默认也是 8030),可以使用内置的 Playground 进行 SQL 查询。 |
|||
2. **创建数据库和表**: |
|||
```sql |
|||
CREATE DATABASE test; |
|||
USE test; |
|||
CREATE TABLE test_table ( |
|||
id INT, |
|||
name VARCHAR(100) |
|||
) DUPLICATE KEY(id) |
|||
DISTRIBUTED BY HASH(id) BUCKETS 8; |
|||
``` |
|||
3. **插入数据并查询**: |
|||
```sql |
|||
INSERT INTO test_table VALUES (1, 'StarRocks'), (2, 'OLAP'); |
|||
SELECT * FROM test_table; |
|||
``` |
|||
|
|||
### 常见问题 |
|||
|
|||
* **端口冲突**:如果 9030, 8030, 8040 等端口被占用,可以在配置文件(方法二)或 Docker 启动命令(方法一)中修改为其他端口。 |
|||
* **内存不足**:如果本地机器内存较小,请务必在 FE 和 BE 的配置文件中调小 `JAVA_OPTS` 和 `mem_limit` 等参数。 |
|||
* **下载慢**:从国内下载 StarRocks 二进制包可能较慢,可以尝试使用镜像源。 |
|||
|
|||
对于初学者,**强烈建议从方法一(Docker)开始**,可以避免很多环境问题,让你快速专注于体验 StarRocks 的功能。 |
Loading…
Reference in new issue