1. Hydro 在线评测系统概述
Hydro 是一款现代化、模块化的在线评测系统(Online Judge)核心框架与社区平台。与传统的 OJ 系统相比,Hydro 最大的特点是其模块化设计理念——它像乐高积木一样可以自由组合,用户能够轻松搭建从算法竞赛、作业提交到在线考试等各种评测场景。
1.1 核心设计理念
Hydro 在设计上追求三个核心目标:
- 高性能:采用分布式沙箱架构确保判题过程快速且安全
- 灵活性:通过模块化设计支持多种评测场景的快速搭建
- 公平性:完善的隔离机制确保评测结果的准确性和公正性
系统支持实时榜单、比赛克隆等高级功能,特别适合需要频繁组织编程竞赛的教育机构和技术社区。
1.2 技术架构特点
Hydro 的技术栈选择体现了现代 Web 应用的典型特征:
- 前后端分离:基于 Node.js 的后端服务和现代化的前端框架
- 微服务架构:各功能组件可独立部署和扩展
- 容器化判题:使用沙箱技术隔离每个提交的执行环境
这种架构使得 Hydro 相比传统 OJ 系统更加轻量、灵活,且易于维护和扩展。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 安装环境准备
2.1 系统要求
在开始安装 Hydro 前,请确保您的系统满足以下最低要求:
| 组件 | 最低要求 | 推荐配置 |
|---|---|---|
| 操作系统 | Linux (Debian 10+/Ubuntu 20.04+) | Debian 12 |
| CPU | 双核 2GHz | 四核 3GHz+ |
| 内存 | 4GB | 8GB+ |
| 存储 | 20GB 可用空间 | SSD 50GB+ |
| 网络 | 稳定的互联网连接 | 100Mbps+ |
注意:CentOS 及其衍生版本由于内核版本问题,官方不推荐使用。如果必须使用,请确保内核版本≥4.4。
2.2 依赖检查
执行以下命令检查系统基础依赖:
bash复制# 检查系统架构
uname -m
# 检查内存大小
free -h
# 检查存储空间
df -h
# 检查CPU信息(确认是否支持AVX指令集)
grep avx /proc/cpuinfo
如果 CPU 不支持 AVX 指令集,系统将自动降级使用 MongoDB 4.4,这可能会影响性能。在虚拟机环境中,建议将 CPU 类型设置为"Host"以获得最佳性能。
3. 安装过程详解
3.1 获取安装脚本
Hydro 官方提供了自动化安装脚本,可通过以下命令获取并执行:
bash复制LANG=zh . <(curl https://hydro.ac/setup.sh)
这个命令会:
- 设置语言环境为中文
- 从官方服务器下载 setup.sh 脚本
- 在当前 shell 环境中执行该脚本
3.2 脚本执行流程解析
安装脚本的执行分为以下几个关键阶段:
3.2.1 权限验证阶段
bash复制if [ $EUID != 0 ]; then
echo "This script requires root however you are currently running under another user."
echo "Please use 'sudo su' to switch to root user before running this script."
echo "安装脚本需要使用 root 权限,请先使用 sudo su 切换到 root 用户后再运行此脚本。"
exit $?
fi
关键点:
- 检查有效用户 ID (EUID) 是否为 0(root)
