HUSTOJ分佈式在多臺虛擬機上部署判題機

實現分佈式其實就是通過部署多個oj在不同虛擬機上,讓多個判題機同時訪問一個數據庫。

所以就需要一個oj(A oj)貢獻它的數據庫讓其他judger輪!!

A oj 上,進入mysql,執行如下命令,賦予judge遠程訪問jol數據庫的權限,並且設置密碼爲judge_pass

GRANT ALL PRIVILEGES ON jol.* TO 'judge'@'%' IDENTIFIED BY 'judge_pass' WITH GRANT OPTION;
flush privileges;

並且檢查/etc/mysql/my.cnf 確保

  1. bind-address        = 0.0.0.0
  2. max_connections = 512
     

然後我們再 B 、C、D.....oj上  ,配置judge.conf

vim /home/judge/etc/judge.conf 

實際情況修改前三個就行了 。分別時 Aoj 的ip 和MySQL遠程連接的賬戶和密碼,後面OJ_HTTP_USERNAME默認時IP,

如果不想ip暴露在狀態頁可以隨便起名

修改完成後我們要將A oj的測試數據傳到B、C。。。oj上

這裏要確保兩臺虛擬機上都裝了ssh

如果不確定可以 執行如下命令查看是否有ssh

沒有的話,就執行 如下命令安裝ssh

sudo apt-get install openssh-server

安裝完後啓動

service ssh start

接下來有4種方式課選,將Aoj的數據複製到其他oj上

可以在Aoj上執行如下命令任一條

scp -r /home/judge/data  root@判題機ip:/home/judge/
或用同步命令。
rsync -vzrtopg --progress --delete /home/judge/data root@判題機ip:/home/judge/

 或在B、C。。。oj上執行下面任意一條

scp -r root@主機ip:/home/judge/data  /home/judge/
或用同步命令。
rsync -vzrtopg --progress --delete root@主機ip:/home/judge/data /home/judge/

完成後 執行命令,重啓判題機

 pkill judged&&sudo judged

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章