项目概要
1.项目背景:
飞机航班经常会因为各种原因,如天气原因,雷雨、大雾、大风等情况,或机场原因,导致航班的延误甚至取消,现在有一批航班的历史数据,基于这些数据,对航班的各种重要指标做统计分析,如最繁忙航线、某机场起降最频繁时段等等;最后,利用机器学习,对航班延误做预测,旅客可参考这些统计及预测结果调整行程安排。
2.建设目标:
亲自动手搭建项目所需的实验环境:搭建hadoop集群、分析航空数据的一些指标;
需求分析
1.需求介绍:分析航班相关的各项指标
2.功能点:数据清洗
功能描述:对航班数据flights.csv及airport.csv文件进行数据的清洗,备接下来的数据分析使用。
3.功能点:打开hive分析环境
功能描述:打开数据分析的环境,使用hive命令行的方式分析数据;
4.功能点:读取航班及机场信息
功能描述:使用hive来读取航班及机场信息,并分别注册成临时表,在接下来的分析中会用到这两个视图。
5.功能点:分析共有哪些航班?
功能描述:分析共有哪些航班,对重复的航班进行过滤,只要从航班数据中将经过去重后的航班号求出即可
6.功能点:航班最频繁的5条航线
功能描述:航班从起飞机场origin到落地机场dest(即:origion -> dest),简单定义为航线,现要统计最频繁的5条航线,先将数据按照origin,dest分组,再按每组的个数降序排序,取头5条,从而统计出来航班最频繁的5条航线的相关信息
7.功能点:航班最空闲的航线
功能描述:与上一个需求基本相似,排序顺序相反,以一条数据
8.功能点:航班最多的机场统计
功能描述:将航班flights数据按照origin起飞地分组,降序排序,取头一个
9.功能点:延误最少航班统计
功能描述:先获得每架航班的出发总延误时间,进行降序排序,取头一条;即:对flights数据按照航班分组,求每组的延误时间总和,并降序排序,取头一条
解决方案
架构简介:
本案例使用Hadoop作为底层支持,其中HDFS提供底层存储支持,Yarn提供集群中应用的资源调度支持;Hive提供数据访问支持。
模块名称:(实际使用了哪些模块都要在这里体现出来,并要有描述)
数据存储模块:
数据存储在HDFS中
数据计算模块:
使用hive对表数据进行分析计算
.
准备工作
数据介绍:共两份数据:航班数据及机场数据。
不同年份的航班信息数据,此处以2000年的数据2000.csv为例,字段及说明如下表:
航班信息数据介绍:
Name Description 字段描述
1 Year 1987-2008 此飞行记录所属年份
2 Month 1~12 此飞行记录所属月份
3 DayofMonth 1~31 此飞行记录所属当月的第几天
4 DayOfWeek 1 (Monday) - 7 (Sunday) 此飞行发生在本周第几天
5 DepTime actual departure time (local, hhmm) 实际飞离机场时间(小时分钟,如1940表示19点40分)
6 CRSDepTime scheduled departure time (local, hhmm) 计划分离机场时间(小时分钟,如1940表示19点40分)
7 ArrTime actual arrival time (local, hhmm) 实际抵达机场时间(小时分钟,如1940表示19点40分)
8 CRSArrTime scheduled arrival time (local, hhmm) 计划抵达机场时间(小时分钟,如1940表示19点40分)
9 UniqueCarrier unique carrier code 航空公司代码
10 FlightNum flight number 航班号
11 TailNum plane tail number 机尾编号
12 ActualElapsedTime in minutes 航程实际耗时(单位分钟)
13 CRSElapsedTime in minutes 航程计划耗时(单位分钟)
14 AirTime in minutes 飞机空中飞行时长(单位分钟)
15 ArrDelay arrival delay, in minutes 抵达晚点时长(单位分钟)
16 DepDelay departure delay, in minutes 出发延误时长(单位分钟)
17 Origin origin IATA airport code 出发所在机场编号(国际航空运输协会指定)
18 Dest destination IATA airport code 抵达机场编号(国际航空运输协会指定)
19 Distance in miles 航程(单位英里)
20 Cancelled was the flight cancelled? 航班是否取消
21 CancellationCode reason for cancellation (A = carrier, B = weather, C = NAS, D = security) 航班取消代码
22 Diverted 1 = yes, 0 = no 是否改道(1是,0否)
23 WeatherDelay in minutes 天气原因延迟
24 SecurityDelay in minutes 安全原因延迟
机场数据:数据介绍:
iata 国际航空运输协会代码
airport 机场
city 城市
state 州
country 国家
lat 纬度
long 经度
数据采集
由于本案例采集的获取数据的手册并非是大数据行业中常用的数据采集方案,与大数据相关性不大,所以此案例直接提供采集下来的数据,供案例使用。
数据清洗
航空数据集和机场数据中存在一些不合理的数据,需要对这部分做清洗,清洗后的结果留待接下来的操作中使用。
数据存储
本案例的重点是数据分析,此部分可以自己使用传统的JDBC方式存在到关系型数据库中。
数据计算
数据计算即是数据分析,本案例中对机场数据及航班数据进行分析,得出各项指标。数据计算常用手段有MapReduce, Hive,等等,本案例选择使用hive进行数据分析。具体的数据分析请见实验手册。
数据可视化
隐藏此模块。
开始实验
介绍:主要分两部分,第一部分是实验环境的准备,包括“hadoop集群安装部署”;第二部分是真正的数据分析部分。