手把手教你在Apple Silicon M2上安装Milvus,新手必看教程 (2025年05月)

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

手把手教你在Apple Silicon M2上安装Milvus,新手必看教程 (2025年05月)

引言

Milvus 是一款开源的向量数据库,专为AI应用设计,支持高效的向量相似度搜索。随着Apple Silicon芯片的普及,许多开发者希望在M2芯片的Mac上本地运行Milvus进行开发和测试。本教程将详细介绍在Apple Silicon M2 Mac上安装和配置Milvus的全过程。

准备工作

环境要求

  • Apple Silicon M2芯片的Mac (MacBook Pro/Air或Mac mini)
  • macOS Ventura (13.x) 或更高版本
  • 已安装Homebrew (macOS包管理器)
  • Python 3.8+ (推荐使用pyenv管理多版本)

前置知识

  • 基本的终端命令行操作
  • Python基础使用知识

详细安装步骤

1. 安装依赖工具

首先打开终端(Terminal),执行以下命令:

代码片段
# 更新Homebrew确保是最新版本
brew update

# 安装必要的依赖
brew install cmake go pkg-config llvm@15 wget

# 设置llvm环境变量(重要!)
echo 'export PATH="/opt/homebrew/opt/llvm@15/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

原理说明
– CMake:Milvus的构建工具
– Go:部分组件用Go编写
– LLVM:用于编译优化
– pkg-config:帮助查找库文件路径

2. 安装Python环境(推荐)

建议使用pyenv管理Python版本:

代码片段
brew install pyenv

# 安装Python 3.9.13 (兼容性最佳)
pyenv install 3.9.13

# 设置为全局Python版本
pyenv global 3.9.13

# 验证Python版本
python --version

3. 通过Docker安装Milvus(推荐方式)

由于M2是ARM架构,我们需要使用支持ARM的Docker镜像:

代码片段
# 首先确保已安装Docker Desktop for Apple Silicon
# Docker下载地址:https://www.docker.com/products/docker-desktop/

# 拉取Milvus镜像(注意选择arm64版本)
docker pull milvusdb/milvus:v2.3.0-arm64

# 创建并启动容器(注意端口映射和卷挂载)
docker run -d \
   --name milvus_standalone \
   -p 19530:19530 \
   -p 9091:9091 \
   -v ~/milvus_data:/var/lib/milvus \
   milvusdb/milvus:v2.3.0-arm64

参数解释
-p:端口映射(19530是gRPC端口,9091是HTTP端口)
-v:数据持久化存储(将容器内数据映射到主机目录)

4. (可选)源码编译安装(适合开发者)

如果想从源码编译:

代码片段
# Clone Milvus源码(注意分支选择)
git clone https://github.com/milvus-io/milvus.git --branch v2.3.0

cd milvus

# ARM架构特定配置(关键步骤!)
export MACOSX_DEPLOYMENT_TARGET=12.0 
export CMAKE_OSX_ARCHITECTURES=arm64 

# 编译安装(这可能需要较长时间)
make standalone 

# 启动服务(编译成功后)
./bin/milvus run standalone

注意事项
1. M2芯片需要arm64架构的依赖库
2. MacOS部署目标设为12.0以上确保兼容性
3. CPU密集型操作,编译过程可能发热明显

5. Python客户端测试连接

创建一个Python虚拟环境并测试连接:

代码片段
python -m venv milvenv 
source milvenv/bin/activate 

pip install pymilvus==2.3.0 numpy 

创建测试脚本test_milvus.py:

代码片段
from pymilvus import connections, utility, CollectionSchema, FieldSchema, DataType, Collection

# 连接到本地Milvus服务(默认端口19530)
connections.connect("default", host="localhost", port="19530")

print(f"服务状态: {utility.get_server_version()}")

# 定义集合结构(类似SQL表结构)
fields = [
    FieldSchema(name="id", dtype=DataType.INT64, is_primary=True),
    FieldSchema(name="embedding", dtype=DataType.FLOAT_VECTOR, dim=128) # dim为向量维度 
]

schema = CollectionSchema(fields, description="测试集合")
collection = Collection("test_collection", schema)

print(f"集合创建成功: {collection.name}")

# [可选]插入测试数据...

运行测试脚本:

代码片段
python test_milvus.py 

预期输出应显示服务版本信息和新创建的集合名称。

Docker Compose方式(生产推荐)

对于更复杂的部署,建议使用docker-compose:

  1. 创建docker-compose.yml文件:
代码片段
version: '3'

services:

 etcd:
    container_name: milvus-etcd-arm64  
    image: quay.io/coreos/etcd:v3.5.5-arm64  
    environment:
      - ETCD_AUTO_COMPACTION_MODE=revision  
      - ETCD_AUTO_COMPACTION_RETENTION=1000  
      - ETCD_QUOTA_BACKEND_BYTES=4294967296  
    volumes:
      - ./etcd_data:/etcd  
    ports:
      - "2379:2379"

 minio:
    container_name: milvus-minio-arm64  
    image: minio/minio:RELEASE.2023-03-20T20-16-18Z-arm64  
    environment:
      MINIO_ACCESS_KEY: minioadmin  
      MINIO_SECRET_KEY: minioadmin  
    volumes:
      - ./minio_data:/minio_data  
    ports:
      - "9000:9000"  
    command: server /minio_data  

 standalone:
    container_name: milvus-standalone-arm64  
    image: milvusdb/milvus:v2.3.0-arm64  
    environment:
      ETCD_ENDPOINTS: etcd:2379  
      MINIO_ADDRESS: minio:9000  
    volumes:
      - ./standalone_data:/var/lib/milvu s   
    ports:
      - "19530:19530"  
      - "9091:9091"  
    depends_on:
      - etcd  
      - minio  

启动服务:

代码片段
docker-compose up -d 

M2芯片特别注意事项

1.性能调优

代码片段
# Milvu s配置优化(MacOS特有) 
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf 
sudo sysctl -p <br>
   

2.内存限制
M系列芯片统一内存架构性能优异,但建议至少16GB内存以获得良好体验。

3.散热管理
长时间高负载运行时建议:

代码片段
# macOS活动监视器 -> CPU ->降频策略设为"自动"<br>
   

Troubleshooting常见问题解决

Q1: Docker容器启动失败报错”exec format error”

解决:确认拉取的镜像包含arm64标签,x86镜像无法在M系列芯片运行

Q2: Python连接超时错误

解决:检查端口是否正确开放,防火墙设置:

代码片段
sudo lsof -i :19530 #查看端口占用情况 

Q3: etcd服务无法启动

解决:删除旧的etcd数据目录后重启:

代码片段
rm -rf ./etcd_data && docker-compose up etcd 

Milvu s可视化工具推荐

1.Attu(官方GUI工具):

代码片段
docker run -p8000 :3000 zilliz/attu:v2 .3 .0 --milvu s-url localhost :19530   <br>
   

访问http://localhost :8000即可使用

总结

本文详细介绍了在Apple Silicon M2 Mac上部署Milvu s的三种方式:

1.Docker单容器模式(适合快速开始)
2.Docker Compose集群模式(适合生产开发)
3 .源码编译方式(适合深度定制)

关键要点回顾:

✅必须使用ARM架构兼容的镜像和二进制包

✅Docker方式最简单可靠

✅M系列芯片需要特别注意散热管理

✅可视化工具Attu极大提升开发效率

现在你已经拥有了一个本地的向量数据库环境,可以开始构建AI应用了!

原创 高质量