Ubuntu 22.04 安装 Havenask 1.2.0 指南
Ubuntu 22.04 按官方 create_container.sh + hape 形态从零部署 Havenask v1.2.0 单机集群:建表/写入/查询全链路实测、重启持久化、ZooKeeper 堆限制与排障实录。
Ubuntu 22.04 安装 Havenask 1.2.0 指南
目标:在一台 Ubuntu 22.04 服务器上,按官方唯一分发形态(Docker 镜像 + hape 编排工具)从零部署 Havenask v1.2.0 单机检索集群,完成建表、写入、查询全链路验证与重启持久化验证,并沉淀完整排障实录。全文命令与回显均在 Ubuntu 22.04 + Havenask v1.2.0 环境实测通过(实测日期 2026-10-23)。
一、环境信息
- 操作系统:Ubuntu 22.04(x86_64)
- Havenask 版本:v1.2.0(官方最新稳定版,2024-04-10 发布;版本实查日期 2026-10-23)
- 运行镜像:
registry.cn-hangzhou.aliyuncs.com/havenask/ha3_runtime:1.2.0(解压后 8.11GB) - Docker 版本(实测):
Docker version 29.8.1, build 4a63305 - 硬件基线:4 核 CPU / 8GB 内存 / 60GB 磁盘(官方最低要求见 2.1)
- 部署形态:官方
create_container.sh脚本创建--net=host运行环境,hape 在其内拉起单机伪集群(admin ×3 + searcher + qrs + swift broker + ZooKeeper) - 关键目录:
/ha3_install(引擎与 hape 安装根)、/root/havenask/havenask_data_store(索引与元数据存储根) - 端口规划(实测监听,
--net=host直接占用宿主端口):
| 端口 | 进程/角色 | 用途 |
|---|---|---|
| 2181 | ZooKeeper(hape 测试实例) | 集群协调 |
| 45700 | suez_admin_worker(havenask admin) | 管理面 HTTP(catalog/调度) |
| 45800 | ha_sql(QRS) | SQL 查询入口(HTTP) |
| 45801 | ha_sql(QRS) | QRS arpc |
| 45898 | ha_sql(searcher) | searcher arpc |
| 45899 | ha_sql(searcher) | searcher HTTP |
| 45900 | ha_sql(searcher) | searcher 心跳端口(健康检查路径 /HeartbeatService/heartbeat) |
| 45901 | ha_sql(searcher) | searcher 写入通道(gig grpc) |
二、前置条件
2.1 系统要求(官方口径)
官方 README 对 v1.2.0 的环境要求(来源:GitHub README,查询日期 2026-10-23):
| 镜像 | CPU | 内存 | 磁盘 |
|---|---|---|---|
| ha3_runtime(运行) | >2 核 | >4G | >20G |
| ha3_dev(开发编译) | >2 核 | >10G | >50G |
另外官方要求:使用前确保设备已安装并启动 Docker 服务;单机模式需确保本机能免密 ssh 登录自己(见 2.3)。
2.2 安装并确认 Docker
Ubuntu 22.04 上若尚未安装 Docker,使用 Ubuntu 官方仓库标准命令安装:
# Ubuntu 22.04 标准安装命令(已装可跳过)
apt update && apt install -y docker.io
systemctl enable --now docker
⚠️ 本篇实测环境的 Docker 版本为 29.8.1(
docker --version实测回显Docker version 29.8.1, build 4a63305)。 Havenask 官方脚本只要求存在可用的docker命令,对版本无硬性约束。
确认 Docker 服务可用:
docker --version
实测回显:
Docker version 29.8.1, build 4a63305
2.3 配置本机免密 ssh 自登录(官方单机模式要求)
官方要求单机模式能免密 ssh 登录自己。生成密钥对并把公钥写入本机 authorized_keys:
# 生成密钥对(无口令)
ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa -q
# 追加公钥到本机授权列表
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# 验证免密自登录
ssh -o StrictHostKeyChecking=no -o BatchMode=yes root@127.0.0.1 "echo ssh-ok && hostname"
实测回显(验证命令):
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
ssh-ok
ops
自登录成功输出 ssh-ok 即满足前置。
2.4 检查端口占用
hape 单机模式以 --net=host 运行,第一节表格中的端口将直接占用宿主机。部署前确认未被占用:
ss -ltn | grep -E ':(2181|45700|45800|45801|4589[89]|45900|45901)\b'
实测回显(部署前,无占用则无输出,命令静默返回;部署后同一命令的回显见 5.5)。
三、版本选型说明
3.1 官方 Release 与镜像 tag
官方 Release 时间线(来源:GitHub releases.atom,查询日期 2026-10-23):
| 版本 | 发布时间 | 说明 |
|---|---|---|
| v0.1 | 2022-11-08 | 首次开源 |
| v0.2.2 | 2023-01-04 | 早期迭代 |
| v0.3.0 | 2023-03-23 | 早期迭代 |
| 1.0.0 | 2023-12-11 | 首个 1.x |
| 1.1.0 | 2024-03-08 | 1.x 迭代 |
| v1.2.0 | 2024-04-10 | 当前最新稳定版,本篇实测版本 |
镜像仓库为阿里云杭州 registry:registry.cn-hangzhou.aliyuncs.com/havenask/ha3_runtime:<tag>,latest 与 1.2.0 当前指向同一版本。v1.2.0 发布件 create_container.sh 内默认锁定 IMAGE_VERSION="1.2.0",因此按官方脚本部署即为 v1.2.0。
3.2 ha3_runtime 与 ha3_dev 如何选
| 镜像 | 用途 | 资源要求 | 适用人群 |
|---|---|---|---|
| ha3_runtime | 直接运行问天引擎可执行文件,无需编译 | 内存>4G、磁盘>20G | 部署/运维,本篇主线 |
| ha3_dev | 含编译依赖库与头文件,用于编译问天引擎 | 内存>10G、磁盘>50G | 二次开发/源码定制 |
关键差异:只想搭建可用的检索服务选 ha3_runtime;要改引擎源码、编译自定义版本才需要 ha3_dev。
四、方案 A:官方镜像部署(推荐主线,实测)
4.1 下载官方部署脚本
官方唯一推荐入口是随 v1.2.0 Release 发布的 create_container.sh:
cd /root
wget https://github.com/alibaba/havenask/releases/download/v1.2.0/create_container.sh
chmod +x create_container.sh
脚本来自 GitHub 官方 Release 发布件(v1.2.0),默认镜像锁定为 registry.cn-hangzhou.aliyuncs.com/havenask/ha3_runtime:1.2.0。
4.2 运行官方脚本创建运行环境
./create_container.sh havenask-120-runtime
实测回显:
Start to run scrip
Info: Repo locatation: /opt/data/quzuo/tmp
Info: Container entry: /opt/data/quzuo/tmp/havenask/havenask-120-runtime
Begin pull image: registry.cn-hangzhou.aliyuncs.com/havenask/ha3_runtime:1.2.0
1.2.0: Pulling from havenask/ha3_runtime
Digest: sha256:a4fd0269ac54593c894510df783d7aa6e33169cecf9731f7d1a6f08bbec51734
Status: Image is up to date for registry.cn-hangzhou.aliyuncs.com/havenask/ha3_runtime:1.2.0
registry.cn-hangzhou.aliyuncs.com/havenask/ha3_runtime:1.2.0
Begin initialize container:
useradd: user 'root' already exists
usermod: no changes
INFO start container success
⚠️
useradd: user 'root' already exists与usermod: no changes是脚本初始化的预期回显:脚本按当前登录用户的 UID 在镜像内重建同名用户,当以 root 身份(UID 0)执行时 root 已存在,提示可忽略,不影响后续流程(初始化以最后一行INFO start container success收尾即成功)。
脚本做了四件事(对应脚本源码行为,来源:v1.2.0 发布件 create_container.sh):
| 动作 | 说明 |
|---|---|
| 拉取镜像 | docker pull registry.cn-hangzhou.aliyuncs.com/havenask/ha3_runtime:1.2.0 |
| 启动运行环境 | 以 --net=host --privileged、--ulimit nofile=655350、--ulimit memlock=-1 等参数启动,并挂载 $HOME 与初始化脚本 |
| 执行初始化 | 在环境内创建同 UID 用户、写入 sudo 免密、设置 PS1,并在 /mnt/ram 挂载 20g ramfs(供索引构建临时加速,按需占用内存) |
| 生成入口脚本 | 在脚本目录生成 havenask-120-runtime/sshme(进入环境)与 havenask-120-runtime/stopContainer.sh(停止并删除环境) |
4.3 进入运行环境
./havenask-120-runtime/sshme
sshme 内部等价于以部署用户身份进入 Havenask 运行环境(脚本内容实测为 docker exec --user <用户> -it havenask-120-runtime sh -c 'cd ~ && /bin/bash')。进入后提示符形如 [root@havenask ~]#,引擎安装在 /ha3_install。
4.4 启动单机集群
/ha3_install/hape start havenask
实测回显(节选,全流程约 25 秒;组件按 zk → swift → havenask admin → bs 顺序逐个就绪):
[2026-10-23 18:25:18,611] [INFO] [domain_config.py:__init__:23]: Hape conf directory: /ha3_install/hape_conf/default
[2026-10-23 18:25:18,663] [INFO] [infra_manager.py:start_zookeeper:36]: If you don't want to use test zookeeper or hape starts test zookeeper timeout, please start zookeeper by hand and fill domainZkRoot in global.conf
[2026-10-23 18:25:21,147] [INFO] [infra_manager.py:start_zookeeper:43]: Succeed to start test zookeeper
[2026-10-23 18:25:21,170] [INFO] [cluster_base.py:start:93]: Begin to start swift admin
[2026-10-23 18:25:28,703] [INFO] [retry.py:retry:13]: Check [Swift admin is ready] succeed
[2026-10-23 18:25:28,703] [INFO] [cluster_base.py:start:93]: Begin to start havenask admin
[2026-10-23 18:25:35,933] [INFO] [retry.py:retry:13]: Check [Havenask admin is ready] succeed
[2026-10-23 18:25:35,947] [INFO] [catalog_manager.py:create_default_catalog:34]: Succeed to create default catalog
[2026-10-23 18:25:35,951] [INFO] [catalog_manager.py:_create_default_database:53]: Succeed to create default database
[2026-10-23 18:25:35,963] [INFO] [domain.py:keep_bs_master:70]: Bs admin is not ready, begin to start default bs cluster
[2026-10-23 18:25:43,199] [INFO] [retry.py:retry:13]: Check [Bs admin is ready] succeed
启动完成后,hape 会以独立工作进程形态拉起 QRS、searcher 与 swift broker。用状态命令确认:
/ha3_install/hape gs havenask
实测回显(建表前):
{
"hint": "Group database Role database_partition_0 has unready containers, or mabye lack of candidate nodes",
"leaderAddress": "http://127.0.1.1:45700",
"serviceZk": "zfs://127.0.1.1:2181/havenask/havenask-sql-local/appmaster",
"hippoZk": "zfs://127.0.1.1:2181/havenask/havenask-sql-local/hippo",
"clusterStatus": "NOT_READY",
"sqlClusterInfo": {
"admin": [...],
"qrs": {...},
"database": {...}
}
}
⚠️ 此时的
NOT_READY是正常中间态:searcher 尚未加载任何表(used_tables为空),集群要等第一张表创建后才会转为 READY。不要在此反复重启,直接进入第五章建表即可。
五、建表与读写冒烟验证
5.1 创建示例表
官方示例 schema 位于 /ha3_install/example/cases/normal/in0_schema.json(含 TEXT/PRIMARY_KEY64/ATTRIBUTE/PACK/SUMMARY 索引定义,全文见本专栏配置参数详解篇)。建表命令:
/ha3_install/hape create table -t in0 -s /ha3_install/example/cases/normal/in0_schema.json -p 1
实测回显(节选):
[2026-10-23 18:40:00,105] [INFO] [retry.py:retry:8]: Begin to check [qrs achieve target replicas]
[2026-10-23 18:40:02,444] [INFO] [domain.py:check_table_ready:134]: Table not ready in all qrs or searchers by now
[2026-10-23 18:40:02,444] [INFO] [domain.py:check_table_ready:135]: If it takes long, you can execute `gs havenask` to find the reason
[2026-10-23 18:40:09,666] [INFO] [retry.py:retry:13]: Check [Table in0 ready] succeed
[2026-10-23 18:40:09,666] [INFO] [domain.py:create_table:142]: Table in0 is ready
[2026-10-23 18:40:09,667] [INFO] [domain.py:create_table:143]: Before read & write table in0, please confirm havenask cluster ready by using gs havenask subcommand
确认集群转 READY:
/ha3_install/hape gs havenask
/ha3_install/hape gs table -t in0
实测回显(关键字段):
"clusterStatus": "READY"
{
"in0": {
"status": "READY"
}
}
5.2 写入数据
/ha3_install/sql_query.py --query "insert into in0 (createtime,hits,id,title,subject)values(1,2,4,'test', 'test')"
实测回显:
Request address:[http://127.0.0.1:45800/QrsService/searchSql] query:[insert into in0 (createtime,hits,id,title,subject)values(1,2,4,'test', 'test')&&kvpair=databaseName:database;formatType:string]
USE_TIME: 725.511ms, ROW_COUNT: 1, HAS_SOFT_FAILURE: 0, SOFT_FAILURE_CODES: [], COVERAGE: 1
BUILD_WATERMARK: in0:1792752017792668;
------------------------------- TABLE INFO ---------------------------
total:1, rows:[0, 1), cols:1
ROWCOUNT (int64) |
1 |
ROW_COUNT: 1 表示写入成功。
5.3 查询数据
/ha3_install/sql_query.py --query "select * from in0"
实测回显:
Request address:[http://127.0.0.1:45800/QrsService/searchSql] query:[select * from in0&&kvpair=databaseName:database;formatType:string]
USE_TIME: 31.161ms, ROW_COUNT: 1, HAS_SOFT_FAILURE: 0, SOFT_FAILURE_CODES: [], COVERAGE: 1
------------------------------- TABLE INFO ---------------------------
total:1, rows:[0, 1), cols:5
title (multi_char) | subject (multi_char) | id (uint32) | hits (uint32) | createtime (uint64) |
null | null | 4 | 2 | 1 |
💡 说明:实测中 TEXT 类型列(title/subject)在 SQL 字符串结果里显示为
null,ATTRIBUTE 列(id/hits/createtime)正常返回。这是该版本 SQL 结果展示层的行为,全文命中判断不受影响(where query('default','test')可正常命中该行,见常见问题 9.4)。
5.4 端口监听核验
ss -ltn | grep -E ':(2181|45700|45800|45801|4589[89]|45900|45901)\b'
实测回显(部署完成后):
LISTEN 0 256 0.0.0.0:45700 0.0.0.0:*
LISTEN 0 256 0.0.0.0:45800 0.0.0.0:*
LISTEN 0 256 0.0.0.0:45798 0.0.0.0:*
LISTEN 0 256 0.0.0.0:45900 0.0.0.0:*
LISTEN 0 256 0.0.0.0:45898 0.0.0.0:*
LISTEN 0 50 *:2181 *:*
LISTEN 0 4096 *:45801 *:*
LISTEN 0 4096 *:45901 *:*
(45801/45901 各有多行监听,为 qrs 与 searcher 的多协议监听,属正常现象;45798 为 admin 内部端口。)
六、方案 B:ha3_dev 开发镜像与源码编译(备选)
当需要修改问天引擎源码并编译自定义版本时,使用官方 ha3_dev 镜像。官方定位:开发测试镜像,包含编译所需依赖库与头文件,编译方法见官方 QuickStart(https://havenask.net/#/doc/sql/guide/quickstart)。
创建 dev 环境与 runtime 完全同构,仅第二参数换成 dev 镜像(create_container.sh 支持显式指定镜像):
cd /root
wget https://github.com/alibaba/havenask/releases/download/v1.2.0/create_container.sh
chmod +x create_container.sh
./create_container.sh havenask-120-dev registry.cn-hangzhou.aliyuncs.com/havenask/ha3_dev:1.2.0
./havenask-120-dev/sshme
⚠️ dev 镜像要求内存>10G、磁盘>50G;从源码编译问天引擎耗时以小时计,且需熟悉官方 QuickStart 的编译链路。仅部署检索服务时无需进入本方案。
七、方案对比与选择建议
| 维度 | 方案 A:ha3_runtime 镜像 | 方案 B:ha3_dev 镜像 |
|---|---|---|
| 用途 | 部署运行检索服务 | 编译定制引擎源码 |
| 资源门槛 | 内存>4G、磁盘>20G | 内存>10G、磁盘>50G |
| 上手耗时 | 分钟级(实测从下载到查询约 15 分钟) | 小时级(含编译) |
| 升级方式 | 更换镜像 tag | 重新拉源码编译 |
| 适用对象 | 绝大多数部署场景 | 引擎二次开发团队 |
选择建议:无源码定制需求一律选方案 A;方案 B 仅在需要改引擎内部行为(分词插件、打分逻辑等)时启用。
八、日常启停、JVM 与数据持久化
8.1 集群启停与重启
hape 提供三组生命周期命令(--help 实测回显):
$ /ha3_install/hape stop --help
Usage: hape stop [OPTIONS] COMMAND [ARGS]...
Options:
-h, --help Show this message and exit.
Commands:
build
container
havenask
swift
hape stop havenask:只停检索集群进程,不清理 ZooKeeper 与数据文件;hape start havenask:再次拉起;hape restart havenask:重启并从 ZooKeeper 恢复服务(实测有效)。
重启验证(实测):
/ha3_install/hape restart havenask
实测回显(节选):
[2026-10-23 18:44:29,561] [INFO] [retry.py:retry:13]: Check [Havenask admin is ready] succeed
[2026-10-23 18:44:29,568] [INFO] [catalog_manager.py:create_default_catalog:34]: Succeed to create default catalog
[2026-10-23 18:44:29,576] [INFO] [suez_cluster_manager.py:create_or_update_default_clusters:23]: Create default cluster
重启后复查状态与数据:
$ /ha3_install/hape gs havenask
"clusterStatus": "READY",
$ /ha3_install/sql_query.py --query "select id,hits from in0 where id>0"
USE_TIME: 619.925ms, ROW_COUNT: 1, ...
结论:表结构(schema)与集群拓扑在重启后自动恢复;实时写入且尚未触发全量构建的文档会随 searcher 进程重启丢失(实测 id=4 一行在重启后查不到,重新插入即恢复),生产数据持久化必须依赖索引构建链路(见 8.3 与常见问题 9.5)。
8.2 数据与配置目录
| 路径 | 内容 |
|---|---|
/ha3_install/hape_conf/default/global.conf | hape 全局配置(服务名/镜像/dataStoreRoot/资源默认值) |
/ha3_install/hape_conf/default/cluster_templates/ | searcher/qrs/bs/swift 的 hippo 进程模板(资源配额、端口、健康检查) |
/root/havenask/havenask_data_store/ | 数据存储根:database_store/(索引数据)、suez_cluster_store/(部署配置)、templates/(表模板) |
/ha3_install/example/cases/ | 官方示例(normal/vector/custom_analyzer/llm) |
8.3 内置 Java 进程(ZooKeeper)的堆内存限制
hape 测试用 ZooKeeper 是整个部署里唯一的 Java 进程,启动脚本为 /ha3_install/usr/local/share/zookeeper/start.sh,其中第 34 行的 java 命令未显式设置堆参数,JVM 默认取宿主内存的 1/4,在大内存机器上会放大占用。建议显式限制为 512MB——把第 34 行行首的 nohup java 改为 nohup java -Xms256m -Xmx512m :
cd /ha3_install/usr/local/share/zookeeper
cp start.sh start.sh.bak
sed -i '34s/nohup java /nohup java -Xms256m -Xmx512m /' start.sh
sed -n '34p' start.sh | cut -c1-80
实测回显:
nohup java -Xms256m -Xmx512m -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,
修改后重启 ZooKeeper 进程使其生效,并用 ps 验证实际生效值:
kill $(ps aux | grep QuorumPeerMain | grep -v grep | awk '{print $2}')
sleep 3 && ./start.sh 2181 2181
ps aux | grep QuorumPeerMain | grep -v grep | grep -oE '\-Xms[0-9]+m -Xmx[0-9]+m'
实测回显:
-Xms256m -Xmx512m
⚠️ 重启 ZooKeeper 后各组件需要重新注册(约 1 分钟内
hape gs havenask回到 READY)。若 swift admin 停留在 NOT_READY 导致写入报async writer timeout,按常见问题 9.3 执行hape restart swift恢复。
8.4 宿主机重启后的恢复
运行环境随宿主重启而停止。恢复步骤:先执行 havenask-120-runtime/stopContainer.sh 清掉残留(内容实测为 docker stop havenask-120-runtime;docker rm -fv havenask-120-runtime),再按 4.2 重新运行 create_container.sh(镜像已本地缓存,秒级完成),进入后执行 hape start havenask,最后 hape create table 校验表是否存在(表 schema 持久化在 /root/havenask/havenask_data_store,重启宿主不丢)。
九、常见问题(排障实录)
9.1 脚本报 useradd: user 'root' already exists
现象:运行 create_container.sh 时输出 useradd: user 'root' already exists、usermod: no changes。
定位:脚本会以当前登录用户 UID 在镜像内重建同名用户;root(UID 0)必然已存在。
解决:预期回显,无需处理;以末行 INFO start container success 判断成败。
9.2 启动后长时间 NOT_READY
现象:hape gs havenask 显示 clusterStatus: NOT_READY,hint 为 Group database Role database_partition_0 has unready containers...。
定位:searcher 未加载任何表(建表前的正常态);hape start 日志里 swift/havenask/bs admin 均已 ready。
解决:直接执行建表命令(5.1),建表后自动转 READY,实测从建表到 READY 约 10 秒。
9.3 写入报 async writer timeout,hape gs swift 报 Swift admin not ready
现象:insert 返回 write message failed, table [in0], ec[gig has error, ... async writer timeout, timeoutInUs 10000000, checkpoint 1],同时 hape gs swift 报 [ERROR] Swift admin not ready;swift admin 日志出现 write slot_launched_metas failed.。
定位:ZooKeeper 进程被强杀(如手工 kill)后,swift 的 hippo master 的 zk 会话失效且无法重写调度状态,broker 写入链路断裂;此时检索集群 gs 仍为 READY,但写入必超时。
解决:重启 swift 集群恢复:
/ha3_install/hape restart swift
实测回显(节选):
[2026-10-23 18:48:38,679] [INFO] [docker_util.py:start_process:103]: Succeed to start process swift_admin
[2026-10-23 18:48:38,691] [INFO] [retry.py:retry:13]: Check [Swift admin is ready] succeed
恢复后复测写入:USE_TIME: 3726.947ms, ROW_COUNT: 1,查询 ROW_COUNT: 2(此前两条均已写入成功)。经验:永远不要手工 kill ZooKeeper 进程;确需重启 zk 时,重启后立即 hape restart swift + hape restart havenask。
9.4 TEXT 列查询显示 null
现象:select * from in0 中 title/subject 显示 null,但 id/hits/createtime 正常。
定位:TEXT 字段走全文索引与摘要链路,不在 ATTRIBUTE 投影里返回;该版本 SQL 字符串结果对 TEXT 列展示为 null。
解决:属展示层行为,不影响检索命中。全文检索用 query() 函数验证:
/ha3_install/sql_query.py --query "select id,hits from in0 where query('default','test')"
实测回显(命中此前写入的行):
USE_TIME: 12.271ms, ROW_COUNT: 1, HAS_SOFT_FAILURE: 0, SOFT_FAILURE_CODES: [], COVERAGE: 1
另注意:match() 不是本 SQL 方言的合法函数,实测报 SqlParseException: Encountered "match",全文条件一律用 query('索引名','词')。
9.5 实时写入的数据重启后消失
现象:hape restart havenask 后 select 行数变 0,重新 insert 后恢复。
定位:SQL insert 走实时写链路(swift → searcher 内存索引),未触发全量构建时数据不落盘。
解决:生产场景必须配置离线/全量数据源(hape create table -f <全量数据路径> 支持 offline table),或依赖集群周期性全量构建;测试场景重启后重新写入即可。
9.6 端口被占用
现象:hape start havenask 启动组件时失败或健康检查不通过。
定位:ss -ltnp 检查 2181/45700/45800/45801/45898-45901 是否被其他进程占用(--net=host 形态下冲突即失败)。
解决:释放端口,或修改 /ha3_install/hape_conf/default/global.conf(qrsHttpPort 等端口类参数由模板 cluster_templates/hippo/*.json 与全局变量共同决定,改动后删除集群重新 hape start)。
十、卸载与清理
按需逐级删除(--help 实测回显):
# 删除单张表
/ha3_install/hape delete table -t in0
# 删除检索集群(停进程并清理 zk 与数据文件)
/ha3_install/hape delete havenask
# 删除 swift 集群
/ha3_install/hape delete swift
# 一次性删除全部(等价于上述合集,含 bs)
/ha3_install/hape delete all
$ /ha3_install/hape delete all --help
Usage: hape delete all [OPTIONS]
Options:
-c, --config TEXT Path of hape config. Will use default if not specified
-v, --verbose Enable debug level logging
-h, --help Show this message and exit.
最后删除运行环境本体(脚本目录自动生成的停止脚本):
./havenask-120-runtime/stopContainer.sh
如需彻底清理本地镜像:docker rmi registry.cn-hangzhou.aliyuncs.com/havenask/ha3_runtime:1.2.0。
十一、参考链接
- 官方仓库 README(Get Started):
https://github.com/alibaba/havenask(查询日期 2026-10-23) - v1.2.0 Release 发布件 create_container.sh:
https://github.com/alibaba/havenask/releases/download/v1.2.0/create_container.sh - GitHub Releases 页:
https://github.com/alibaba/havenask/releases - 官方文档站:
https://havenask.net(快速开始与单机模式说明) - 站内同类部署文档:《Elasticsearch 9.5.4 Docker Compose 部署指南》、《OpenSearch 2.x Docker Compose 部署指南》
站内相关:《Havenask 介绍与选型指南》、《Ubuntu 22.04 安装 Havenask 1.2.0 指南》、《Havenask 1.2.0 配置参数详解》、《Havenask 1.2.0 常用 CLI 命令详解》