黄诗瑶
摘 要:随着轨道交通行业的日益发展,其业务数据的量级成指数增长,对传统的数据存储方案产生了巨大的冲击,在快速有效的对海量数据进行存储和查询以及对存储能力进行无缝扩容方面略显不足。文章从数据的存储、可靠性、扩容等方面介绍了hadoop技术;探讨了在轨道交通行业数据中心的建设方案中如何利用hadoop技术,提出了基于该方案企业可以在哪些方面进行数据挖掘的建议。
关键词:轨道交通;hadoop;数据中心;数据挖掘
1 引言
随着近几年互联网的火热,相关技术也有着质的进步,特别是在大数据这一方面。然而传统行业也意识到数据的重要性,纷纷建立起自己的大数据中心平台,迎接大数据时代的到来。
2 hadoop生态系统的研究
随着Apache Hadoop项目在2006年正式启动[1],到目前为止国内外已有很多知名企业在生产环境使用hadoop。其生态系统如图1所示,下面主要介绍下hadoop的文件存储、实时数据库以及数据仓库[2]。
2.1 文件存储
HDFS是hadoop的分布式文件系统,其特点是支持PG级别的数据存储、高可靠性、自动容错性、高扩展性。其整体架构由Block(数据块)、NameNode(管理节点)、DataNode(数据节点)组成:
(1) Block(数据块):Block是HDFS存储的最少单元,与普通的文件系统相比,block默认的大小是64MB。而对于一个大文件将会分割成多个数据块进行存储,并且每个数据块会有多个副本存在多个DataNode上,默认是3份备份数据,这样保证了数据的可靠性。
(2) NameNode(管理节点):Namenode主要负责管理HDFS中的文件目录、文件和Block的映射关系以及Block和DataNode的对应关系。HDFS提供了两种容错机制来保证系统正常运行。第一种是将这些对应关系持久化存在本地磁盘中。第二种是通过SecondaryNamenode(辅助Namenode)来定时对Namespace镜像与操作日志文件进行合并,并将其进行保存。
(3) DataNode(数据节点):DataNode是文件系统中的工作节点,负责存储、数据的读写等。Datanode会定时向NameNode发送心跳信息,从而保证各个节点的可用性,同时如果某个节点挂掉,会将数据迁移到其它DataNode上,保证每份数据有3个副本。该节点可以任意的添加和删除,实现无缝扩容。
2.2 实时数据
HBase是一个支持海量数据实时查询的noSQL数据库,其特点面向列存储、可伸缩、可靠性高、实时读写、高性能和周期性,其整体架构如图2所示。
(1) HMaster:负责对表的创建、修改、删除操作,负责HRegionServer的负载均衡,调整Region分布,以及当HRegionServer停機后,负责失效HRegionServer上Region的迁移。
(2) HRegionServer:主要负责响应用户I/O请求,向HDFS文件系统中读写数据。由于HBase的数据是按照RowKey的字典顺序进行排序的,HRegionServer还负责Region的自动分裂和合并。如果当前数据量出现饱和时,用户可以通过添加机器节点,实现自动扩容。
(3) HRegion:主要负责一个分区内数据的存储和读取,其中HRegion会包含多个StoreFile,StoreFile是存在磁盘中的文件对象。其实HBASE的读写性能与HRegion的设计有很大的关联,其底层采用了LSM树作为存储引擎,通过写缓存将随机写转换顺序写,从而大大提供写的速度。
(4) WriteDate: HRegionServer首先会将数据顺序写入到HLog中,以确保在HRegionServer在停机后能保证数据的一致性。然后再找到对应的HRegion,将数据写到写缓存,这时写缓存并不会马上将数据写入到磁盘上,而是等到写缓存的数据达到一定的阀值或者flush指令才会把数据写到磁盘中。
(5) ReadDate:数据的读取先会通ROOT和META两张内置表找到该数据在那个Region上,这两张内置表记录了HBase中所有Region的索引且存在内存中。找到对应的Region后,会先去写缓存查找,如果有数据则直接返回,如果没有数据则去读缓存进行查询,其中读缓存采用LRU进行数据淘汰,如果读缓存有则直接返回,如果读缓存没有数据则去磁盘上进行查询。
2.3 数据仓库
Hive为离线数据仓库,提供对海量数据进行离线分析接口,支持传统的SQL语言进行大规模离线数据统计分析。
其工作原理如图3所示,其底层还是利用Hadoop的Mapreduce计算框架能力来执行一个任务。其中Metastore存储了数据仓库中表的元数据信息,其它部分与传统的关系数据的执行引擎的流程大体一致。包括对SQL的词法解析、语法解析、执行计划、MapReduce任务转换等,其核心思想是将一个大任务划分成很多个小任务,然后再将小任务的输出进行合并,得到最终的结果。
2.4 其它
Mahout是基于Hadoop计算框架的数据挖掘库[3],用户可以快速搭建自己的挖掘任务,并且该项目还在持续加入更多更稳定的挖掘算法。Spark是最近火起来的,基于内存来处理数据,从而大大提高了任务执行的速度,如果对任务的实时要求比较高的话可以采用Spark来执行。
3 在轨道交通行业的应用
3.1 数据中心
传统Unix服务器为基础的数据中心具有成本高、计算能力不足、数据读取速度相对较慢等缺陷[4],目前很多行业的数据中心是以Hadoop分布式框架为基础构建,实施成本低、数据存储安全可靠、系统易扩展、数据读写速度快、计算能力强等特点[5]。利用Hadoop集群强大的计算能力,构建大数据的机器学习平台,为客运管理人员提供决策支持,可以为后续新线路的开通提供数据支撑,让地铁运营更加信息化、一体化、智能化,促进轨道交通行业信息化发展。
整体架构图如图4所示,基于Hbase提供实时查询的接口,如业务报表查询;基于Hive提供离线统计分析接口;基于Spark提供实时统计接口,如客流量实时展示;以及基于Mahout提供离线数据挖掘分析接口,如客流预测等。
3.2 客流分析
客觀深入的客流分析是进行线网规划、可行性分析以及制定运营计划的重要参考。在地铁客流组织与优化研究领域,客流短期预测和行人运动模拟是其关键技术。在进行相关模型的构建时可以基于Hadoop计算框架的数据挖掘库进行二次开发实现[5],如赵钰棠[6]等人提出的基于支持向量机的地铁客流量预测,还可以在城市轨道交通短期客流预测、客流预警研究、断面客流研究、客流拥堵研究等中使用hadoop技术。
4 结束语
本文介绍了基于hadoop生态圈在轨道交通行业数据中心的建设方案,从数据的存储、可靠性、扩容、使用等方面介绍hadoop,以及基于该套数据中心解决方案还可以做些挖掘尝试来提供企业决策建议。
利用 Hadoop 计算框架构建大数据计算数据中心的基础设施,这是一个当前颇为流行也更为宽广的研究领域,研究人员可以从中间件产品研发、大数据计算安全、计费机制和资源调度、负载均衡等方面结合 Hadoop进行研究,将会在轨道交通行业有更多的应用。
参考文献
[1].Thusoo A, Sarma J S, Jain N, et al. Hive: a warehousing solution over a map-reduce framework[J]. Proceedings of the VLDB Endowment, 2009,2(2):
[2]程莹,张云勇,徐雷,等.基于Hadoop及关系型数据库的海量数据分析研究[J].电信科学,2010 (011):47-50.
[3].张明辉.基于Hadoop的数据挖掘算法的分析与研究[D].昆明理工大学,2012.
[4].程豪. 基于Hadoop的交通大数据计算应用研究[D].长安大学,2014
[5].张洪磊. 基于Hadoop的医院数据中心系统设计与实现[D].浙江大学,2014
[6].赵钰棠,杨信丰,杨珂. 基于支持向量机的地铁客流量预测 [J]. 都市快轨交通,第27卷第3期2014年6月