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
版权声明:本文标题:基于Kudu+Impala的交通大数据存储和分析平台 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1713095011a619597.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论