源码编译部署篇(二)源码编译milvus成功后如何启动standalone并调试成功!

Milvus启动和调试

0 前言

由于Milvus官方文档只提及如何使用docker安装部署Milvus,关于源码安装方式篇幅较少,因此,我整理撰写了如何通过源码编译方式成功安装Milvus,详见此篇。之所以选择这种复杂的安装方式,可以调试源码进而熟悉Milvus如何搭建整个框架支持AI上层应用功能。根据上篇步骤部署虽然可以成功,然而,我却不能成功启动Milvus服务,这个问题困扰了一两天,现在终于得以解决并能成功调试Milvus源码。接下来,分为三个部分介绍如何启动和成功调试。

1 Milvus启动

Milvus服务启动主要分为两种模式,一种是单机(Milvus Standalone),另一种是集群(Milvus Cluster)。我选择单机模式启动,单机指的是不提供网络功能的数据库。

根据下图的用法提示,启动命令如下:

启动命令:

bash 复制代码
./bin/milvus run standalone

可能每个人服务器性能、赋予权限等都不同,不一定会遇到和我一样无法成功启动的问题。这里记录我遇到的问题以及解决方案。

【问题描述】出现Aborted问题

【问题分析】

这个问题困扰了我两天,后仔细阅读Milvus官方文档发现,Milvus启动的前提依赖于三个外部服务,即etcd、minio和Pulsar。版本要求如下:

未提前安装这三个外部服务的可以先提前安装,根据我上篇部署博客步骤安装的话,在此步应只有Pulsar未安装。

【解决方法】

安装Pulsar服务

因此,这里只记录安装Pulsar服务步骤:

  1. 下载2.8.2版本
bash 复制代码
wget https://archive.apache.org/dist/pulsar/pulsar-2.8.2/apache-pulsar-2.8.2-bin.tar.gz
  1. 解压
bash 复制代码
tar xvfz apache-pulsar-2.8.2-bin.tar.gz
  1. 进入目录启动Pulsar服务
bash 复制代码
cd apache-pulsar-2.8.2
bin/pulsar standalone

启动成功后,如果看到一堆日志[INFO]提示且味异常中断,则表示启动成功。

执行单机启动命令解决

不出意外,还是失败!(这是肯定的啦~)

接下来,要根据启动报错日志来解决问题,结果导向问题。

下图是我遇到的问题,我将此部分总结在"3 遇到的问题汇总",故不赘述,具体可自行跳转到指定位置查看。

成功启动界面如下:

监听端口号

到这一步,所有的问题均解决了。查看端口号,若正在监听,则表示启动成功!可以逐一查询以下端口号是否正在监听:

  • Pulsar-port:6650/ 2181/3181/
  • milvus-server-port:19530
  • milvus-HTTP:9091
  • etcd-port:2379/2380
  • minio-port:9000

查看服务是否启动命令:

bash 复制代码
sudo netstat -tulnp | grep 9091

显示如下信息,表示启动成功:

bash 复制代码
tcp6       0      0 :::9091       

2 Milvus调试

编写launch.json

bash 复制代码
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug Milvus_cp1.1",
            "type": "cppdbg",
            "request": "attach",
            "program": "~/milvus_cp1.1/bin/milvus",
            "args": [], // Any arguments the program needs
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "", // Task to run before debugging, like 'build'
            "miDebuggerPath": "/usr/bin/gdb" // Path to gdb
        }
    ]
}

验证单例调试成功

启动成功部署调试环境后,下载官网提供的python-sdk文件,运行成功界面如下:

打好断点后,启动milvus standalone,会跳转到断点位置,调试成功!

3 遇到的问题汇总

问题1

【问题描述】[ERROR] [datacoord/service.go:150] ["grpc server failed to listen error"] [error="listen tcp :13333: bind: address already in use"] [stack="github.com/milvus-io/milvus/internal/distributed/datacoord.(*Server).startGrpcLoop\n\t/home/b8402/22_raowenjing/milvus_cp1.1/internal/distributed/datacoord/service.go:150"]

【解决方法】直接杀掉占用13333的端口进程

再次运行./bin/milvus run standalone

【结果】没有报错。

问题2:Permission denied

[FATAL] [msgstream/mq_factory.go:16] ["fail to init rocksmq"] [error="mkdir /var/lib/milvus: permission denied"]

【解决方法】更改权限。因为我是普通用户不能访问root权限。

bash 复制代码
sudo chown -R xxx:xxx /var/lib/milvus
相关推荐
woshiabc1113 天前
安装milvus以及向量库增删改操作
milvus
阿里云大数据AI技术5 天前
通过阿里云 Milvus 与 PAI 搭建高效的检索增强对话系统
大数据·阿里云·云计算·milvus·向量检索
MonkeyKing_sunyuhua6 天前
milvus 支持向量化索引的方法
python·算法·milvus
Zilliz Planet7 天前
RAG开发中,如何用Milvus 2.5 BM25算法实现混合搜索
开发语言·python·算法·milvus
坐吃山猪15 天前
Milvus向量数据库04-Pipelines搭建RAG应用
数据库·milvus
❀͜͡傀儡师16 天前
使用docker-compose安装Milvus向量数据库及Attu可视化连接工具
数据库·docker·milvus
坐吃山猪16 天前
Milvus向量数据库01-基础概念
数据库·milvus
晨欣16 天前
Milvus中如何实现全文检索(Full Text Seach)?
python·全文检索·milvus
报名搜谷安16 天前
OSCP:我理解的Web环境知识
milvus·faiss·iotdb