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

Milvus启动和调试

  • 0 前言
  • 1 Milvus启动
    • 【问题描述】出现Aborted问题
    • 【问题分析】
    • 【解决方法】
      • 安装Pulsar服务
      • 执行单机启动命令解决
      • 监听端口号
  • 2 Milvus调试
    • 编写launch.json
    • 验证单例调试成功
  • 3 遇到的问题汇总
    • 问题1
    • 问题2:Permission denied

0 前言

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

1 Milvus启动

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

根据下图的用法提示,启动命令如下:
在这里插入图片描述

启动命令:

./bin/milvus run standalone

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

【问题描述】出现Aborted问题

在这里插入图片描述

【问题分析】

这个问题困扰了我两天,后仔细阅读Milvus官方文档发现,Milvus启动的前提依赖于三个外部服务,即etcd、minio和Pulsar。版本要求如下:
在这里插入图片描述
未提前安装这三个外部服务的可以先提前安装,根据我上篇部署博客步骤安装的话,在此步应只有Pulsar未安装。

【解决方法】

安装Pulsar服务

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

  1. 下载2.8.2版本
wget https://archive.apache.org/dist/pulsar/pulsar-2.8.2/apache-pulsar-2.8.2-bin.tar.gz
  1. 解压
tar xvfz apache-pulsar-2.8.2-bin.tar.gz
  1. 进入目录启动Pulsar服务
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

查看服务是否启动命令:

sudo netstat -tulnp | grep 9091

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

tcp6       0      0 :::9091       

2 Milvus调试

编写launch.json

{"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权限。

sudo chown -R xxx:xxx /var/lib/milvus

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/232998.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

web期末作业动态时钟UI界面毛玻璃版

效果图 html代码奉上 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthde…

数据结构实验1:栈和队列的应用

目录 一、实验目的 二、实验原理 1.1栈的基本操作 1.1.1 栈的定义 1.1.2 初始化栈 1.1.3 压栈&#xff08;Push&#xff09; 1.1.4 出栈&#xff08;Pop&#xff09; 1.1.5 判空&#xff08;isEmpty&#xff09; 1.1.6 查看栈顶元素&#xff08;Top&#xff09; 1.1…

DNS安全与访问控制

一、DNS安全 1、DNSSEC原理 DNSSEC依靠数字签名保证DNS应答报文的真实性和完整性。权威域名服务器用自己的私有密钥对资源记录&#xff08;Resource Record, RR&#xff09;进行签名&#xff0c;解析服务器用权威服务器的公开密钥对收到的应答信息进行验证。如果验证失败&…

【LeetCode】150. 逆波兰表达式求值(ASCII码)

今日学习的文章链接和视频链接 leetcode题目地址&#xff1a;150. 逆波兰表达式求值 代码随想录题解地址&#xff1a;代码随想录 题目简介 即将后缀表达式转换成中缀表达式并计算。 给你一个字符串数组 tokens &#xff0c;表示一个根据 逆波兰表示法 表示的算术表达式。 …

Spring学习之——AOP(面向切面)

AOP 概念 AOP&#xff1a;全称是Aspect Oriented Programming即&#xff1a;面向切面编程。 简单的说它就是把我们程序重复的代码抽取出来&#xff0c;在需要执行的时候&#xff0c;使用动态代理的技术&#xff0c;在不修改源码的基础上&#xff0c;对程序进行增强&#xff…

CentOS设置docker静态ip

docker容器的ip地址在每次启动后启动顺序设置ip地址&#xff0c;为解决ip地址变动的问题&#xff0c;我们有必要设置docker内部ip地址固定。 第一步先创建一个本地ip地址固定容器的ip docker network create —driver bridge —subnet172.18.12.0/16 —gateway172.18.1.1 wn_d…

MybatisPlus—自定义SQL

目录 1. 自定义SQL介绍 2. 自定义SQL使用步骤 3. 自定义SQL实例 4.总结 1. 自定义SQL介绍 介绍&#xff1a;自定义SQL并不是由我们来编写全部SQL语句&#xff0c;而是通过利用MyBatisPlus的Wrapper来构建复杂的Where条件&#xff0c;然后自己定义SQL语句中剩下的部分。 使…

基于B/S架构的数字孪生智慧监所可视化监管系统

1 前言 物联网技术的发展使云计算技术得到了迅猛的发展及广泛的应用&#xff0c;智能体系的创建已经成为监狱发展的必然趋势。 智慧监狱的创建、智能化管理的推行是监狱管理的创新&#xff0c;也是监狱整体工作水平提升的具体体现。 1.1 建设背景 近年来&#xff0c;司法部不…

vue3+echart绘制中国地图并根据后端返回的坐标实现涟漪动画效果

1.效果图 2.前期准备 main.js app.use(BaiduMap, {// ak 是在百度地图开发者平台申请的密钥 详见 http://lbsyun.baidu.com/apiconsole/key */ak: sRDDfAKpCSG5iF1rvwph4Q95M6tDCApL,// v:3.0, // 默认使用3.0// type: WebGL // ||API 默认API (使用此模式 BMapBMapGL) });i…

数据库设计-DDL

D D L \huge{DDL} DDL DDL&#xff1a;数据库定义语言&#xff0c;用来定义数据对象&#xff08;数据库、表&#xff09; 简单操作 首先在cmd中进行操作&#xff0c;登录数据库 show databases; -- 以列表的形式显示所有的数据库create database [if not exists] 数据库名称…

【unity】Obi插件架构组成(参数详细解释)——解算器四面板设置、三种更新器、参与者介绍

文章目录 一、架构&#xff08;Architecture&#xff09;1.1 Obi解算器&#xff08;ObiSolver&#xff09;1.2 ObiUpdater1.3 ObiActorBlueprint1.4 Obi参与者&#xff08;ObiActor&#xff0c;如ObiRope等&#xff09; 二、Obi解算器&#xff08;ObiSolver&#xff09;2.1 解算…

uniapp中组件库的Textarea 文本域的丰富使用方法

目录 #平台差异说明 #基本使用 #字数统计 #自动增高 #禁用状态 #下划线模式 #格式化处理 API #List Props #Methods #List Events 文本域此组件满足了可能出现的表单信息补充&#xff0c;编辑等实际逻辑的功能&#xff0c;内置了字数校验等 注意&#xff1a; 由于…

【深度学习:Few-shot learning】理解深入小样本学习中的孪生网络

【深度学习&#xff1a;Few-shot learning】理解深入小样本学习中的孪生网络 深入理解孪生网络&#xff1a;架构、应用与未来展望小样本学习的诞生元学习小样本学习孪生网络的基本概念孪生网络的细节Triplet Loss架构特点关键组件训练过程主要应用领域未来展望示例图片结论 深入…

经典八股文之RocketMQ

核心概念 NameServer nameserver是整个rocketmq的大脑&#xff0c;是rocketmq的注册中心。broker在启动时向所有nameserver注册。生产者在发送消息之前先从 NameServer 获取 Broker 服务器地址列表(消费者一 样)&#xff0c;然后根据负载均衡算法从列表中选择一台服务器进行消…

Matplotlib for C++不完全手册

matplotlib-cpp是Matplotlib&#xff08;MPL&#xff09;为C提供的一个用于python的matplotlib绘图库的C包装器。它的构建类似于Matlab和matplotlib使用的绘图API。 However, the function signatures might differ and Matplotlib for C does not support the full functional…

电子学会C/C++编程等级考试2023年12月(二级)真题解析

C/C++编程(1~8级)全部真题・点这里 第1题:统计指定范围里的数 给定一个数的序列S,以及一个区间[L, R], 求序列中介于该区间的数的个数,即序列中大于等于L且小于等于R的数的个数。 时间限制:1000 内存限制:65536 输入 第一行1个整数n,分别表示序列的长度。(0 < n ≤…

ThinkPHP5多小区物业管理系统源码(支持多小区)

基于 ThinkPHP5 Bootstrap 倾力打造的多小区物业 管理系统源码&#xff0c;操作简单&#xff0c;功能完善&#xff0c;用户体验良好 开发环境PHP7mysql 安装步骤: 1.新建数据库db_estate,还原数据db_estate.sql 2.修改配置文件&#xff1a;application/database.php 3.运…

pyqt6 + pycharm 搭建+使用入门

首先安装PyQt6和PyQt6-tools。使用如下命令&#xff1a; pip install PyQt6 PyQt6-tools 但是运行后会报如下错误&#xff1a; 这个时候按照提示执行命令升级pip即可 python.exe -m pip install --upgrade pip 配置pycharm&#xff1a; 打开pycharm&#xff0c;进入setting&am…

Java最大优先队列设计与实现

Java 学习面试指南&#xff1a;https://javaxiaobear.cn 1、API设计 类名MaxPriorityQueue构造方法MaxPriorityQueue(int capacity)&#xff1a;创建容量为capacity的MaxPriorityQueue对象成员方法private boolean less(int i,int j)&#xff1a;判断堆中索引i处的元素是否小…

Mathtype7.4安装与嵌入WPS

文章目录 Mathtype安装教程&#xff08;7.4&#xff09;Mathtype简介Mathtype下载安装软件下载软件安装运行MathType.exe运行注册表 Mathtype嵌入wps Mathtype安装教程&#xff08;7.4&#xff09; Mathtype简介 MathType是一款强大的数学公式编辑器&#xff0c;适用于教育教…