参考:《官方部署文档》https://github.com/vearch/vearch/blob/master/docs/Deploy.md
在24
和107
两台机器上分别 安装vearch 及其环境。
安装参考:《图像检索引擎vearch安装与测试使用
》:https://blog.csdn.net/u012052268/article/details/103264626
其中 在第1.3.2节的时候,不要直接运行bash run_docker.sh
, 因为多台机器运行,config文件需要改变了。
cd vearch/cloud/
bash compile_env.sh
离线不能用?
cd vearch/cloud/
bash compile.sh
bash build.sh
离线不能用??
在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 更改为自己的服务器地址24
,107
。
nohup docker run --net=host -v $PWD/config2master.toml:/vearch/config.toml ansj/vearch:0.2 all &
tail -100f nohup.out
千万注意!!!:
--net=host
来把容器与宿主机的网络直接等同 ;而且加上这个参数后,就不用-p
映射端口了参考《Docker容器访问宿主机网络》:https://jingsam.github.io/2018/10/16/host-in-docker.html
最后,
http://172.21.30.24:8817/_cluster/stats
和http://10.200.61.107:8817/_cluster/stats
验证集群状态;nohup.out
观察集群心跳数据。ps -ef | grep vearch # 查看进程
netstat -nap | grep 8817 # 查看端口占用
docker ps -a # 查看有没有vearch容器在运行
docker ps -a # 查看有没有vearch容器在运行
docker stop xxxxxx # 停止vearch容器
docker rm xxxxx # 删除vearch容器
nohup docker run --net=host -v $PWD/config2master.toml:/vearch/config.toml ansj/vearch:0.2 all &
tail -100f nohup.out
这里会调用 python环境 以及训练好的VGG16模型。 所以需要安装一些python包,提前安装好的可以忽略:
ImportError: libSM.so.6
错误)vgg16.pth
放到 ~/.cache/torch/checkpoints/
里面/home/CVpy36/xuqingtang/vearch/plugin/model/
修改配置文件..../vearch/plugin/src/config.py
把服务器ip地址修改为 24 和107(端口不变)
以上环境准备好了,启动图片插件(虽然叫插件,但是为封装的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
netstat -nap | grep 4101 # 查看端口占用
kill -9 xxpidxx
nohup ./bin/run.sh image &
tail -100f nohup.out
在A服务器上建立图片数据库 与 表,观察B服务上的库状态。
代码参见:ShangHuRuWangImageRetrieval_vearch_docker/vearcDbOperation.py
在A服务器上删除图片数据库 与 表,观察B服务上的库状态。(暂不验证)
在A服务器上建立图片数据库 与 表,观察B服务上的库状态。
代码参见:ShangHuRuWangImageRetrieval_vearch_docker/imageRetrievalWithVearchPlugin.py
插入A测试B:
批量插入
多张斑马
照片操作;✅插入B测试A:
批量插入
多张身份证
照片操作;✅插入A测试B:
删除
某张营业
照片操作;✅