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服務器 查不到剛刪的圖片;✅
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章