1、首先将data.tar.gz解压到自定义目录中
注意:由于数据文件的压缩包比较大,解压过程可能会持续3~5分钟,请耐心等待。
[root@node3 ~]# cd /opt/software/
[root@node3 software]# tar -xzf data.tar.gz -C /opt/
2、利用SQLyog或者其他数据库工具将保存在/opt/data目录中名为kongguan.sql的文件导入到MySQL数据库
- 使用 【mysql -uroot -p】 登录到MySQL(输入密码登录123456)
- 使用 show databases 命令,查看数据库列表
-
创建数据库:
mysql> create database kongguan;
mysql> use kongguan;
-
进入kongguan数据库,使用 source 命令执行kongguan.sql脚本导入数据(假设sql文件的位置:/opt/data/kongguan.sql)
mysql> use kongguan;
mysql> source /opt/data/kongguan.sql;
导入数据后,可使用 MySQL的show tables; 语句查看导入情况:
3、将HBase备份文件(空管数据及实时飞行数据)导入到集群的HBase数据库
-
切换到node3节点,在控制台输入以下命令,在HDFS上创建如下目录
[root@node3 ~]# hadoop fs -mkdir /hbase/table/ [root@node3 ~]# hadoop fs -mkdir /hbase/table/Kg_CallSaturation [root@node3 ~]# hadoop fs -mkdir /hbase/table/Kg_ATC [root@node3 ~]# hadoop fs -mkdir /hbase/table/Kg_PlanData [root@node3 ~]# hadoop fs -mkdir /hbase/table/Kg_ATCDutyInfo [root@node3 ~]# hadoop fs -mkdir /hbase/table/Kg_FlightState [root@node3 ~]# hadoop fs -mkdir /hbase/table/Kg_WarnFlightHistory [root@node3 ~]# hadoop fs -mkdir /hbase/table/Kg_AFTN [root@node3 ~]# hadoop fs -mkdir /hbase/table/Kg_WarnSimilarHistory [root@node3 ~]# hadoop fs -mkdir /hbase/table/Kg_MultiRadarData
查看HDFS上目录的创建情况:
- 把数据上传至hdfs
注意:由于数据量较大,上传数据的过程可能会持续3-5分钟的时间,请耐心等待。
[root@node3 ~]# hadoop fs -put /opt/data/Kg_CallSaturation /hbase/table/Kg_CallSaturation
[root@node3 ~]# hadoop fs -put /opt/data/Kg_ATC /hbase/table/Kg_ATC
[root@node3 ~]# hadoop fs -put /opt/data/Kg_PlanData /hbase/table/Kg_PlanData
[root@node3 ~]# hadoop fs -put /opt/data/Kg_ATCDutyInfo /hbase/table/Kg_ATCDutyInfo
[root@node3 ~]# hadoop fs -put /opt/data/Kg_FlightState /hbase/table/Kg_FlightState
[root@node3 ~]# hadoop fs -put /opt/data/Kg_WarnFlightHistory /hbase/table/Kg_WarnFlightHistory
[root@node3 ~]# hadoop fs -put /opt/data/Kg_AFTN /hbase/table/Kg_AFTN
[root@node3 ~]# hadoop fs -put /opt/data/Kg_WarnSimilarHistory /hbase/table/Kg_WarnSimilarHistory
[root@node3 ~]# hadoop fs -put /opt/data/Kg_MultiRadarData /hbase/table/Kg_MultiRadarData
-
进入HBase客户端运行【hbase shell】进入
[root@node3 software]# hbase shell
-
创建HBase表
create 'Kg_CallSaturation','SaturationHome'
create 'Kg_ATC','ATCHome'
create 'Kg_PlanData','ReportHome'
create 'Kg_ATCDutyInfo','ATCDutyHome'
create 'Kg_FlightState','StateHome'
create 'Kg_WarnFlightHistory','WarnFlightHome'
create 'Kg_AFTN','AFTNHome'
create 'Kg_WarnSimilarHistory','WarnSimilarHome'
create 'Kg_MultiRadarData','RadarHome'
- 查看创建情况
- 退出HBase客户端
- 然后执行导入操作
注意:由于此过程要执行多个MapReduce操作,可能需要5-10分钟左右的时间,请耐心等待。
解释
[root@node3 software]# hbase org.apache.hadoop.hbase.mapreduce.Import Kg_CallSaturation /hbase/table/Kg_CallSaturation/Kg_CallSaturation
[root@node3 software]# hbase org.apache.hadoop.hbase.mapreduce.Import Kg_ATC /hbase/table/Kg_ATC/Kg_ATC
[root@node3 software]# hbase org.apache.hadoop.hbase.mapreduce.Import Kg_PlanData /hbase/table/Kg_PlanData/Kg_PlanData
[root@node3 software]# hbase org.apache.hadoop.hbase.mapreduce.Import Kg_ATCDutyInfo /hbase/table/Kg_ATCDutyInfo/Kg_ATCDutyInfo
[root@node3 software]# hbase org.apache.hadoop.hbase.mapreduce.Import Kg_FlightState /hbase/table/Kg_FlightState/Kg_FlightState
[root@node3 software]# hbase org.apache.hadoop.hbase.mapreduce.Import Kg_WarnFlightHistory /hbase/table/Kg_WarnFlightHistory/Kg_WarnFlightHistory
[root@node3 software]# hbase org.apache.hadoop.hbase.mapreduce.Import Kg_AFTN /hbase/table/Kg_AFTN/Kg_AFTN
[root@node3 software]# hbase org.apache.hadoop.hbase.mapreduce.Import Kg_WarnSimilarHistory /hbase/table/Kg_WarnSimilarHistory/Kg_WarnSimilarHistory
[root@node3 software]# hbase org.apache.hadoop.hbase.mapreduce.Import Kg_MultiRadarData /hbase/table/Kg_MultiRadarData/Kg_MultiRadarData
例如:
- 查看数据导入情况
4、实时飞行数据说明
- 解压data.tar.gz后的文件导入到集群的HBase数据库,所以直接读取HBase即可,但是由于真实的数据里实时飞行数据的时间间隔过短,在地图上不能感觉到飞机的实时运动状态,所以在项目中使用的实时飞行数据是从HBase中取出的真实飞行数据经过一定的处理后将时间间隔变大的数据,这样做可以在地图上明显感觉到飞机的运动状态。
- 当前项目提供了已经处理好的实时飞行数据,即:part-00000 ~ part-00011。使用时需要根据当前位置修改后台读取的位置即可,如下图:
part-000xx文件的内容格式如下:
这些文件可以放到本地,也可以放到HDFS上,例如:如果要在【client节点机器上】上读取"实时飞行数据",可以使用【scp】命令将该数据从node3节点复制到client节点上。
[root@node3 ~]# scp -rq /opt/data client:/opt/
在后面阶段任务,读取时要根据自己的实际存放位置修改代码中的读取路径: