Weaviate 集群部署文档
一、文档介绍
Weaviate 是一个面向 AI 与语义搜索场景的开源向量数据库,它提供基于向量嵌入(Vector Embedding)的数据存储与检索能力,用于替代传统数据库在语义检索、相似度搜索等场景中的局限。Weaviate 是一个支持云原生部署的开源项目,广泛应用于 AI 检索增强生成(RAG)、语义搜索和推荐系统等场景。
Weaviate 通过向量化技术,将文本、图片等非结构化数据转换为高维向量进行存储,并结合向量相似度算法实现高效检索。同时,它支持 GraphQL 查询接口、模块化 AI 模型集成以及容器化部署,能够与 Kubernetes、Docker 等云原生平台无缝集成,为构建大模型应用和智能搜索系统提供高性能的数据基础设施。
此文档旨在规范服务器上 weaviate 部署步骤,标准化操作步骤,为后续标准运维提供支撑。
二、部署说明
-
操作系统: Linux(AlmaLinux 8.8) -
安装包版本: Weaviate 1.27.0 -
服务器: 3 台
|
服务器 |
主机名 |
角色 |
|
10.211.55.101 |
weaviate-node-01 |
主节点 |
|
10.211.55.102 |
weaviate-node-02 |
从节点 |
|
10.211.55.103 |
weaviate-node-03 |
从节点 |
三、配置HOSTS
cat <<"EOF" | tee -a /etc/hosts10.211.55.101 weaviate-node-0110.211.55.102 weaviate-node-0210.211.55.103 weaviate-node-03EOF
四、下载
官网下载地址:https://github.com/weaviate/weaviate/releases/
cd /usr/local/srcwget https://github.com/weaviate/weaviate/releases/download/v1.27.0/weaviate-v1.27.0-linux-amd64.tar.gz
五、安装
cd /usr/local/srctar zxvf weaviate-v1.27.0-linux-amd64.tar.gz -C weaviate-v1.27.0mv weaviate-v1.27.0 /usr/local/ln -s weaviate-v1.27.0 weaviate
六、创建目录
mkdir -p /data/weaviate_data/{conf,data,tmp}
七、修改配置文件
1. 主节点服务器
cd /data/weaviate_data/conf/cat <<EOF | tee envQUERY_DEFAULTS_LIMIT= 25AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED= falsePERSISTENCE_DATA_PATH=/data/weaviate_data/data/DEFAULT_VECTORIZER_MODULE=noneAUTHENTICATION_APIKEY_ENABLED=trueAUTHENTICATION_APIKEY_ALLOWED_KEYS=WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkihAUTHENTICATION_APIKEY_USERS=hello@dify.aiAUTHORIZATION_ADMINLIST_ENABLED=trueAUTHORIZATION_ADMINLIST_USERS=hello@dify.ai# 集群节点名称CLUSTER_HOSTNAME=node1CLUSTER_GOSSIP_BIND_PORT=7100CLUSTER_DATA_BIND_PORT=7101RAFT_JOIN=node1,node2,node3RAFT_BOOTSTRAP_EXPECT=3EOF
2. 从节点服务器
cd /data/weaviate_data/conf/cat <<EOF | tee envQUERY_DEFAULTS_LIMIT= 25AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED= falsePERSISTENCE_DATA_PATH=/data/weaviate_data/data/DEFAULT_VECTORIZER_MODULE=noneAUTHENTICATION_APIKEY_ENABLED=trueAUTHENTICATION_APIKEY_ALLOWED_KEYS=WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkihAUTHENTICATION_APIKEY_USERS=hello@dify.aiAUTHORIZATION_ADMINLIST_ENABLED=trueAUTHORIZATION_ADMINLIST_USERS=hello@dify.ai# 集群节点名称(不同主机需要修改)CLUSTER_HOSTNAME=node2CLUSTER_JOIN=weaviate-node-01:7100CLUSTER_GOSSIP_BIND_PORT=7100CLUSTER_DATA_BIND_PORT=7101RAFT_JOIN=node1,node2,node3RAFT_BOOTSTRAP_EXPECT=3EOF
八、创建服务
cd /data/weaviate_data/cat <<EOF | teeweaviate.service[Unit]Description=weaviateAfter=network.target[Service]Type=simpleUser=rootEnvironmentFile=-/data/weaviate_data/conf/envExecStart=/usr/local/weaviate/weaviate \--host 0.0.0.0 \--port 8080 \--scheme httpExecReload=/bin/kill -HUP $MAINPIDRestart=on-failure[Install]WantedBy=multi-user.targetEOFcp weaviate.service /usr/lib/systemd/system/systemctl daemon-reload
九、启动服务
(一) 启动服务
systemctl enable weaviate --nowsystemctl status weaviate
(二) 验证集群状态
AUTH_KEY=$(cat /data/weaviate_data/conf/env | grep AUTHENTICATION_APIKEY_ALLOWED_KEY | awk -F'=' '{print $2}')curl -H "Authorization: Bearer ${AUTH_KEY}" http://127.0.0.1:8080/v1/nodes
输出以下内容,表示集群启动成功
{"nodes":[{"batchStats":{"queueLength":0,"ratePerSecond":0},"name":"node1","shards":null,"status":"HEALTHY","version":"1.27.0"},{"batchStats":{"queueLength":0,"ratePerSecond":0},"name":"node2","shards":null,"status":"HEALTHY","version":"1.27.0"},{"batchStats":{"queueLength":0,"ratePerSecond":0},"name":"node3","shards":null,"status":"HEALTHY","version":"1.27.0"}]}
夜雨聆风

