admin 管理员组

文章数量: 1086019


2024年4月14日发(作者:webservice技术本质)

基于Kudu+Impala的交通大数据存储和分析平台

宁群仪,周超

(深圳市赛为智能股份有限公司大数据研究院,广东深圳518057)

摘要院随着城市化进程的不断加快,城市汽车保有量逐年增加,在面对日益复杂和庞大的交通信息

数据,使用传统的关系型数据库已经越来越力不从心,一些性能瓶颈逐渐显露出来,比如跨分区读取

数据,大数据量的分析计算等。提出了一种基于Kudu+Impala的分布式存储和计算分析解决方案,

Kudu作为底层存储,Impala负责解析和执行SQL,能够同时支持OLTP和OLAP,并且都拥有良好的性

能,为交通大数据的存储和分析计算提供了高效、可靠的平台。

关键词院大数据;交通;存储;Kudu;Impala

随着城市化进程的加快袁城市汽车保有量快速增

加袁交通堵塞袁交通事故袁交通违法等问题频繁发生袁

城市交通问题日益严重遥面对快速增长的各类城市交通

数据袁如何快速灵活地存储数据袁准确快速地分析数

据袁成为城市交通领域的一大难题遥

目前比较主流的解决方案主要有基于MySQL等传

统关系型数据库构建的分布式集群袁以及基于Hdfs作

为底层存储的Hbase和Hive分布式集群遥使用传统数

据库构建的分布式集群存在跨区读取数据缓慢尧大数据

量的分析计算效率低下等问题曰Hbase是一种列式存储

数据库袁虽然它在数据存储和快速查询上效率较快袁但

是使用行键进行查询条件有限袁而且它本身并不支持

SQL操作曰Hive作为一种数据仓库袁主要是用于离线数

适用于实时快速的数据读写遥

所以袁为了更好支撑吉首大数据平台袁提供了一个

基于Kudu+Impala的交通大数据存储和分析解决方

案袁使用Kudu分布式集群作为底层存储袁采用Impala

内存计算模型袁提供简单尧快速尧准确的数据处理分析

能力遥

据分析袁通常是进行耗时长袁数据量大的计算分析袁不

Hbase中袁直接存储在Hdfs中袁适合做离线数据分析袁

却不利于记录级别的随机读写曰存储在Hbase中袁适合

做记录级别的读写袁对数据处理和分析并不友好遥但是

在交通大数据平台中袁这两种能力是要求并存的袁所以

Kudu就是在OLTP和OLAP之间找到了一个最佳的解决

方案遥

Impala是一种交互式SQL解析引擎袁它的语法与

Hive高度兼容袁并且提供标准的ODBC和JDBC接口袁

所以学习成本不高遥Impala本身并不是Hive的完全替

代品袁对于大吞吐量长时间的请求袁Hive仍然是最佳的

选择遥虽然在稳定性方面不如Hive袁但是在执行效率方

面袁Impala遥遥领先遥

1.2Kudu和Impala原理

Kudu的架构与Hbase类似袁都是采用Master-Slave

形式的中心节点架构袁管理节点被称为Master袁数据节

支持高效的查询操作的同时袁只占用了更小的存储空

间遥Kudu中所有数据存储在Table中袁与传统关系型数

据库的表类似袁每张表都有对应的表结构袁主键以及分

区袁数据按照主键有序存储遥Table之中的数据会被分

点称为TabletServer遥Kudu是纯粹的列式存储引擎袁在

1

1.1Kudu和Imapala

概述

成片段Tablet袁一个Tablet把相邻的数据放在一起袁一

个Tablet也会有多个副本放置在不同的服务器上袁在同

一时刻袁仅有一个Tablet作为leader存在袁每个副本都

可以提供读的操作袁写操作则需要一致性写入袁对

作者简介:宁群仪渊1973-冤袁女袁硕士袁中级经济师袁

研究方向院智慧城市尧金融云计算尧大数据等遥

收稿日期:2018-08-09

2018.11

金会的顶级开源项目遥

Kudu和Impala都是Cloudera公司贡献给Apache基

Kudu作为底层的数据存储袁在支持高并发低延迟

的查询的同时袁还保持良好的数据分析功能袁该特性使

得它能同时兼顾OLTP和OLAP服务遥在Kudu出现之

前袁大数据的存储一般直接将数据存储在Hdfs或者

91

Tablet

其他服务的所有元数据

的读写操作由Tablet

袁在同一时刻仅有一个

Server完成遥Master存储了

Master

作为leader提供服务袁leader宕机后会重新进行选择遥

palad

Impala由impalad袁statestore袁catalogd组成袁im鄄

端请求

是核心进程

袁生成查询计划

袁与Kudu

袁协调其他

在相同节点上

impalad

执行查询计

它接收客户

划袁并汇总查询结果返回给客户端曰statestore负责集群

元数据通知和分发袁元数据包括catalogd和集群成员关

系等袁SQL查询依赖于这些元数据曰catalogd负责数据

库袁表等元数据信息的创建更新等操作袁catalogd更新

通过statestore分发给impalad遥

pala

Kudu和Impala之间已经深度集成袁所以通过Im鄄

据库表的创建

执行SQL

2数据存储和分析架构

语句

数据插入

袁就可以很方便地完成

尧更新尧删除等操作

Kudu

交通数

结合大数据平台的实际数据存储和分析需求袁根据

稳定尧可靠尧高效尧可拓展的原则袁并且考虑到运维和

使用的方便袁使用了CDH版本袁设计了以下逻辑存储

架构袁如图1所示遥

Kudu集群

Impala集群

Tablet

Server

Tablet

Server

Impala

Daemon

Impala

Daemon

Tablet

Server

Tablet

Server

Impala

Daemon

Impala

Daemon

HUE

Master

Master

Impala

Catalog

StateStore

Impala

ClouderaManager

CDH集群管理平台

图1交通大数据存储和分析架构

配置尧

Cloudera

修改尧拓展

Manager

尧监控等功能的管理平台

提供了一个可视化的集群安装

袁在运维和

使用过程中袁可以实时监控集群的健康状态以及存储袁

内存袁IO等使用情况袁为大数据平台提供了稳定可靠

的保障曰Kudu集群至少使用两个Master节点袁分别作

为主备节点袁在同一时间只有一个Master节点作为

Leader袁

选举重新确定

如果当前使用的

Master袁保证集群的可靠性

Master节点不可用

使用多个节

则会通过

点做为数据存储节点袁这些节点可以随着数据存储的需

求袁不断增加袁保证集群的可拓展性曰Impala集群的

92

2018.11

Daemon

同的节点

实例与

袁所以当

Kudu

Impala

集群的

Tablet

Kudu表获取数据时

Server实例部署在相

袁直接

就在本地的Tablet中获取袁避免了远程获取数据的网

络袁IO等开销袁保证集群的高效性曰Hue是CDH提供

的一个可视化数据库操作界面袁可以直接关联Impala袁

提供简单方便的数据分析操作和展示界面

3集群部署

根据图1的数据存储和分析架构袁进行实际集群部

署袁主要包括院ClouderaManager袁Kudu袁Impala和Hue遥

在集群部署之初袁充分考虑的数据存储和分析的需

求袁每天需要存储实时数据包括路口摄像头监控数据袁

卡口数据袁车辆违法数据等袁大约100多万条数据袁所

以前期选择使用6个节点袁每个节点64GB内存袁4TB磁

盘空间曰集群版本选择较为稳定的CDH5.14版本袁在部

署过程中确保系统版本袁JAVA版本以及CDH的兼容性遥

在部署Kudu集群时袁选择两个节点作为Master节

点袁作为主备节点袁其余节点都作为TabletServer节

点遥在集群配置阶段需要根据实际环境对Kudu集群做

配置优化袁主要包括以下优化措施院block_cache_ca鄄

pacity_mb

内存量袁

参数

建议

控制分配给

2-4GB袁这

Tablet

里设

Server

置为

块缓存的最大

4GB曰memo鄄

ry_limit_hard_bytes

内存量袁这个值过小

参数

会对

是Tablet

Kudu的数据写入能力影响

Server能使用的最大

较大袁所以一般设置为机器内存的80%袁这里配置

40GB遥

在Impala的部署过程中袁保证ImpalaDaemon实例

与Kudu集群的TabletServer实例在同一个节点袁Im鄄

pala

其他两个节点

CatalogServer

袁避免一个节点过

和ImpalaStateStore

热袁

实例分别部署在

为Impala添加

Kudu

通过

服务遥Hue部署在一个节点袁添加Impala服务袁

4交通数据仓库的设计和创建

8888端口就可以直接访问Hue遥

数据仓库主要在传统的业务数据库基础上袁形成数

据仓库数据袁为决策者提供决策支撑遥交通数据仓库主

要从统一的角度提供交通状况信息袁将各种数据以统

一的格式袁集成尧存储在一起袁根据主题对原始数据

进行抽取和聚集袁形成一个多维视角袁从而为城市交

通拥堵疏导提供一个综合的尧全面的尧统一的决策分析

数据基础遥

(下转第111页)

GFS等程序软件袁实现数据的并行处理袁高效地利用分

重要的环节袁数据对于我们生活的方方面面有着巨大的

影响遥为了适应当今世界各行各业在正常的运营管理中

所产生的海量数据的挑战袁为了适应社会信息化的进程

及行业发展的新要求袁为了提升企业的核心竞争力袁加

强基于云计算的云数据管理技术对于整个社会各行各业

的发展具有着重要的现实意义遥可以为我国在信息化大

背景下的经济建设奠定坚实的技术基础袁促进我国经济

的稳定发展遥

参考文献

[1]张丽敏.基于云计算的云数据管理技术研究[J].

自动化与仪器仪表,2017,(1):177-179.

研,2017,(3):00286-00286.

[2]郝龙.浅论云计算和云数据管理技术研究[J].科

[3]张帆.云计算和云数据管理技术研究[J].数字技

术与应用,2016,(4):107-107.

[4]刘枫.基于云计算的卫星导航数据管理体系及其关

键技术研究[D].中国科学院大学,2014.

布式的一般硬件的计算功能袁发挥云计算最大的优势袁

从而高效地为客户提高数据处理与管理服务袁更为快速

高效地满足客户的数据处理需求袁为客户更高效地提供

所需要的客观数据遥是云数据整体架构中提高工作效率

的重要一环

[8]

4.4数据分析

数据分析是云数据管理的精华部分袁是各云数据管

理公司的核心竞争力所在遥也是云数据管理的最后一

步遥要使用科学的算法袁对集成好的尧处理好的数据袁

通过数据分析引擎袁来进行综合的分析遥分析的过程一

定要科学合理尧重点突出尧全面而不泛泛而谈尧针对客

户需求进行专门化的分析袁为客户提供最为有价值的数

据分析报表袁从而满足对于数据处理的最终目的遥是整

个云数据整体架构的最后一个环节因素袁对于云数据管

理的意义十分重要遥

5结语

在信息化时代袁数据的采集尧管理与应用都是非常

数据仓库创建完成之后袁既可以通过Impala提供

的ODBC和JDBC接口向数据库写入袁查询以及分析数

据袁也可以通过Hue可视化界面编写SQL来分析数据遥

(上接第92页)

数据仓库设计的开始袁需要确定领域的分析对象袁

这个对象就是主题袁在这里袁主题的划分主要依据指标

维袁针对交通评价体系总体上分为5个主题院道路交通

运行指数袁拥堵里程比例袁拥堵持续时间袁交通负荷

度袁路网运行速度遥根据采集数据的特点袁将所有的数

据库表分为维度表和事实表袁维度表主要包括吉首市路

所有道路信息袁路段信息袁交叉口信息袁天气数据袁车

辆分类信息袁早晚高峰信息袁节假日以及工作日非工作

日信息等曰事实表主要包括路口摄像头监测数据袁卡口

监测数据袁车辆违法数据等遥

使用Impala创建Kudu表时袁每张表都必须指定主

键袁分区以及指定存储为Kudu遥Kudu提供了两种分区

方式袁hash分区和range分区袁分区数都不宜过多遥通

常这些维度表的数据量都是比较小的袁而且插入和更新

不是很频繁袁所以一般使用hash分区袁分区数设为2

就可以曰对于事实表袁通常是实时批量写入袁数据量很

大袁所以在创建表时袁主键最好包括时间字段袁以及一

些查询条件字段比如车牌号码袁并且使用时间范围分

区遥range分区是可以新增和删除的袁通过分区来平衡

数据库表的写入和扫描速率遥

5结语

从目前的使用情况来看袁针对海量的城市交通数

据袁利用Kudu+Impala进行数据存储和分析时合理尧

可行尧高效的遥使用ClouderaManager可以很容易地实

现集群的快速部署袁拓展以及运维管理袁解决交通数据

快速增长的存储问题曰利用Impala可以快速袁准确地

对数据进行深度挖掘袁可以为城市交通管理尧研究等提

供辅助决策袁对缓解城市交通问题有一定的促进作用遥

参考文献

[1]陆婷,房俊,乔彦克.基于HBase的交通流数据实

时存储系统.计算机应用,2015,35(1):103-107.

电子科技,2015,28(2).

[2]姬倩倩,温浩宇.公共交通大数据平台架构研究.

[3]马国旗.城市道路交通流量特征参数研究[D].北

京:北京工业大学,2004.

[4]廖飞,黄晟,龚德俊,等.基于Hadoop的城市道路

汽运,2013,5:82-86.

2018.11

交通流量数据分布式存储与挖掘分析研究.公路与

111


本文标签: 数据 分析 集群