Milvus
特點:開源的云原生向量數據庫,支持多種索引類型和GPU加速,能夠在億級向量規模下實現低延遲高吞吐。具有靈活的部署選項和強大的社區支持。
適用場景:適合處理超大規模數據和高性能需求的應用,如圖像搜索、推薦系統和自然語言處理。
了解更多關于Milvus的信息
一、環境準備
1. 硬件要求
- 內存:至少 8GB(推薦 16GB+),Milvus 依賴的 etcd 和 MinIO 組件會占用約 4GB 內存。
- 磁盤:至少 50GB 可用空間(存儲向量數據和索引)。
- CPU:雙核 Intel 或 Apple Silicon(M1/M2)芯片。
2. 軟件要求
- macOS 版本:10.14(Mojave)或更高版本(如 macOS 14 Sonoma)。
- Docker Desktop:安裝最新版(支持 Apple Silicon 芯片的 ARM 架構鏡像)。
二、安裝 Docker Desktop
-
下載 Docker Desktop
訪問?Docker 官網,下載適合 macOS 的版本(支持 Intel 和 Apple Silicon)。 -
安裝并啟動 Docker
- 雙擊下載的?
.dmg
?文件,將 Docker 圖標拖入?Applications
?文件夾。 - 打開 Docker Desktop,首次啟動時需授權權限(如訪問文件系統、網絡等)。
- 登錄 Docker Hub 賬號(可選,但推薦以便拉取鏡像)。
- 雙擊下載的?
-
驗證 Docker 是否安裝成功
在終端運行以下命令:docker --version docker-compose --version # 確保 Docker Compose 已集成(v2.x+)
輸出:
三、安裝 Milvus 獨立版
1.拉取 Milvus 鏡像
docker pull milvusdb/milvus:v2.3.12
2.創建配置文件目錄
mkdir -p ~/milvus/conf
cd ~/milvus
3. 下載 Milvus 的 Docker Compose 配置文件
在終端運行以下命令,下載 Milvus 官方提供的?docker-compose.yml
?文件(以 Milvus v2.3.12?為例):
wget https://github.com/milvus-io/milvus/releases/download/v2.3.12/milvus-standalone-docker-compose.yml -O docker-compose.yml
在 macOS 終端中遇到?
command not found: wget
?錯誤,通常是因為系統未安裝?wget
?工具。wget
?是一個常用的命令行工具,用于從網絡下載文件(支持 HTTP、HTTPS 和 FTP 協議)。以下是解決方法:方法1:用?
curl -o docker-compose.yml [URL]
方法2?:通過 Homebrew 安裝 wget
安裝 Homebrew(如果尚未安裝)
Homebrew 是 macOS 上的包管理器,可以方便地安裝和管理命令行工具。
在終端運行以下命令安裝 Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
使用 Homebrew 安裝 wget
安裝完 Homebrew 后,運行以下命令安裝?wget
brew install wget
驗證安裝
安裝完成后,運行以下命令驗證?wget
?是否可用:
wget --version
如果輸出版本信息(如?
GNU Wget 1.21.4
),則表示安裝成功。
或手動創建文件:
# docker-compose.yml
version: '3.8'
services:etcd:image: quay.io/coreos/etcd:v3.5.5container_name: milvus-etcdenvironment:- ETCD_AUTO_COMPACTION_MODE=revision- ETCD_AUTO_COMPACTION_RETENTION=1000volumes:- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcdports:- "2379:2379"command: etcd -advertise-client-urls=http://0.0.0.0:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcdminio:image: minio/minio:RELEASE.2023-03-20T20-16-18Zcontainer_name: milvus-minioenvironment:MINIO_ACCESS_KEY: minioadminMINIO_SECRET_KEY: minioadminvolumes:- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_dataports:- "9000:9000"- "9001:9001"command: minio server /minio_data --console-address ":9001"standalone:image: milvusdb/milvus:v2.3.12container_name: milvus-standaloneports:- "19530:19530" # gRPC 端口- "9091:9091" # HTTP 端口environment:ETCD_ENDPOINTS: etcd:2379MINIO_ADDRESS: minio:9000volumes:- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvusdepends_on:- "etcd"- "minio"
4. 啟動 Milvus 服務
在終端進入?docker-compose.yml
?所在目錄,運行以下命令:
docker compose up -d
-d
?表示后臺運行。- 首次啟動會下載 Milvus、etcd 和 MinIO 的鏡像(約 2GB),需耐心等待。
3. 驗證服務狀態
運行以下命令檢查容器是否正常運行:
docker compose ps
輸出示例:
NAME COMMAND STATE PORTS
milvus-etcd "/usr/local/bin/etcd..." Up (healthy) 2379/tcp, 2380/tcp
milvus-minio "/usr/bin/docker-ent..." Up (healthy) 9000/tcp, 9001/tcp
milvus-standalone "/tini -- milvus run..." Up (healthy) 0.0.0.0:19530->19530/tcp, 0.0.0.0:9091->9091/tcp
4. 訪問 Milvus Web UI
- 打開瀏覽器,訪問?
http://localhost:9091/webui
。 - 默認無需登錄,可直接查看 Milvus 的運行狀態、集合信息等。
四、連接 Milvus 客戶端
1. 使用 PyMilvus 連接
安裝 PyMilvus:
pip3 install pymilvus==2.5.4
測試連接:
from pymilvus import connectionsconnections.connect(host="localhost",port="19530",user="",password=""
)
print(connections.list_connections()) # 輸出連接信息
2. 使用 cURL 測試健康檢查
curl -I http://localhost:9091/healthz
返回?HTTP/1.1 200 OK
?表示服務正常。
五、常見問題排查
- 鏡像下載慢
- 配置 Docker 國內鏡像源(如阿里云、中科大等)。
- 修改 Docker Desktop 的?
Settings > Docker Engine
,添加以下配置:{"registry-mirrors": ["https://<your-mirror-url>"] }
- 容器啟動失敗
- 檢查日志:
docker compose logs -f
常見原因:
-
端口沖突:
????????修改?docker-compose.yml
?中的端口映射(如?19530:19530
?改為?19531:19530
) -
內存不足:
在 Docker Desktop 設置中增加內存分配(建議至少 4GB)
-
- 檢查日志:
- Apple Silicon 芯片兼容性問題
- 確保使用 Milvus 的 ARM 鏡像(如?
milvusdb/milvus:v2.5.4-arm64
)。 - 修改?
docker-compose.yml
?中的鏡像標簽為?-arm64
。
- 確保使用 Milvus 的 ARM 鏡像(如?
- 數據持久化問題
- 默認數據存儲在?
./volumes/
?目錄下,刪除容器前需備份該目錄。 - 停止并刪除容器:
docker compose down -v # -v 刪除數據卷
- 默認數據存儲在?
六、卸載 Milvus
- 停止并刪除容器:
docker compose down -v
- 刪除配置文件和卷:
rm -rf docker-compose.yml volumes/
總結
????????通過本教程,你可以在 macOS 上快速部署 Milvus 獨立版,并通過 Web UI 或客戶端進行交互。Milvus 獨立版適合開發測試和小規模生產環境,如需分布式部署,可參考官方 Kubernetes 部署方案。你也可以參考使用Docker安裝 Milvus 獨立版(官方文檔)。