Hadoop 分布式集群一键部署系统(Hadoop Auto Deployment System,简称 HADS)是一个基于 JavaFX 的图形化工具,旨在简化 Hadoop 分布式集群的部署过程。通过友好的向导式界面,用户可以在 30 分钟内完成 Hadoop 集群的自动化部署。
- 🎯 图形化向导:替代复杂的命令行操作,降低技术门槛
- ⚡ 快速部署:30 分钟内完成集群部署,效率提升 10 倍
- 🔧 标准化配置:固化最佳实践,避免人工配置差异
- ✅ 自动验证:自动执行服务状态检查,确保部署即可用
- 🔄 灵活模式:支持一键部署和自定义部署两种模式
- SSH 连接配置和测试
- 批量连接测试(3 台虚拟机)
- 智能故障诊断(网络、SSH 服务、认证等)
- 配置持久化(密码加密存储)
- 实时输入验证
- SSH 会话管理和自动重连
详细使用说明:虚拟机连接功能使用说明
- 一键部署模式(自动分配角色)
- 自定义部署模式(用户配置角色)
- 网络配置
- 系统参数配置
- Hadoop 组件配置
- 环境预处理
- 组件安装
- 配置文件生成与分发
- 集群初始化
- 实时监控节点状态
- 服务管理(启动/停止/重启)
- WebUI 快捷访问
- 服务状态验证
- 验收报告生成
- JavaFX 17+:图形界面开发框架
- Scene Builder:界面设计工具
- MVC 模式:分离视图与业务逻辑
- JSch 0.1.55:SSH 远程连接与命令执行
- Gson 2.10.1:JSON 配置文件处理
- Log4j2 2.20.0:日志管理
- Hadoop Client 3.1.3:Hadoop 客户端库
- 虚拟机操作系统:CentOS 7 64 位
- VMware 版本:VMware Workstation Pro 17.x
- Hadoop 版本:3.1.3(默认)
- JDK 版本:1.8.0_212(默认)
- 操作系统:Windows 10/11(64 位)或 CentOS 7(64 位)
- JDK:JDK 1.8 或更高版本
- JavaFX:JavaFX 17+
- Maven:Maven 3.6+
- 内存:建议 8GB 以上
- 磁盘空间:建议 50GB 以上
- 操作系统:CentOS 7 64 位
- 虚拟机数量:3 台
- 每台配置:
- CPU:2 核心
- 内存:4GB
- 磁盘:50GB
- 网络:静态 IP 地址,与宿主机互通
- SSH 服务:已安装并启动
git clone https://github.com/your-repo/Hadoop.git
cd Hadoopmvn clean compilemvn package# 方式1:使用 Maven 运行
mvn javafx:run
# 方式2:直接运行 JAR 包
java -jar target/Hadoop-1.0-SNAPSHOT.jar- 启动应用程序
- 输入 3 台虚拟机的 IP 地址
- 输入 SSH 登录凭证(用户名和密码)
- 点击"测试连接"按钮
- 等待连接测试完成
- 连接成功后点击"下一步"
详细步骤请参考:虚拟机连接功能使用说明
Hadoop/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/lyq/
│ │ │ ├── Main.java # 应用程序入口
│ │ │ ├── controller/ # JavaFX 控制器
│ │ │ │ └── ConnectionController.java
│ │ │ ├── service/ # 核心服务层
│ │ │ │ ├── SSHConnectionService.java
│ │ │ │ ├── ConfigService.java
│ │ │ │ └── ValidationService.java
│ │ │ ├── model/ # 数据模型
│ │ │ │ ├── VMConnectionConfig.java
│ │ │ │ ├── ConnectionResult.java
│ │ │ │ └── ConnectionStatus.java
│ │ │ ├── util/ # 工具类
│ │ │ │ ├── SSHUtil.java
│ │ │ │ ├── NetworkUtil.java
│ │ │ │ └── EncryptionUtil.java
│ │ │ └── exception/ # 自定义异常
│ │ │ ├── ConnectionException.java
│ │ │ └── ValidationException.java
│ │ └── resources/
│ │ ├── fxml/ # JavaFX 界面文件
│ │ │ └── connection.fxml
│ │ ├── css/ # 样式文件
│ │ │ └── connection.css
│ │ └── log4j2.xml # 日志配置
│ └── test/
│ └── java/ # 测试代码
├── docs/ # 文档
│ ├── 虚拟机连接功能使用说明.md
│ └── 测试验证清单.md
├── .kiro/ # Kiro 配置
│ ├── specs/ # 功能规格说明
│ └── steering/ # AI 助手指导文档
├── pom.xml # Maven 配置
└── README.md # 项目说明
- 路径:
~/.hads/ - 配置文件:
~/.hads/config.json - 日志目录:
~/.hads/logs/ - 密钥目录:
~/.hads/keys/ - 缓存目录:
~/.hads/cache/
- 日志级别:INFO(默认)
- 滚动策略:单文件最大 100MB,保留 10 个文件
- 日志格式:
[时间] [级别] [类名] - 消息
- 包命名:
com.lyq.* - 类命名:大驼峰命名法(PascalCase)
- 方法命名:小驼峰命名法(camelCase)
- 注释:所有公共类和方法必须有 JavaDoc 注释
- 语言:代码注释和文档使用中文
- MVC 模式:分离视图、控制器和模型
- 服务层模式:封装业务逻辑
- 工厂模式:创建对象实例
- 观察者模式:实时更新部署进度
- 单元测试:使用 JUnit 4
- 测试覆盖率:核心功能 > 80%
- 集成测试:测试完整业务流程
- 提交信息格式:
[类型] 简短描述 - 类型:
feat:新功能fix:Bug 修复docs:文档更新style:代码格式调整refactor:代码重构test:测试相关chore:构建/工具相关
A: 请检查 JDK 版本(需要 1.8+)和 JavaFX 是否正确安装。
A: 请检查:
- 虚拟机是否启动
- IP 地址是否正确
- SSH 服务是否运行
- 网络是否互通
- 用户名和密码是否正确
详细排查步骤请参考:虚拟机连接功能使用说明
A: 配置文件保存在 ~/.hads/config.json
A: 日志文件保存在 ~/.hads/logs/ 目录
欢迎贡献代码、报告问题或提出建议!
- Fork 本项目
- 创建特性分支(
git checkout -b feature/AmazingFeature) - 提交更改(
git commit -m '[feat] Add some AmazingFeature') - 推送到分支(
git push origin feature/AmazingFeature) - 提交 Pull Request
- 使用 GitHub Issues 报告问题
- 提供详细的问题描述和复现步骤
- 附上相关日志和截图
本项目采用 MIT 许可证。详见 LICENSE 文件。
- 项目主页:https://github.com/your-repo/Hadoop
- 问题反馈:https://github.com/your-repo/Hadoop/issues
- 邮箱:your-email@example.com
感谢所有为本项目做出贡献的开发者!
版本:1.0.0
更新日期:2024-01-01
状态:开发中