基于Hive和Impala的物流运力供应链数据仓库研究

2016-10-21 05:38任春华廖雪花唐思娩严余松孙尉筌
物流技术 2016年1期
关键词:数据仓库海量运力

任春华,廖雪花,唐思娩,严余松,孙尉筌

(1.四川师范大学 计算机与科学技术学院,四川 成都 610101;2.西南交通大学 交通运输与物流学院,四川 成都 610031;3.西南交通大学 信息科学与技术学院,四川 成都 611756)



基于Hive和Impala的物流运力供应链数据仓库研究

任春华1,廖雪花1,唐思娩1,严余松2,孙尉筌3

(1.四川师范大学计算机与科学技术学院,四川成都610101;2.西南交通大学交通运输与物流学院,四川成都610031;3.西南交通大学信息科学与技术学院,四川成都611756)

针对物流行业中传统数据库在海量数据存储和交互性查询方面的不足,提出了基于Hive和Impala物流运力供应链数据仓库的构建方法,可以实现快速查询。最后搭建阿里云上的PC集群,对海量供应链数据进行查询分析测试,表明该数据仓库能满足海量物流运力供应链数据存储以及查询方面的需求。

Hive;Impala;物流运力供应链;海量数据;数据仓库

1 引言

近年来,随着物流行业的不断发展与进步,运力供应链数据信息量急剧增加[1],运力供应链是一条从顶端货主到底端司机的运输流网络,中间也存在着很多交互性的合作交易环节。海量数据存储和交互性查询分析使得传统数据库越来越难适应物流行业信息化的建设需求。随着“大数据”飞速发展的Hadoop和Hive应运而生,Hive海量数据存储技术基于MapReduce并行计算模式,能较好地满足当前大数据环境下的高并发、快增长的海量数据存储和计算需求。

因此,本文提出基于Hive的运力供应链数据仓库构建方案,同时,引用Impala的快速交互性查询,最终通过实验数据检测,能较好地解决物流运力供应链中不断增长的数据存储和查询分析的需求。

2 相关研究述评

近几年来,Hive已解决多个行业的海量数据仓库建设方案。但是物流行业在Hive数据仓库方面未涉及到公开的报道。文献《基于Hadoop和Hive的电信行业数据仓库研究》给出了针对电信行业的Hive数据仓库建设方案[2]。文献《基于Hadoop/Hive的气象数据分布式处理研究》对气象方面的数据展开了研究[3]。文献《基于Hive的水利普查数据仓库》给出了水利行业的普查数据仓库方案[4]。文献《基于Hive的电力设备状态信息数据仓库》给出了电力设备状态信息的数据仓库方案[5]。但是这些行业都只设计了基于Hive的数据仓库方案,并且通过了海量数据测试。但是,针对Hive的IO交互性查询效率低下的问题,并没有解决。

3 相关技术

3.1Hadoop技术

Hadoop起源于Google。Google公司在2003年和2004年发表了两篇Google技术的学术论文,一篇是谷歌文件系统(GFS)[6],另一篇是MapReduce[7]。它们提供了一个高效处理极大规模数据的平台。Hadoop是一个可以存储超大规模数据集的文件系统,它是通过向外扩展方式构建的集群。它有自己独特的设计和性能特点,特别是HDFS以时延为代价对吞吐量进行了优化,并且通过副本替换冗余达到了高可靠性。MapReduce是一个数据处理范式,它规范了数据在两个处理阶段(Map和Reduce)的输入和输出,并将其应用于任意规模的大数据集。MapReduce与HDFS紧密结合,确保在任何时候,MapReduce任务直接在存储所需数据的HDFS节点上运行[8-9]。

3.2Hive架构

Hive是建立在Hadoop上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。Hive定义了简单的类SQL查询语言,称为HQL,它允许熟悉SQL的用户查询数据。同时,这个语言也允许熟悉MapReduce的开发者开发自定义的mapper和reducer来处理内建的mapper和reducer无法完成的复杂的分析工作[10]。

3.3Impala系统

Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。已有的Hive系统虽然也提供了SQL语义,但由于Hive底层执行使用的是MapReduce引擎,仍然是一个批处理过程,难以满足查询的交互性。相比之下,Impala的最大特点是查询速度快[11]。

4 基于Hive和Impala的物流运力供应链数据仓库

4.1基于Hive和Impala的物流运力供应链数据仓库结构设计

从结构上分析,基于Hive和Impala的物流供应链数据仓库主要由5层组成:源数据层、存储层、计算层、数据分析层和应用层,如图1所示。

图1 基于Hive和Impala的物流供应链数据仓库结构图

(1)源数据层。主要是物流运力供应链中的数据源,包括历史数据库中的数据以及应用系统后台数据等。这些数据经过人工处理,主要包括冗余数据的去除、数据精度以及数据类型的确定等。然后经过ETL工具导入进入数据存储层。

(2)存储层。主要保存数据仓库的所有数据,存储层建立在HDFS文件系统之上。使用Sqoop工具将源数据层中的供应链数据导入到存储层,这些数据以文件的形式存储在不同的DataNode上,并执行MapReduce操作。

(3)数据计算层。计算层将接收到的HQL语句转化成MapReduce操作,从而完成查询、分析等一系列任务,进而得到想要的业务数据。

(4)数据分析层。根据具体业务新需求,过滤冗余的、有缺漏的、有异常或者与业务无关的信息。这样能通过简单的HQL语句,得到潜在的信息。这样操作效率远远超过单独编写MapReduce函数来处理。同时还提供Impala交互性快速查询。

(5)应用层。主要是为后期应用程序开发提供接口层,方便开发人员调用。

4.2海量物流运力供应链数据存储结构设计

基于Hive和Impala的物流运力供应链数据仓库运行在Clouder的Hadoop集群上,主要由一个主节点(NameNode)和若干从节点(DataNode)组成。物流运力供应链数据以文件的形式存储在Hadoop的HDFS上。主节点用来控制、操作、运行整个集群,从节点用来存储数据文件,并执行MapReduce计算任务。为满足物流过程中实时的交互性,Impala主要用作海量数据实时查询分析。物流运力供应链数据仓库的海量数据存储结构如图2所示。

图2 物流运力供应链数据仓库的海量数据存储结构图

5 实验及验证

为了验证上述方案,本文构建了基于Hive和Impala的物流供应链数据仓库实验平台。该平台建立在阿里云服务器上,采用Clouder的Hadoop,该实验平台运行在4台云服务器上。具体配置见表1。

表1 实验平台配置

实验数据采用某企业的两个应用系统的后台运力数据作为实验对象,数据经过ETL转换进入数据仓库。该实验数据满足大数据的特征,所以测试这些数据具有典型的代表性。使用不同数据量级别的数据和Mysql、Hive、Impala的查询效率做对比,每一个数据量级采用测试10次结果的平均值。实验结果如图3所示。

图3 实验结果图

通过实验结果图可以得出:在数据量4G范围内,Mysql数据库查询方面具有明显的优势;在10G以上的数据量时,Mysql查询效率急速下降;而Hive和Imapla在10G数据量以上时,仍然表现出良好的性能,而且Impala的查询效率明显高于Hive。

综上实验分析可得,基于Hive和Impala的物流运力供应链数据仓库能够对海量数据可以在较快速度下完成查询分析等任务,并且该数据仓库具有海量数据存储能力和较好的扩展性。虽然Hive的IO性能较差,但Impala能弥补Hive的低IO性能,可以更加快速地完成查询分析等任务。

6 结论

本文针对当前物流运力供应链数据仓库存在的海量数据存储以及查询方面的不足,设计并且实现了基于Hive和Impala的物流运力供应链数据仓库。通过某企业中的两个应用系统的运力数据,结合设计的数据仓库,实现了海量物流运力数据的存储和查询分析。实验结果表明,该数据仓库在海量物流运力数据存储和查询等方面具有较高的性能。但是,该测试环境只是小规模的集群,接下来将完成在生产环境下大规模的集群查询分析等工作。

[1]梁红波.云物流和大数据对物流模式的变革[J].中国流通经济,2014,28(5):41-45.

[2]王苏卫.基于Hadoop和Hive的电信行业数据仓库研究[J].电子技术与软件工程,2013,(11):89.

[3]陈效杰,张金泉.基于Hadoop/Hive的气象数据分布式处理研究[J].软件导刊,2015,14(8):11-13.

[4]陈龙,万定生,顾昕辰.基于Hive的水利普查数据仓库[J].计算机与现代化,2014,(5):127-130.

[5]王德文,肖凯,肖磊.基于Hive的电力设备状态信息数据仓库[J].电力系统保护与控制,2013,(9):125-130.

[6]Google.谷歌文件系统(GFS)[DB/OL].http://research.google.com/archive/ gfs.html.

[7]Google.MapReduce[DB/OL].http://research.google.com/archive/mapreduce.html.

[8]查礼.基于Hadoop的大数据计算技术[J].科研信息化技术与应用,2012,(3):26-33.

[9]Garry Turkington,张治起.Hadoop基础教程[M].北京:人民邮电出版社,2014.

[10]曹坤.Hive编程指南[M].北京:人民邮电出版社,2013.

[11]郭超,刘波,林伟伟.基于Impala的大数据查询分析计算性能研究[J].计算机应用研究,2015,(5):1 330-1 334.

Study on Logistics Transportation Supply Chain Data Library Based on Hive and Impala

Ren Chunhua1,Liao Xuehua1,Tang Simian1,Yan Yusong2,Sun Weiquan3
(1. School of Computer Science Technology, Sichuan Normal University, Chengdu 610101;2. School of Transportation Logistics, Southwest Jiaotong University, Chengdu 610031;3. School of Information Science Technology, Southwest Jiaotong University, Chengdu 611756, China)

In this paper, in view of the inadequacy of the traditional logistics data library in terms of mass data storage and interactiveinquiry, we proposed to establish the logistics transportation supply chain data library based on Hive and Impala and at the end set up the PCcluster on the Ali cloud to inquire and analyze the mass supply chain data.

Hive; Impala; logistics transportation supply chain; mass data; data warehouse

TP311.13;F274

A

1005-152X(2016)01-0124-03

10.3969/j.issn.1005-152X.2016.01.032

2015-12-10

四川省科技厅科技支撑项目(2012GZX0090,2014GZX0002)

任春华(1989-),男,研究生,研究方向:计算机应用技术;廖雪花(1976-),通讯作者,女,硕士,副教授,研究方向:计算机网络与信息系统、模式识别;唐思娩(1992-),女,研究生,研究方向:计算机应用技术;严余松(1963-),男,博士,教授,研究方向:物流工程、交通运输工程;孙尉筌(1989-),男,研究生,研究方向:交通运输工程。

猜你喜欢
数据仓库海量运力
一种傅里叶域海量数据高速谱聚类方法
基于数据仓库的数据倾斜解决方案研究
海量快递垃圾正在“围城”——“绿色快递”势在必行
基于数据仓库的住房城乡建设信息系统整合研究
梅炭运力为何紧张
探析电力系统调度中数据仓库技术的应用
一个图形所蕴含的“海量”巧题
基于数据仓库的数据分析探索与实践
一种海量卫星导航轨迹点地图匹配方法
全球集装箱船运力发展趋势