milvus 向量数据库安装

milvus 简介

Milvus 是一个开源的向量数据库,专门为处理和分析大规模向量数据而设计。它适用于需要高效存储、检索和管理向量数据的应用场景,如机器学习、人工智能、计算机视觉和自然语言处理等。以下是 Milvus 的一些关键特性和功能:
官方文档:https://milvus.io/docs/zh

主要特性

  1. 高效的向量检索

    • Milvus 支持多种高效的向量检索算法,包括基于内存的和基于磁盘的索引,能够快速处理大规模向量数据。
  2. 灵活的数据模型

    • Milvus 允许用户存储和管理不同类型的数据,包括结构化数据和非结构化数据,支持多种数据格式。
  3. 高并发处理

    • Milvus 能够支持高并发的查询请求,适合实时应用场景。
  4. 可扩展性

    • Milvus 支持水平扩展,可以根据需求增加节点,以处理更大的数据集和更多的查询请求。
  5. 多种编程语言支持

    • Milvus 提供多种语言的 SDK,包括 Python、Java、Go 和 C++,方便开发者在不同的应用程序中集成。
  6. 集成机器学习框架

    • Milvus 可以与主流的机器学习和深度学习框架(如 TensorFlow 和 PyTorch)集成,便于处理和分析向量数据。
  7. 支持多种索引类型

    • Milvus 提供多种索引类型(如 IVF、HNSW 和 ANNOY),用户可以根据具体需求选择合适的索引方式,以优化检索性能。
  8. 多种存储后端

    • Milvus 支持多种存储后端,包括本地存储和云存储,用户可以根据需要选择合适的存储方案。

应用场景

  • 图像和视频检索:在计算机视觉应用中,Milvus 可以用于图像和视频的相似性检索。
  • 自然语言处理:在 NLP 应用中,Milvus 可以用于文本向量的检索和分析。
  • 推荐系统:Milvus 可以帮助构建个性化推荐系统,通过用户行为数据进行向量检索。
  • 生物信息学:在生物信息学领域,Milvus 可以用于基因数据和蛋白质数据的分析和检索。

总结

Milvus 是一个强大的向量数据库,适合需要高性能向量检索和分析的各种应用场景。它的设计使得数据存储和检索变得高效且灵活,能够满足现代数据驱动应用的需求。

milvus 安装

初始化主机挂载目录

mkdir -p /zpaas/volumes/etcd
mkdir -p /zpaas/volumes/milvus
mkdir -p /zpaas/volumes/minio
chmod 700 /zpaas/volumes/etcd

docker-compose-milvus.yml

version: '3.5'
services:
  etcd:
    container_name: milvus-etcd
    image: hub-nj.iwhalecloud.com/zcm_k8s/etcd:3.5.6-0
    environment:
      - ETCD_AUTO_COMPACTION_MODE=revision
      - ETCD_AUTO_COMPACTION_RETENTION=1000
      - ETCD_QUOTA_BACKEND_BYTES=4294967296
      - ETCD_SNAPSHOT_COUNT=50000
    volumes:
      - /zpaas/volumes/etcd:/etcd
    ports:
      - "3379:3379"
    command: etcd -advertise-client-urls=http://127.0.0.1:3379 -listen-client-urls http://0.0.0.0:3379 --data-dir /etcd
    healthcheck:
      test: ["CMD", "etcdctl", "endpoint", "health"]
      interval: 5s
      timeout: 3s
      retries: 10
 
  minio:
    container_name: milvus-minio
    image: hub-nj.iwhalecloud.com/public/minio:RELEASE.2023-03-20T20-16-18Z
    environment:
      MINIO_ACCESS_KEY: minioadmin
      MINIO_SECRET_KEY: minioadmin
    ports:
      - "9001:9001"
      - "9000:9000"
    volumes:
      - /zpaas/volumes/minio:/minio_data
    command: minio server /minio_data --console-address ":9001"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 5s
      timeout: 3s
      retries: 10
 
  standalone:
    container_name: milvus-standalone
    image: hub-nj.iwhalecloud.com/public/milvus:v2.4.5
    command: ["milvus", "run", "standalone"]
    security_opt:
      - seccomp:unconfined
    environment:
      ETCD_ENDPOINTS: etcd:3379
      MINIO_ADDRESS: minio:9000
    volumes:
      - /zpaas/volumes/milvus:/var/lib/milvus
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
      interval: 30s
      start_period: 90s
      timeout: 20s
      retries: 3
    ports:
      - "19530:19530"
      - "9091:9091"
    depends_on:
      - "etcd"
      - "minio"
 
networks:
  default:
    name: milvus

启动

docker-compose -f docker-compose-milvus.yml up -d

查看

root@10.10.194.210[/zpaas/volumes]# docker ps -a  | grep milvus
df9f6e31a2f6   hub-nj.iwhalecloud.com/public/milvus:v2.4.5                        "/tini -- milvus run…"   33 minutes ago       Up 33 minutes (healthy)     0.0.0.0:9091->9091/tcp, :::9091->9091/tcp, 0.0.0.0:19530->19530/tcp, :::19530->19530/tcp   milvus-standalone
3e4c32da554c   hub-nj.iwhalecloud.com/public/minio:RELEASE.2023-03-20T20-16-18Z   "/usr/bin/docker-ent…"   33 minutes ago       Up 33 minutes (healthy)     0.0.0.0:9000-9001->9000-9001/tcp, :::9000-9001->9000-9001/tcp                              milvus-minio
be224b2f19d7   hub-nj.iwhalecloud.com/zcm_k8s/etcd:3.5.6-0                        "etcd -advertise-cli…"   33 minutes ago       Up 33 minutes (unhealthy)   2379-2380/tcp, 4001/tcp, 7001/tcp, 0.0.0.0:3379->3379/tcp, :::3379->3379/tcp               milvus-etcd
root@10.10.194.210[/zpaas/volumes]# docker exec -it milvus-etcd etcdctl --endpoints=http://127.0.0.1:3379 endpoint health
http://127.0.0.1:3379 is healthy: successfully committed proposal: took = 9.597225ms

attu 安装

attu 为 milvus 的一款图形化管理工具,非常方便对 milvus 的一些管理

docker run -d \
--name=attu \
-p 8000:3000 \
-e MILVUS_URL=10.10.194.210:19530 \
hub-nj.iwhalecloud.com/public/attu:v2.3.9

访问
http://x.x.x.x:8000

minio 访问

minioadmin / minioadmin
http://x.x.x.x:9001

posted @ 2025-03-27 14:42  公博义  阅读(20)  评论(0)    收藏  举报