1. 程式人生 > >HUSTOJ-建立分散式判題系統

HUSTOJ-建立分散式判題系統

原文:http://blog.csdn.net/zhblue/article/details/7366381

HUSTOJ 支援一臺資料庫伺服器,多臺web伺服器和多臺判題伺服器,以承擔較高的訪問負荷。


首先,需要建立用於從遠端連線資料庫的帳號。
  1. GRANT ALL PRIVILEGES ON jol.* TO 'judge'@'%'
  2. IDENTIFIED BY 'judge_pass' WITHOUT GRANT OPTION;
  3. flush privileges
複製程式碼
其中jol為資料庫,judge為帳號,judge_pass為密碼。
注意:
檢查/etc/mysql/my.cnf 確保
  1. bind-address        = 0.0.0.0
複製程式碼
高負載的情況下最好設定更多的連線數。
max_connections = 512

其次,配置各web程式連線到資料庫。
修改include/db_info.inc.php

  1. static  $DB_HOST="資料庫伺服器ip";
  2. static  $DB_NAME="jol";
  3. static  $DB_USER="judge";
  4. static  $DB_PASS="judge_pass";
複製程式碼

第三,配置各判題程式連線到資料庫,分配任務。

  1. OJ_HOST_NAME=資料庫伺服器ip
  2. OJ_USER_NAME=judge
  3. OJ_PASSWORD=judge_pass
  4. OJ_DB_NAME=jol
  5. ...
  6. OJ_TOTAL=判題機總數
  7. OJ_MOD=本機編號,從0開始
  8. ...
複製程式碼
其中
OJ_TOTAL=判題機總數,OJ_MOD=本機編號,從0開始,例如
有3臺機器判題,分別編號
0,1,2
OJ_TOTAL都設為3,OJ_MOD分別設為0,1,2

* 自R784版本開始,不再需要分別配置OJ_TOTAL和OJ_MOD,全部設為1和0即可,所有正常工作的judge節點將自動分配當前任務。


第四,複製測試資料目錄到各判題機。

先要準備好遠端訪問,在主伺服器執行:

       sudo apt-get install openssh-server

從主機向判題機複製
  1. scp -r /home/judge/data  
    [email protected]
    判題機ip:/home/judge/
複製程式碼 或用同步命令。
  1. rsync -vzrtopg --progress --delete /home/judge/data [email protected]判題機ip:/home/judge/
複製程式碼 判題機從主機複製
  1. scp -r [email protected]主機ip:/home/judge/data  /home/judge/
複製程式碼 或用同步命令。
  1. rsync -vzrtopg --progress --delete [email protected]主機ip:/home/judge/data /home/judge/
複製程式碼 最後,在各判題機重啟判題程式。
  1. sudo pkill judged&&sudo judged
複製程式碼

虛擬機器測試,用3臺虛擬機器+1臺真機,4機同步判題

相關推薦

HUSTOJ-建立分散式系統

原文:http://blog.csdn.net/zhblue/article/details/7366381 HUSTOJ 支援一臺資料庫伺服器,多臺web伺服器和多臺判題伺服器,以承擔較高的訪問負荷。 首先,需要建立用於從遠端連線資料庫的帳號。 GRANT ALL

基於Ubuntu 16.04的HUSTOJ線上系統的搭建

開啟Ubuntu終端鍵入sudo apt-get update此命令為了升級Ubuntu軟體庫接下來鍵入sudo apt-get install subversion安裝subversion然後從svn獲取hustoj 鍵入sudo svn co https://github

ACM線上系統(OJ)的實現(java+python)

學院一直是有一個自己的oj的,但是由於最近判題崩了,需要修復一下,拿到判題程式碼,開啟卻是一手node.js,讓我一個搞Java的著實懵逼,因為以前學過點js,摸清判題邏輯,一步一步console.log來調bug,最後還是太複雜,把心態調崩了。最後想了了想判題就是那個流程,還是自己寫一個吧,而

差分約束系統建立詳解+

差分約束系統 一、何為差分約束系統: 差分約束系統(system of difference constraints),是求解關於一組變數的特殊不等式組之方法。如果一個系統由n個變數和m個約束條件組成,其中每個約束條件形如xj-xi<=bk(i,j∈[1,n],

cas單點登陸系統-建立單點登陸系統的應用

dep authent loginurl get nth spring password list c項目 上一篇如果已經操作成功,說明casServer已經實現了,下面就是搭建casClient與casServer聯合調試。代碼已經上傳到github上。你可以下載看看,如

elkb+redis建立日誌收集分析系統

elk redis 一、ELKB說明elastic提供了一套非常高級的工具ELKB來滿足以上這幾個需求。ELKB指的是用於日誌分析或者說數據分析的四個軟件,各自擁有獨立的功能又可以組合在一起。先來簡單介紹一下這四個軟件。Elastic Search: 從名稱可以看出,Elastic Search 是用

【2018中國計算機大會】阿里雲高階總監談超大規模超高效能分散式快儲存系統

新型硬體(如NVRAM、RDMA、GPU/TPU等)及其構建的異構複雜環境,與既有硬體環境的巨大差異,導致傳統的演算法、資料結構甚至是涉及原則和經驗法則等難以為繼,對計算智慧與大資料處理帶來新的挑戰和機遇。 10月27日下午,2018中國計算機大會上舉辦了主題“新型硬體環境下大資料處理技術”的技術論壇,一起

分散式版本控制系統:Git學習筆記

文章目錄 概述 Git是什麼 Git的安裝 建立版本庫 編寫檔案上傳 使用GitHub 概述 身為DBA的我前夕確實對於程式碼比較陌生啊,Git也是很少聽過。

阿里雲高階總監談超大規模超高效能分散式快儲存系統

摘要: 10月27日下午,2018中國計算機大會上舉辦了主題“新型硬體環境下大資料處理技術”的技術論壇,一起探討新型硬體帶來的變化。論壇上,阿里雲高階總監馬濤針對超大規模超高效能分散式塊儲存系統ESSD進行了報告分析。 新型硬體(如NVRAM、RDMA、GPU/TPU等)及其構建的異構複雜環境,與既有硬體環

SQLServer之建立分散式事務

分散式事務建立注意事項 指定一個由 Transact-SQL 分散式事務處理協調器 (MS DTC) 管理的 Microsoft 分散式事務的起點。 執行 BEGIN DISTRIBUTED TRANSACTION 語句的 SQL Ser

git--分散式版本管理系統

參考部落格:廖雪峰的官方網站 一、window安裝git Git官網直接下載安裝程式,預設選項安裝即可。 1、設定自己的git(cmd命令或者git bash進入) git config --global user.name "myname" git config --global user.e

Virtual Judge的交

1.進入相關題組,檢視題目   2.點選檢視題幹     3.根據題目在自己電腦上的IDE上(你自己的程式設計軟體,可以試VC++6.0、DEV、Codeblocks等)編寫你的程式碼   4.然後根據題目中給出的測試資料

分散式版本控制系統】GIT問題彙總

一.Git 安裝(on Windows) 版本:git-2.12.1-64-bit.exe 官網即可下載(慢) ✓ Use Git from the Windows ✓ Use the OpenSSL library ✓ Checkout Windo

分散式版本控制系統GIT的使用

一、什麼是Git   Git是一個分散式版本控制系統,Git 和其他版本控制系統的主要差別在於,Git 只關心檔案資料的整體是否發生變化,而大多數其他系統則只關心檔案內容的具體差異(如CVS、Subversion等)。而Git並不儲存這些前後變化的差異資料。Git更像是把變化的檔案作快照後記錄在一個微型的檔

分散式版本控制系統Git的常用指令

本地創庫:git init 檢視日誌:git log                   git log --pretty -online 檢視狀態:git status   檢視

集中式VS分散式版本控制系統(二)

Linus一直痛恨的CVS及SVN都是集中式的版本控制系統,而Git是分散式版本控制系統,集中式和分散式版本控制系統有什麼區別呢? 集中式版本控制系統,版本庫是集中存放在中央伺服器的, 而幹活的時候,用的都是自己的電腦,所以要先從中央伺服器取得最新的版本,然後開始幹活,幹完活了,再

分散式檔案儲存系統技術及實現

本課程針對分步式檔案儲存系統的實現進行講解,首先分析為什麼要使用這種分步式儲存系統,以及這種系統在設計時需要注意的問題,並比較現在市面常見的分步式儲存系統(HDFS、Ceph等),展示阿里Pangu系統針對其中問題的解決方法,並結合Pangu系統說明分步式儲存系統的設計要點。 開始學習:分散式檔

HDFS(分散式檔案儲存系統

一 、HDFS命令列客戶端的常用操作命令 (1)start-dfs.sh :自動啟動整個叢集          stop-dfs.sh :自動停止整個叢集 (2)上傳檔案到hdfs中:    hadoop fs -pu

GIT——分散式版本控制系統

Git是一款免費、開源的分散式版本控制系統,用於敏捷高效地處理任何或小或大的專案,可以有效、高速的處理從很小到非常大的專案版本管理。 分散式相比於集中式的最大區別在於開發者可以提交到本地,每個開發者通過克隆(git clone),在本地機器上拷貝一個完整的Git倉庫。 學習git可

大資料-Hadoop-分散式資源排程系統YARN部署

1:YARN部署 1.1:etc/hadoop/mapred-site.xml:     <property>         <name>mapreduce.framework.name</name&