Browse Source

install starrocks

master
FanBin 5 days ago
parent
commit
353aba83b7
  1. 203
      config/install_starrocks

203
config/install_starrocks

@ -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…
Cancel
Save