目录

基于 Hadoop 的大数据分析系统设计与实现

一个用于课程设计/毕业设计答辩演示的前后端分离 Web 系统,覆盖大数据采集、存储、分析、可视化和报表导出全流程。

1. 项目简介

1.1 技术栈

  • 前端:Vue 3 + TypeScript + Pinia + Vue Router + Element Plus + ECharts
  • 后端:Java 17 + Spring Boot 3 + MyBatis-Plus + Spring Security + JWT
  • 数据库:MySQL 8.x
  • 大数据能力(可切换实现):HDFS / Hive / Spark(mockreal
  • 接口风格:RESTful,统一返回格式:{ code, message, data }

1.2 业务场景

默认内置场景:电商用户行为大数据分析

  • 原始字段示例:event_timeuser_iditem_idcityactionpay_amount
  • 指标示例:PV、UV、GMV、支付转化率、城市热度、TOP 商品
  • 演示链路:数据上传 -> 本地/HDFS 存储 -> Hive 查询 -> Spark 任务分析 -> 大屏/报表展示

1.3 核心能力

  • HDFS 文件管理:目录浏览、上传、下载、删除、新建目录
  • Hive 分析:SQL 执行、结果展示、历史记录、模板 SQL
  • Spark 分析任务:任务发起、状态流转、日志查看、结果回写
  • 可视化大屏:趋势分析、TOP 分析、区域热度、流程示意
  • 系统管理:用户/角色/菜单权限、操作日志、监控总览

2. 项目目录结构

.
├── backend
│   ├── pom.xml
│   └── src/main
│       ├── java/com/graduation/hadoop/analysis
│       │   ├── aspect
│       │   ├── common
│       │   ├── config
│       │   ├── controller
│       │   ├── dto
│       │   ├── entity
│       │   ├── exception
│       │   ├── mapper
│       │   ├── security
│       │   ├── service
│       │   └── util
│       └── resources
│           ├── application.yml
│           └── db
│               ├── schema.sql
│               └── data.sql
├── frontend
│   ├── package.json
│   ├── vite.config.ts
│   └── src
│       ├── api
│       ├── layout
│       ├── router
│       ├── stores
│       ├── styles
│       └── views
│           ├── auth
│           ├── dashboard
│           ├── datasets
│           ├── hdfs
│           ├── hive
│           ├── spark
│           ├── reports
│           ├── monitor
│           └── system
├── docs
├── scripts
│   ├── init-demo.ps1
│   └── start-all.ps1
└── docker
    ├── docker-compose.yml
    ├── backend.Dockerfile
    ├── frontend.Dockerfile
    └── nginx.conf

3. 数据库说明

SQL 文件位置:

  • 建表脚本:backend/src/main/resources/db/schema.sql
  • 示例数据:backend/src/main/resources/db/data.sql

核心表:

  1. sys_user
  2. sys_role
  3. sys_menu
  4. sys_user_role
  5. sys_role_menu
  6. dataset
  7. file_record
  8. hive_query_record
  9. spark_task
  10. spark_task_log
  11. report_record
  12. operation_log

4. 快速启动

4.1 环境要求

  • JDK 17+
  • Maven 3.9+
  • Node.js 18+
  • MySQL 8.x

4.2 初始化数据库

方式 1:手动导入

mysql -uroot -proot < backend/src/main/resources/db/schema.sql
mysql -uroot -proot < backend/src/main/resources/db/data.sql

方式 2:脚本导入

powershell -ExecutionPolicy Bypass -File scripts/init-demo.ps1 -User root -Password root

4.3 启动后端(推荐)

说明:在中文路径环境下,建议用 mvn package + java -jar,不要优先使用 spring-boot:run

cd backend
mvn clean package -DskipTests
java -jar target/hadoop-analysis-backend-1.0.0.jar

如本机有多个 Java,请确保使用 JDK17:

$env:JAVA_HOME="E:\cs\java\jdk-17.0.5"
$env:Path="$env:JAVA_HOME\bin;$env:Path"

4.4 启动前端

cd frontend
npm install
npm run dev

4.5 一键启动(可选)

powershell -ExecutionPolicy Bypass -File scripts/start-all.ps1

访问地址:

  • 前端:http://localhost:5173
  • 后端:http://localhost:8080

默认账号:

  • 用户名:admin
  • 密码:123456

5. 接口模块

  • /api/auth/*:认证与用户信息
  • /api/datasets/*:数据源管理、文件上传
  • /api/hdfs/*:HDFS 文件管理
  • /api/hive/*:Hive SQL 分析
  • /api/spark/tasks/*:Spark 任务管理
  • /api/reports/*:报表生成与导出
  • /api/dashboard/*:仪表盘统计
  • /api/monitor/*:系统监控与日志
  • /api/system/*:用户、角色、菜单、场景配置

6. 演示流程建议

  1. 使用 admin / 123456 登录系统
  2. 查看首页大屏指标和趋势图
  3. 在数据源模块创建数据集并上传 CSV
  4. 在 HDFS 模块浏览目录与文件
  5. 在 Hive 模块执行模板 SQL,查看历史记录
  6. 在 Spark 模块发起任务,观察状态和日志
  7. 在报表中心生成并导出 Excel/PDF
  8. 在系统监控查看接口调用和操作日志

7. Hadoop 实现切换

通过配置切换 mockreal

app:
  bigdata:
    hdfs-mode: mock
    hive-mode: mock
    spark-mode: mock

对应扩展点:

  • MockHdfsGateway / RealHdfsGateway
  • MockHiveGateway / RealHiveGateway
  • MockSparkGateway / RealSparkGateway

8. Docker(可选)

cd docker
docker compose up -d --build

基于 Hadoop 的大数据分析系统项目提交说明

关于

基于 Hadoop 生态的大数据分析系统,采用 Spring Boot 3 + Vue 3 前后端分离架构,面向电商用户行为场景,支持数据集管理、HDFS 文件管理、Hive SQL 查询、Spark 分析任务、可视化大屏、报表导出与权限管理。

249.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号