基于 Hadoop 和 Hive 的旅游景区数据的分析与可视化系统
对接和风天气 POI 与文旅统计公报真实数据的景区分析平台,模拟 Hadoop MapReduce 与 HiveQL 批处理,含全国地图散点与 LR+RF 客流预测,适合大数据可视化类毕业设计。
项目封面

项目概览
本系统整合和风天气全国景区 POI、马蜂窝 5A 景区与省级旅游统计校准数据,采用 Flask + SQLite 架构,模拟 Hadoop 四分片 MapReduce 批处理与 HiveQL 分析流水线。功能涵盖数据总览 KPI、景区多条件检索、年度对比与省级趋势分析、ECharts 全国景区分布地图、线性回归+随机森林融合月度客流预测,以及 Excel 报表导出与管理员 ETL 任务管理,适合作为毕业设计中 Hadoop/Hive 数仓模拟、旅游大数据分析与可视化方向。
项目说明
基于 Hadoop 和 Hive 的旅游景区数据的分析与可视化系统
项目简介
本系统是一个基于 Python Flask 框架的旅游景区数据分析与可视化平台,采用 SQLite 模拟 Hadoop MapReduce 批处理与 Hive 数仓 SQL 分析流程,对接真实开源景区数据集与文化和旅游统计公报分省数据,提供数据总览、景区检索、多维分析、地图可视化、客流预测、报表导出等功能模块,适用于旅游景区数据分析和客流趋势预测场景。
功能模块
| 模块 | 功能说明 |
|---|---|
| 数据总览 | 展示核心 KPI 指标(景区总数、覆盖省份、游客总量、总收入),各省游客量排名柱状图、景区等级分布饼图、全国月度客流趋势图、热门景区 TOP15 排行表 |
| 景区库 | 支持多条件(关键词、省份、等级)组合检索与分页浏览,提供景区详情查看(含月度客流与收入图表) |
| 多维分析 | 年度对比分析(分省游客量双年份柱状对比)、省级统计公报趋势折线图、知名与普通景区占比饼图、Hive 查询日志表 |
| 地图可视化 | 基于 ECharts geo 组件的全国景区分布散点图,支持缩放漫游与游客量热力映射 |
| 客流预测 | 基于线性回归 + 随机森林融合模型的景区月度客流预测,展示模型评估指标(R²、MAE)与历史同月对比 |
| 报表导出 | 支持景区基础数据、客流明细、省级统计三种 Excel 报表导出 |
| ETL/Hadoop | 管理员专属,模拟 Hadoop MapReduce 四分片批处理与 HiveQL 分析流水线,支持一键执行全部任务、查看 HDFS Reduce 结果与任务历史 |
| 系统管理 | 管理员专属,展示用户列表(含注册时间、最后登录)与系统操作日志 |
| 用户系统 | 注册、登录、角色权限(admin/user)、操作日志记录 |
数据来源
所有数据均为真实公开数据集,非 Mock 生成:
| 数据集 | 文件 | 记录数 | 说明 |
|---|---|---|---|
| 和风天气全国景区 POI | POI-Scenic-List-latest.csv | ~2600 条 | GitHub 开源,含景区名称、省/市、经纬度 |
| 马蜂窝知名 5A 景区 | tourist_attractions.csv | ~260 条 | 真实 5A 评定年份与坐标 |
| 省级旅游统计基准 | provincial_tourism_stats.base.csv | 186 行 | 大陆 31 省份 2019-2024 年度份额基准 |
| 省级旅游统计校准 | provincial_tourism_stats.csv | 204 行 | 经文旅部全国人次校准(2019=60.06亿、2024=56.15亿),含港澳台 |
数据说明:
- 景区等级:马蜂窝/关键词匹配为 5A,其余 POI 为未评级(不使用随机或 MD5 伪造)
- 景区月度客流:按校准后省级总量 + 等级/知名度权重分摊;收入 = 客流 × 门票
- 满意度:由等级/知名度/季节微调计算,与客流权重解耦
- 省级统计加总口径为省级接待人次之和,不等于全国去重出游人次
标准版目录结构
python-travel-fenxi/
├── app.py # Flask 应用主入口,路由定义与 API 接口
├── config.py # 应用配置(数据库路径、密钥、分页参数)
├── requirements.txt # Python 依赖包清单
├── data/
│ ├── POI-Scenic-List-latest.csv # 和风天气景区 POI 数据
│ ├── tourist_attractions.csv # 马蜂窝知名 5A 景区数据
│ ├── provincial_tourism_stats.base.csv # 省级统计份额基准
│ └── provincial_tourism_stats.csv # 校准后省级统计
├── database/
│ ├── db.py # SQLite 连接管理与会话工具
│ ├── schema.sql # 数据库建表脚本
│ └── tourism.db # SQLite 数据库文件(自动生成)
├── hadoop_pipeline/
│ ├── mapreduce_visitor_agg.py # MapReduce 批处理脚本(4 分片 Map → Reduce)
│ └── hdfs_data/ # 模拟 HDFS 输出目录
│ ├── _SUCCESS # 任务完成标记
│ ├── map/ # Map 阶段输出(part-m-00000~00003.json)
│ └── reduce/ # Reduce 阶段输出(part-r-00000.json)
├── hive_scripts/
│ ├── scenic_analysis.hql # HiveQL 分析脚本(5 条查询)
│ └── hive_runner.py # HiveQL 执行器(解析 HQL 并记录日志)
├── scripts/
│ ├── etl_import.py # ETL 全量导入(CSV → SQLite,含客流分摊)
│ ├── calibrate_provincial_stats.py # 省级统计校准脚本
│ └── train_visitor_model.py # 模型训练脚本(LR + RF 融合)
├── services/
│ ├── __init__.py # 服务模块导出
│ ├── auth.py # 认证与会话管理
│ └── analytics.py # 数据分析业务逻辑
├── models/
│ └── visitor_forecast.pkl # 训练完成的模型文件(自动生成)
├── static/
│ ├── css/
│ │ └── main.css # 自定义样式
│ └── js/
│ ├── app.js # 全局工具函数
│ ├── dashboard.js # 数据总览页
│ ├── scenic.js # 景区库页
│ ├── scenic_detail.js # 景区详情页
│ ├── analysis.js # 多维分析页
│ ├── map.js # 地图可视化页
│ ├── prediction.js # 客流预测页
│ ├── etl.js # ETL/Hadoop 页
│ └── admin.js # 系统管理页
├── templates/
│ ├── base.html # 基础模板(导航栏、CDN 引用)
│ ├── login.html # 登录页
│ ├── register.html # 注册页
│ ├── dashboard.html # 数据总览页
│ ├── scenic_list.html # 景区库页
│ ├── scenic_detail.html # 景区详情页
│ ├── analysis.html # 多维分析页
│ ├── map.html # 地图可视化页
│ ├── prediction.html # 客流预测页
│ ├── reports.html # 报表导出页
│ ├── etl.html # ETL/Hadoop 页
│ └── admin.html # 系统管理页
├── tests/
│ └── test_api.py # API 集成测试
├── docs/
│ └── CODE_REVIEW.md # 代码审查报告
├── exports/ # 报表导出目录(自动生成)
├── logs/ # 日志目录
├── 运行步骤必看/
│ └── window.md # Windows 运行步骤说明
├── mac_run.sh # macOS/Linux 一键启动脚本
├── window_run.bat # Windows 一键启动脚本
├── 训练手册.md # 模型训练手册
└── README.md # 项目简介
技术栈
| 类别 | 技术 |
|---|---|
| 后端 | Python 3.12 + Flask 3.0 |
| 数据库 | SQLite 3 |
| 前端 | HTML5 + Bootstrap 5.3 + ECharts 5.5 |
| 机器学习 | scikit-learn 1.5(线性回归 + 随机森林融合) |
| 数据处理 | pandas 2.2 + numpy 1.26 |
| 模型持久化 | joblib 1.4 |
| 密码安全 | Werkzeug pbkdf2:sha256 |
环境要求
| 项目 | 要求 |
|---|---|
| Python | 3.12 |
| 操作系统 | Windows / macOS / Linux |
| 内存 | 建议 2GB 以上 |
| 磁盘 | 约 500MB(含依赖和数据库) |
| 浏览器 | Chrome / Firefox / Safari / Edge 现代版本 |
账号信息
| 角色 | 用户名 | 密码 |
|---|---|---|
| 管理员 | admin | admin123 |
管理员拥有 ETL/Hadoop 和系统管理页面访问权限。新注册用户默认为普通用户角色。
获取完整源码
技术分类
包含内容
适合方向
适合计算机、旅游管理、大数据专业毕业设计中 Hadoop 批处理模拟、Hive 数仓分析与景区客流预测方向。
关于 AI源码
AI源码 整理计算机毕业设计、课程设计向的可运行项目参考,含说明文档与演示材料。完整源码请通过联系方式沟通获取。
相关推荐
查看全部 →
虚假新闻检测系统
基于 ConceptNN 概念神经网络的虚假新闻检测 FastAPI 服务,支持文本 Sentence-Transformer 与图像 ResNet18 双模态特征及增量学习,可对接 Java 后端实时预测,适合 NLP+CV 毕业设计。

微博热点数据分析与可视化系统
Flask 微博热搜分析平台:自动爬取热搜与评论、jieba 分词清洗、SnowNLP 情感分类,ECharts 热度排行/情感饼图/词云可视化,SQLite 存储与角色权限,适合 Python 数据分析毕业设计。

基于 Python 的短视频用户行为分析系统
基于 KuaiRec/KuaiRand 数据集的短视频分析平台:行为漏斗、推荐偏差、KMeans 聚类、TF-IDF/t-SNE、LightGCN 图推荐与 A/B 实验,Flask 仪表盘一键重训,适合推荐系统大数据毕业设计。

城市交通流量预测与拥堵成因分析系统
城市交通拥堵 monorepo:data-pipeline 多源时空特征、STGNN Proxy 流量预测、归因分析与 Leaflet 地图可视化,FastAPI 加载离线产物,适合交通大数据与计算机设计毕业设计。

电商用户行为漏斗与CRO转化率优化分析
电商漏斗 CRO 分析平台:页面/事件双漏斗、渠道设备多维诊断、PIE 优先级矩阵、卡方检验与 XGBoost 购买预测,Flask+ECharts 仪表板,支持 Retailrocket 真实数据,适合电商数据分析毕业设计。

基于 Python 的汽车市场数据分析与可视化平台
Flask 汽车市场分析平台:整合 Cars24/UCI Automobile 等多源真实数据集(统一 CNY),含多维分析、随机森林二手车价格预测、品牌对比与销量统计,适合 Python 数据分析毕业设计。