源码编译部署篇(二)源码编译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
相关推荐
2501_915374351 天前
Faiss vs Milvus 深度对比:向量数据库技术选型指南
数据库·milvus·faiss
要努力啊啊啊5 天前
Elasticsearch + Milvus 构建高效知识库问答系统《一》
人工智能·深度学习·elasticsearch·语言模型·milvus
无风听海6 天前
Milvus单机模式安装和试用
大模型·llm·milvus·向量数据库
风筝超冷6 天前
使用Milvus运行一个Milvus单机版实例
milvus
敲键盘的小夜猫6 天前
Milvus向量Search查询综合案例实战(下)
数据库·python·milvus
敲键盘的小夜猫9 天前
LangChain整合Milvus向量数据库实战:数据新增与删除操作
人工智能·python·milvus
孤狼逐月10 天前
Spring boot集成milvus(spring ai)
spring boot·spring·milvus·spring ai
敲键盘的小夜猫10 天前
Milvus索引操作和最佳实践避坑指南
数据库·oracle·milvus
在未来等你11 天前
互联网大厂Java求职面试:AI大模型推理服务性能优化与向量数据库分布式检索
java·llm·milvus·向量数据库·rag·spring ai·语义缓存
Uranus^12 天前
Spring Boot集成Spring AI与Milvus实现智能问答系统
spring boot·milvus·rag·spring ai·智能问答系统