【Milvus】虚拟机安装Milvus
环境:VMware里面安装Linux centos 8 stream,分配8G内存。根据官方说明,standalone至少需要8G内容,8G也只能简单试一下,不能用于生产场景。
·
环境:VMware里面安装Linux centos 8 stream,分配8G内存。
根据官方说明,standalone至少需要8G内容,8G也只能简单试一下,不能用于生产场景。
一、安装docker
1. 移除旧版本docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2. 安装必要工具包
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
3. 设置源(国内使用阿里云的源)
sudo yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4. 移除旧依赖项
yum erase podman buildah
5. 执行安装docker
sudo yum install docker-ce docker-ce-cli containerd.io
6. 启动docker
systemctl enable docker
systemctl start docker
7. 检查docker是否安装成功
docker run hello-world
二、安装milvus
注意:我这里安装的是milvus standalone版本,也就是单机版
1. 下载docker compose 文件
wget https://github.com/milvus-io/milvus/releases/download/v2.3.3/milvus-standalone-docker-compose.yml -O docker-compose.yml
2. 启动milvus
sudo docker compose up -d
根据官方文档描述,standalone版本主要是三个components,分别是:etcd、minio和standalone,因此compose里面启动的就是这三个服务
3. 检查启动状态
sudo docker compose ps
三个服务都启动了
4. 查看监听端口
docker port milvus-standalone 19530/tcp
默认端口是19530,现在我们可以通过ip和端口链接到milvus了
三、连接milvus
注意:当前的milvus是在虚拟机里面安装的,从虚拟机里面通过ip和端口是可以直接连接milvus的,但是如果想从物理机上连接milvus,需要保证虚拟机和物理机在同一个网段上,这个可以通过修改虚拟机网络配置实现。本文的虚拟机和物理机已经配置好了,在同一个网段上,因此可以通过虚拟机的ip和端口访问。
使用java连接milvus.
1. 引入dependency
<dependency>
<groupId>io.milvus</groupId>
<artifactId>milvus-sdk-java</artifactId>
<version>2.3.3</version>
</dependency>
2. 使用代码连接milvus
我的虚拟机ip是192.168.199.128,这里根据实际情况替换
import io.milvus.client.MilvusServiceClient;
import io.milvus.grpc.DataType;
import io.milvus.param.ConnectParam;
import io.milvus.param.R;
import io.milvus.param.collection.CreateCollectionParam;
import io.milvus.param.collection.FieldType;
import io.milvus.param.collection.HasCollectionParam;
public class Main {
static final MilvusServiceClient milvusClient = new MilvusServiceClient(
ConnectParam.newBuilder()
.withHost("192.168.199.128")
.withPort(19530)
.build()
);
public static void main(String[] args) {
FieldType fieldType1 = FieldType.newBuilder()
.withName("book_id")
.withDataType(DataType.Int64)
.withPrimaryKey(true)
.withAutoID(false)
.build();
FieldType fieldType2 = FieldType.newBuilder()
.withName("word_count")
.withDataType(DataType.Int64)
.build();
FieldType fieldType3 = FieldType.newBuilder()
.withName("book_intro")
.withDataType(DataType.FloatVector)
.withDimension(2)
.build();
CreateCollectionParam createCollectionReq = CreateCollectionParam.newBuilder()
.withCollectionName("book")
.withDescription("Test book search")
.withShardsNum(2)
.addFieldType(fieldType1)
.addFieldType(fieldType2)
.addFieldType(fieldType3)
.withEnableDynamicField(true)
.build();
milvusClient.createCollection(createCollectionReq);
R<Boolean> respHasCollection = milvusClient.hasCollection(
HasCollectionParam.newBuilder()
.withCollectionName("book")
.build()
);
if (respHasCollection.getData() == Boolean.TRUE) {
System.out.println("Collection exists.");
}
}
}
启动main, 连接成功
更多推荐
已为社区贡献1条内容
所有评论(0)