APP下载

基于HBase的交通大数据存储查询平台的设计及实现

2019-10-08褚少鹤周洁王敬平

软件 2019年2期

褚少鹤 周洁 王敬平

摘  要: 在交通数据量持续增长的影响下,传统的交通数据处理方法已经无法满足其需求,在云计算技术日渐成熟的影响下,基于交通大数据基础上,将其与Hadoop结合起来,通过对其非关系型数据库HBase进行合理运用,即可较好的实现对交通数据的存储和查询处理。

关键词: 交通大数据;存储查询平台;HBase

【Abstract】: Under the influence of the continuous growth of traffic data volume, the traditional traffic data processing methods can not meet its needs. Under the influence of cloud computing technology maturing day by day, based on traffic big data, it is combined with Hadoop, and through the rational use of its non-relational database HBase, it can better realize the storage and query processing of traffic data.

【Key words】: Traffic data; Storage and query platform; HBases

0  引言

由于城市化建设速度的加快,人们为了能够更加方便日常出行,越来越多的家庭纷纷购入了各种代步的机动车,导致城市的机动车数量呈现为爆发式增长,给交通系统的管理带来了较大的阻碍[1]。由于交通工具数量的增多,交通要道的设施设备也相应增加,这导致交通数据迅速增长,传统的方法已经很难实现对数据的有效处理和存储,为此,基于“交通大数据”的背景下,如何才能够更好的实现对数据的存储和快速查询成为了探讨的热点[2]。本文通过运用具有较高扩展性的HBase来进行交通大数据存储查询平台的构建,旨在更好的帮助交通部门管理水平 和质量的提升。

1  整体架构设计

根据交通大数据所体现出的相关特点,本研究设计和实现了一套面向交通数据存储以及查询的优化系统,其主要通过存储层、处理层以及应用层组成,具体的架构见图1。

1.1  应用层

应用层主要用于对交通拥堵、流量、异常等情况进行分析、处理,并借助微服务等各种方式及时推送给用户[3]。

1.2  处理层

该层主要针对数据实施深度分析、挖掘以及研究,明确其存在的规律性,为应用层提供数据支持。该层最主要的作用是根据应用发出的请求进行分析

与解析,并将其传输到相应的计算执行器上实现各种有效计算,并完成存储层的访问[4]。

1.3  存储层

在本研究所设计的数据处理系统中,其核心层次在于存储层,该层主要应用于对相关数据进行分布式存储,从而促使交通数据能够更好的实现多源异构的处理,确保数据得到更好的保存。在该层中,主要以Hadoop分布式文件的方式进行持久性的存储,使得Hadoop批处理计算以及非关系型数据库(HBase)能够实现数据共享[5]。

2  基于HBase的存储层设计与实现

2.1  HBase行键(RowKey)设计

在HBase中,数据在实施读取或者写入操作期间,主要通过信息标识行键(RowKey)筛选来实现对数据的快速定位处理,为此,必须尽量将所需要查询的信息或者维度及时存储到相应的行键中,以此实现对数据筛选效率的提升[6]。

本系统行键(RowKey)设计方案为:<随机数XX>-<交易日DAY>-<交易时HOUR>-<卡片编码ID>。根据HBase中存储数据,行键(RowKey)的结果为<08>-<01>-<06>-<881300839>。该行键(RowKey)方案即便是遭遇HBase的数据规模相对较大时,索引所占据的内存空间将迅速下降。与此同时,通过该方案能够确保数据分布更为均衡,有效避免了因时间连续存储而产生的热点问题。结合该方案,分别在数据条数为5 m、34 m、138 m(百万条)的数据规模下,针对某用户进行查询,结果见表1。

根据上述结果来看,本次设计方案具有更高的访问效率,并且便随着数据规模的持续增加,其优势更为显著。

2.2  基于Map Reduce的二级索引设计

在HBase中,可通过行键(RowKey)来实现排列存储,这就使得行键成为了非常重要且唯一的索引方式。考虑到HBase无法实现原生二级索引,为此,本次设计通过Map Reduce添加二级索引,以便能够更好的提升非主键查询的效率。在进行非主键信息查询的过程中,首先经由行键、列族、列    限定符等相关信息来进行扫描,才能够获得相应的信号[7]。

3  基于HBase的存储实现

借助Master/Slave模式来完成对HBase与Hadoop集群的构建,主要通过1个NameNode(文件命名空间管理)、4个DataNode(数据块检索与  存储)共同组成,并通过千兆交换机来进行统一连接[8]。完成集群的搭建之后,以Map Reduce的方式将交通數据加载到相应的HBase表内,具体的加载步骤如下:

(1)首先将本地所掌握的交通数据加载(Put)到HDFS,经由Map Reduce对其实施批量处理。

(2)主类(Main)重点是结合实际情况,进行全局变量配置处理,并基于此配置相应的加载接口。任务的配置参数主要包括了任务Mapper类、任务名称、输出表名、OutputFormat类等。

(3)Mapper类:Setup方法主要用于对全局所配置的环境变量实施提取;Map方法则主要对噪声数据进行过滤处理,实现对关键字段的提取,并生成相应的Put对象,将其写入到HBase。

4  基于Phoenix的处理层设计与实现

因HBase平台无法支持SQL语句,为此,在HBase中通常无法像Oracle、My SQ等关系型数据一样,能够对SQL语句进行直接的运用,以此来达到较好的数据查询的目的[4]。为了能够更好的达到本研究数据查询的请求,本研究提出了运用Phoenix来解析SQL语句,再借助HBase实现查询的有效  简化[9]。

针对原生HBase通常情况下并不存在SQL操作的不足,而通过Phoenix联合HBase的运用即可实现对HBase的有效查询。具体的查询流程见图2。

Phoenix在进行查询的过程中,主要通过QueryPlan直接运用HBaseAPI,即可完成一系列HBaseScan的查询任务,而这种方法还可有效规避MapReduce框架,提升查询速度。其具体的查询操作步骤为:

(1)用户经由Phoenix生成一个SQL的查询任务。

(2)Calcite根据查询任务解析、验证客户端的SQL的查询请求。首先,Calcite对SQL请求的合法性进行判断,若存在不合法的情况,及时进行返回处理,若合法即可完成解析。

(3)Calcite在对所接收到的请求做出了相应的解析操作之后,再经由Phoenix生产给相应的查询计划。

(4)Phoenix查询生成器主要根据Calcite逻辑查询计划生成相对应的物理查询计划,并对每一步的算法以及操作进行传递。

(5)Phoenix执行器通过查询操作,结合查询计划分发到相应的节点,即可完成查询操作。

5  基于JSP的交通应用层设计与实现

交通交通应用层其主要包括两个部分,分别为消息队列传输以及查询网站设计。其中消息队列传输主要通过Kafka消息队列来完成,查询网站则主要对JSP的方式进行运用,将其直接与Tomcat服务器直接搭接[10]。查询界面主要通过JSP来实现,具体的实施步骤如下:

(1)客户端所采用的一个查询请求,WEB容器将会对所对应的URL访问请求进行对应。

(2)结合JSP文件所生成的Java文件来完成WEB服务器。

(3)Java文件所生成的Class文件,经由classloader直接加载到进虚拟机中。

(4)WEB容器加载Class文件生成相对应的Servler实例。

(5)WEB容器对Servlet实例进行执行,并及时将执行的结果反馈到相应的客户端。

6  結论

总而言之,随着交通数据的增加,提出一种有效的数据存储处理平台,对帮助交通实现服务质量的提升具有重要意义。本文结合交通大数据的特点,从整体整体设计到各层的具体实现过程进行了详细介绍。

参考文献

宁群仪, 周超. 基于Kudu+Impala的交通大数据存储和分析平台[J]. 电脑编程技巧与维护, 2018, (11): 91-92, 111.

谭亮, 周静. 基于SparkStreaming的实时交通数据处理平台[J]. 计算机系统应用, 2018, 27(10): 133-139.

杨臣君, 张欣, 杨卓东. 基于Hadoop的交通数据分析系统[J]. 电子科技, 2017, 30(04): 156-158.

余超, 王坚, 凌卫青. 基于Hadoop的海量交通数据混合存储查询系统设计与实现[J]. 信息技术与信息化, 2016, (Z1): 82-86.

张腾, 林贵敏, 邱立达, 等. 基于机器学习的交通数据分析与应用[J]. 现代信息科技, 2018, 2(12): 16-18.

贾晓菲. 轨道交通云平台建设及应用分析[J]. 建材与装饰, 2018(45): 291-292.

林森. 交通运输行业运行指数在武汉市建设与应用[A]. 中国智能交通协会. 第十三届中国智能交通年会大会论文集[C]. 中国智能交通协会: 中国智能交通协会, 2018: 9.

蔡延光, 廖泽宇, 蔡颢, 等. 基于频率优先的智能交通数据快速检索算法[J]. 东莞理工学院学报, 2018, 25(05): 33-37.

刘尚魁. 基于智慧交通大数据平台系统设计方案[J]. 电子技术与软件工程, 2018(19): 198.

孙群. 大数据应用智能交通综合治理[J]. 科技视界, 2018 (28): 171-172+170.