这个毕业设计项目采用SpringBoot+Vue+MySQL技术栈构建了一个旅游数据分析平台,并创新性地整合了Hive数据仓库技术。作为一套完整的解决方案,它不仅包含可运行的源码和数据库脚本,还配套了学术论文和部署文档,特别适合计算机相关专业学生作为毕业设计参考。
我在实际评审毕业设计时发现,这类"技术栈组合+垂直领域应用"的项目最能体现学生综合能力。该项目的亮点在于:
后端技术栈:
前端技术栈:
提示:技术版本选择需注意兼容性,例如SpringBoot 2.7.x与Hive 3.x的JDBC驱动存在已知的日志冲突问题,需要在pom.xml中排除log4j依赖。
mermaid复制graph TD
A[前端Vue] -->|Axios| B[SpringBoot REST API]
B --> C[MyBatis-Plus]
C --> D[MySQL业务数据]
B --> E[Hive JDBC]
E --> F[Hive数据仓库]
F -->|HDFS| G[原始旅游数据]
(注:实际项目中应删除此Mermaid图表,此处仅为说明架构关系)
数据采集方案:
java复制// 示例:Hive数据加载代码
@Repository
public class TourismDataLoader {
@Autowired
private JdbcTemplate hiveJdbcTemplate;
public void loadDailyData(String filePath) {
String sql = String.format(
"LOAD DATA LOCAL INPATH '%s' " +
"OVERWRITE INTO TABLE tourism_analysis_raw " +
"PARTITION (dt='%s')",
filePath,
LocalDate.now().toString()
);
hiveJdbcTemplate.execute(sql);
}
}
项目需要同时处理:
解决方案:
yaml复制# application.yml配置片段
spring:
datasource:
mysql:
url: jdbc:mysql://localhost:3306/tourism
username: root
password: 123456
hive:
url: jdbc:hive2://hadoop01:10000/default
username: hive
password: hive
driver-class-name: org.apache.hive.jdbc.HiveDriver
Vue前端与SpringBoot后端分离部署时出现的CORS问题:
java复制@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("GET", "POST")
.allowCredentials(true)
.maxAge(3600);
}
}
分区设计:按日期和地区双重分区
sql复制CREATE TABLE tourism_analysis (
user_id BIGINT,
attraction STRING,
duration INT
) PARTITIONED BY (dt STRING, region STRING);
索引优化:对常用查询字段建立索引
sql复制CREATE INDEX idx_attraction ON TABLE tourism_analysis (attraction)
AS 'COMPACT' WITH DEFERRED REBUILD;
数据压缩:启用Snappy压缩
sql复制SET hive.exec.compress.output=true;
SET mapred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec;
| 组件 | CPU | 内存 | 磁盘 | 备注 |
|---|---|---|---|---|
| MySQL | 2核 | 4GB | 100GB | 建议SSD |
| Hive | 4核 | 8GB | 500GB | 依赖Hadoop集群 |
| SpringBoot | 2核 | 2GB | 50GB | 默认端口8080 |
| Nginx | 1核 | 1GB | 20GB | 前端静态资源代理 |
环境检查:
bash复制# 检查Java版本
java -version
# 检查MySQL服务
systemctl status mysql
# 检查Hadoop集群
hdfs dfsadmin -report
数据库初始化:
sql复制-- MySQL用户表结构示例
CREATE TABLE `t_user` (
`id` bigint NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
前端构建优化:
bash复制# 安装依赖
npm install --registry=https://registry.npmmirror.com
# 生产环境构建
npm run build -- --mode production
系统架构设计
核心算法说明
性能测试方案
技术组合创新:
业务创新:
工程实践创新:
移动端适配:
数据分析增强:
运维监控:
在实际部署过程中,我发现Hive查询的稳定性很大程度上取决于Hadoop集群的配置。建议在论文的实验章节加入不同集群配置下的性能对比数据,这能显著提升论文的技术深度。另外,Vue前端打包时需要注意修改axios的baseURL配置,这个细节很多同学容易遗漏,导致部署后出现API 404错误。