纵有疾风起
人生不言弃

20191126分布式部署vearch

文章目录

参考:《官方部署文档》https://github.com/vearch/vearch/blob/master/docs/Deploy.md

1 部署

1.1 安装 vearch

24107两台机器上分别 安装vearch 及其环境。

安装参考:《图像检索引擎vearch安装与测试使用
》:https://blog.csdn.net/u012052268/article/details/103264626

其中 在第1.3.2节的时候,不要直接运行bash run_docker.sh, 因为多台机器运行,config文件需要改变了。

1.1.1 编译Vearch_evn

cd vearch/cloud/

bash compile_env.sh

离线不能用?

1.1.2 编译Vearch

cd vearch/cloud/

bash compile.sh

1.1.3 创建vearch可运行镜像

bash build.sh

离线不能用??

1.1.4 分布式部署配置文件

cloud文件夹内创建 config2master.toml。配置好两个主机sever地址。
内容为:

[global]
    name = "vearch"
    data = ["datas/"]
    log = "logs/"
    level = "debug"
    signkey = "vearch"
    skip_auth = true

# if you are master you'd better set all config for router and ps and router and ps use default config it so cool
[[masters]]
    name = "m1"
    address = "192.168.1.1"
    api_port = 8817
    etcd_port = 2378
    etcd_peer_port = 2390
    etcd_client_port = 2370
[[masters]]
    name = "m2"
    address = "192.168.1.2"
    api_port = 8817
    etcd_port = 2378
    etcd_peer_port = 2390
    etcd_client_port = 2370
[router]
    port = 9001
    skip_auth = true
[ps]
    rpc_port = 8081
    raft_heartbeat_port = 8898
    raft_replicate_port = 8899
    heartbeat-interval = 200 #ms
    raft_retain_logs = 10000
    raft_replica_concurrency = 1
    raft_snap_concurrency = 1

注意,要把192.168.1.1 和 192.168.1.2 更改为自己的服务器地址24107

1.1.5 启动运行veach

nohup docker run --net=host  -v $PWD/config2master.toml:/vearch/config.toml  ansj/vearch:0.2 all &

tail -100f nohup.out 

千万注意!!!

  • vearch两台机器必须在几秒内 同时启动,才能链接成功(2台都是master)
  • 107服务器 由于网段原因,必须关闭浏览器代理 才能访问。
  • 由于是在docker中启动,所以:“容器与宿主机”以及“容器与局域网内其他机器” 直接通讯默认是关闭的。 所以,如过想要通过docker运行,就必须加上这个参数:--net=host 来把容器与宿主机的网络直接等同 ;而且加上这个参数后,就不用-p 映射端口了

参考《Docker容器访问宿主机网络》:https://jingsam.github.io/2018/10/16/host-in-docker.html

最后,

  • 打开浏览器访问 http://172.21.30.24:8817/_cluster/statshttp://10.200.61.107:8817/_cluster/stats验证集群状态;
  • 并通过nohup.out观察集群心跳数据。

1.1.6 vearch运维:

  1. 观察系统有没有在运行vearch:
ps -ef | grep vearch # 查看进程
netstat -nap | grep 8817 # 查看端口占用
docker ps -a # 查看有没有vearch容器在运行
  1. 关闭在运行的vearch:
docker ps -a # 查看有没有vearch容器在运行
docker stop xxxxxx # 停止vearch容器
docker rm xxxxx  # 删除vearch容器
  1. 启动 vearch容器
nohup docker run --net=host  -v $PWD/config2master.toml:/vearch/config.toml  ansj/vearch:0.2 all &

tail -100f nohup.out 

1.2 运行图像搜索插件

1.2.1 安装运行环境

这里会调用 python环境 以及训练好的VGG16模型。 所以需要安装一些python包,提前安装好的可以忽略:

  1. shortuuid
  2. opencv-python-4.1.1.26
  3. opencv-python_headless (一定要装,否则会报ImportError: libSM.so.6错误)
  4. msgpack
  5. torch1.2 (一定要在官网 安装cpu版本啊 血的教训)
  6. torchvision 0.4 (一定要在官网 安装cpu版本啊 血的教训)
  7. pytorch官网上下载的 vgg16.pth 放到 ~/.cache/torch/checkpoints/里面
  8. 下载yolov3.weights 放入 /home/CVpy36/xuqingtang/vearch/plugin/model/

1.2.2 修改配置文件

修改配置文件..../vearch/plugin/src/config.py 把服务器ip地址修改为 24 和107(端口不变)

1.2.3 启动图像搜索插件

以上环境准备好了,启动图片插件(虽然叫插件,但是为封装的flask借口去调用vearch各种服务)

cd /home/vearch/vearch/plugin

# 直接运行
./bin/run.sh image运行
# 或者使用nohup
nohup ./bin/run.sh image &
tail -100f nohup.out 

看到 ↓ 信息就成功了(nohup.out中不显示错误就行):
load model success

1.2.4 image插件运维

  1. 观察有没有在运行image插件:
netstat -nap | grep 4101 # 查看端口占用
  1. 关闭在运行的image插件:
kill -9 xxpidxx
  1. 启动 image插件
nohup ./bin/run.sh image &

tail -100f nohup.out 

2 验证分布式性能

2.1 库级别验证

2.1.1 建立图片数据库 与 表

在A服务器上建立图片数据库 与 表,观察B服务上的库状态。

代码参见:ShangHuRuWangImageRetrieval_vearch_docker/vearcDbOperation.py

  1. 检查集群健康性,观察集群心跳数据是否正常;
  2. 对24服务器 进行建库/建表操作;
  3. 查询数据库状态:
    1. 24服务器 包含刚刚建立的库和表;
    2. 107服务器 包含刚刚建立的库和表;

2.1.1 删除图片数据库 与 表

在A服务器上删除图片数据库 与 表,观察B服务上的库状态。(暂不验证)

2.2 数据级别验证

2.2.1 插入数据验证

在A服务器上建立图片数据库 与 表,观察B服务上的库状态。

代码参见:ShangHuRuWangImageRetrieval_vearch_docker/imageRetrievalWithVearchPlugin.py

插入A测试B:

  1. 检查集群健康性,观察集群心跳数据是否正常;
  2. 对24服务器 进行批量插入多张斑马照片操作;
  3. 查询数据库状态:
    1. 24 服务器 包含刚刚插入的图片;
    2. 107服务器 包含刚刚插入的图片;

插入B测试A:

  1. 检查集群健康性,观察集群心跳数据是否正常;
  2. 对107服务器 进行批量插入多张身份证照片操作;
  3. 查询数据库状态:
    1. 107服务器 搜索出刚刚插入的图片;
    2. 24 服务器 搜索出刚刚插入的图片;

2.2.2 删除数据验证

插入A测试B:

  1. 检查集群健康性,观察集群心跳数据是否正常;
  2. 对24服务器 进行删除某张营业照片操作;
  3. 查询数据库状态:
    1. 24 服务器 查不到刚删的图片;
    2. 107服务器 查不到刚删的图片;

原文链接:https://lookme.blog.csdn.net/article/details/103387659

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

未经允许不得转载:起风网 » 20191126分布式部署vearch
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录