手把手教你在Manjaro上安装Weaviate,新手必看教程 (2025年05月)

云信安装大师
90
AI 质量分
10 5 月, 2025
3 分钟阅读
0 阅读

手把手教你在Manjaro上安装Weaviate,新手必看教程 (2025年05月)

引言

Weaviate是一个开源的向量搜索引擎,它可以帮助你构建基于语义搜索的应用程序。本教程将详细指导你在Manjaro Linux系统上安装和配置Weaviate,即使你是Linux新手也能轻松上手。

准备工作

在开始之前,请确保你的系统满足以下要求:

  • Manjaro Linux (测试版本:Manjaro 23.1)
  • 至少4GB内存(推荐8GB以上)
  • 至少10GB可用磁盘空间
  • Docker已安装(我们将使用Docker运行Weaviate)
  • 基本的终端操作知识

步骤1:安装Docker

如果尚未安装Docker,请按照以下步骤操作:

代码片段
# 更新系统包列表
sudo pacman -Syu

# 安装Docker和相关依赖
sudo pacman -S docker docker-compose

# 启动Docker服务并设置为开机自启
sudo systemctl start docker
sudo systemctl enable docker

# 将当前用户添加到docker组(避免每次使用sudo)
sudo usermod -aG docker $USER

# 退出当前终端并重新登录使更改生效

验证Docker是否安装成功:

代码片段
docker --version
docker-compose --version

注意事项:
– 如果遇到权限问题,可能需要重新登录或重启系统
– Manjaro默认使用pacman包管理器,与其他发行版的命令不同

步骤2:创建Weaviate配置文件

我们将使用docker-compose.yml文件来配置Weaviate实例:

代码片段
# 创建一个专门目录存放Weaviate配置
mkdir ~/weaviate && cd ~/weaviate

# 创建docker-compose.yml文件
nano docker-compose.yml

将以下内容粘贴到文件中:

代码片段
version: '3.4'
services:
  weaviate:
    image: semitechnologies/weaviate:latest
    ports:
      - "8080:8080"
    environment:
      QUERY_DEFAULTS_LIMIT: 25
      AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true'
      PERSISTENCE_DATA_PATH: '/var/lib/weaviate'
      DEFAULT_VECTORIZER_MODULE: 'none'
      CLUSTER_HOSTNAME: 'node1'
    volumes:
      - weaviate_data:/var/lib/weaviate
    restart: on-failure:0

volumes:
  weaviate_data:

配置说明:
ports: Weaviate将在8080端口运行
AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: ‘true’表示允许匿名访问(生产环境应设为false)
PERSISTENCE_DATA_PATH: Weaviate数据存储路径
DEFAULT_VECTORIZER_MODULE: ‘none’表示不使用默认向量化模块(可改为text2vec-transformers等)

步骤3:启动Weaviate服务

代码片段
# 在包含docker-compose.yml的目录中运行以下命令启动服务
docker-compose up -d

# 检查服务状态(应该看到weaviate容器正在运行)
docker ps

# 查看日志确认没有错误(按Ctrl+C退出日志查看)
docker-compose logs -f weaviate

常见问题解决:
1. 端口冲突:如果8080端口被占用,修改docker-compose.yml中的端口映射(如”8081:8080″)
2. 内存不足:如果启动失败,尝试增加系统内存或添加交换空间:

代码片段
sudo fallocate -l 4G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile && echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab<br>
   

步骤4:验证安装

通过curl命令测试Weaviate是否正常运行:

代码片段
curl http://localhost:8080/v1/meta | jq .

如果没有安装jq工具,可以先安装它:

代码片段
sudo pacman -S jq

预期输出应该包含类似这样的信息:

代码片段
{
  "hostname": "http://[::]:8080",
  "modules": {},
  "version": "1.18.0"
}

(可选)步骤5:使用Python客户端连接测试

如果你想用Python测试连接,可以按照以下步骤:

首先安装Python和pip:

代码片段
sudo pacman -S python python-pip git nano curl wget jq 

然后创建一个Python测试脚本:

代码片段
nano test_weaviate.py 

粘贴以下内容:

代码片段
import weaviate

client = weaviate.Client("http://localhost:8080")

print("Schema:", client.schema.get())
print("Meta:", client.get_meta())

安装Python客户端:

代码片段
pip install weaviate-client numpy requests 

运行测试脚本:

代码片段
python test_weaviate.py 

(可选)步骤6:图形界面管理工具(WCS)

如果你想要图形界面管理Weaviete:

  1. Weaviare Console: Weaviare官方提供的Web UI(需要商业许可证)
  2. Portainer: Docker管理工具,可以监控容器状态(免费)

安装Portainer:

代码片段
docker volume create portainer_data 
docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce 

访问http://localhost:9000即可管理所有Docker容器,包括Weaviare.

Weaviare常用命令参考

命令 说明
docker-compose up -d|后台启动服务
docker-compose down|停止并删除容器
docker-compose logs -f weaviare|查看实时日志
curl http://localhost:8080/v1/meta | jq .|检查服务状态

(可选)高级配置

A.启用持久化存储

默认配置已经启用了持久化存储(通过Docker卷),数据会保存在:

代码片段
/var/lib/docker/volumes/weaviare_weaviare_data/_data/

B.备份与恢复

备份数据卷:

代码片段
docker run --rm --volumes-from weaviare-weaviare-1 -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /var/lib/weaviare 

恢复数据卷:

代码片段
docker run --rm --volumes-from weaviare-weaviare-1 -v $(pwd):/backup ubuntu bash -c "cd / && tar xvf /backup/backup.tar" 

C.性能优化

修改内存限制(编辑docker-compose.yml):

代码片段
environment:
    MEMORY_LIMIT_MB: '4096' #设置4GB内存限制  

D.启用认证(生产环境必须)

修改environment部分添加:

代码片段
environment:
    AUTHENTICATION_APIKEY_ENABLED:'true'  
    AUTHENTICATION_APIKEY_ALLOWED_KEYS:'your-secret-key'  
    AUTHENTICATION_APIKEY_USERS:'admin@example.com'  

然后客户端连接时需要提供API key.

(可选)常见问题排查

Q1:Docker容器无法启动

检查日志:journalctl -u docker.service
常见原因包括:

  • SELinux策略冲突(Manjaro默认不启用)
  • AppArmor策略冲突(尝试临时禁用:sudo systemctl stop apparmor)
  • Docker存储驱动问题(检查:docker info | grep Storage)

Q2:端口冲突

查看占用端口的进程:ss-tulnp | grep :8080
终止占用进程或修改Weaviare的监听端口.

Q3:”Connection refused”错误

确认服务是否真的在运行:curl http://localhost:8080/v1/meta
检查防火墙规则:sudo ufw status

Q4:”Out of memory”错误

增加交换空间或减少MEMORYLIMITMB值.

(可选)升级与维护

升级到最新版本:

停止现有服务

代码片段
cd ~/weaviare  
docker-compose down  

拉取新镜像

代码片段
docker pull semitechnologies/weaviare:latest  

重新启动

代码片段
docker-compose up-d  

定期维护建议:

每月检查一次新版本
定期备份数据卷
监控资源使用情况

(可选)卸载说明

完全卸载Weaviare:

停止并删除容器

代码片段
cd ~/weaviare  
docker-compose down-v #同时删除数据卷   

删除相关镜像

代码片段
docker rmi semitechnologies/weaviare   

清理残留文件

代码片段
rm-rf ~/weaviare   

(可选)下一步学习建议

成功安装后,你可以:

  1. 学习Schema设计:了解如何设计数据结构https://www.semi.technology…
  2. 导入示例数据:尝试导入一些样本数据进行测试https://github.com/semi-technologies…
  3. 探索向量搜索:学习如何使用向量相似性搜索https://www.semi.technology…
  4. 集成机器学习模型:添加text2vec-transformers等模块https://www.semi.technology…

(可选)社区支持

遇到问题时可以寻求帮助:

官方文档:https://www.semi.technology…
GitHub Issues:https://github.com/semi-technologies…
*Slack社区:https://join.slack.com/t/semitechnologies/shared_invite…


通过这篇详细的教程,你应该已经成功在Manjaro上安装了Weaviare。如果有任何问题或建议,欢迎在评论区留言交流!

原创 高质量