一种大数据在线交互式查询方法及系统技术方案

技术编号:12135993 阅读:56 留言:0更新日期:2015-09-30 18:40
本发明专利技术公开了一种大数据在线交互式查询方法及系统。通过改进MapReduce框架下Map和Reduce之间的数据传递规则,使得Map按照用户定义的计算窗口分块读取并计算计算窗口内的数据,然后直接把计算结果推送给Reduce端,Reduce端在处理完数据后立即返回给用户。以此实现大数据环境下,用户可以根据业务选取不同的属性定义计算窗口,流式返回各个窗口内的计算结果,实现交互式计算的目标。

【技术实现步骤摘要】

本专利技术属于信息
,涉及一种大数据在线交互式查询方法及系统
技术介绍
随着互联网技术和Web2.0的发展,全球数据量正在以惊人速度的增长。IDC预计,到2020年人类会产生超过40ZB的数据。各行业正在进入大数据时代。在大数据环境下,存在一种重要的查询方法:即针对一个区间内的数据进行计算,并需要在线返回每个数据区间内的查询结果,实现交互式查询的目标。例如查询2014:12:01到2014:12:30期间内,以天单位的历史环境监测记录日志,分析“APEC”期间环境的变化;统计大型购物网站在双“十二”期间不同时间段内的点击率,以获得高峰期购物网站的流量特征。上述计算的一个明显的特征是根据用户定义的一个数据区间长度,陆续获得各区间内的计算结果,并在线返回给用户。本专利技术中称用户定义的数据区间长度为计算窗口,计算窗口是通过字符串、数字、文件偏移量等标记描述的数据块的序列。当用户查询结果满足用户查询需求以后,可以实时终止查询任务,交互式查询的计算效率,节约后台计算资源。与上述计算模式相关的技术和系统包括大数据流计算系统Spark Streaming、大数据分析系统Hive、以及相关的MapReduce改进技术。Spark Streaming是在Spark平台基础上扩展的流计算的插件。Spark Streaming根据数据流到达的时间,预先设定时间间隔把数据流分解成一系列数据段,在每个数据段上执行Act1n (如reduce,take (η)等操作),生成 Spark 中的 RDD(Resilient Distributed Dataset)数据结构,并保存在内存中。SparkStreaming所采用的是传统的滑动窗口技术,仅能实现时间属性定义计算窗口,无法使用其他描述符定义的计算窗口。Hive是典型的基于Hadoop系统的数据分析系统,可以针对存储于HDFS(Hadoop Distributed File System, Hadoop分布式文件系统)中的任意的历史数据进行分析。Hive利用HQL语言以及优化器,提供复杂查询统计功能。但是Hive以及类似的基于Hadoop的分析系统是基于MapReduce实现分布式计算。由于MapReduce是按照固定的数据块长度,读取HDFS中的数据,再获得最后的统计结果以后,一次性的返回给用户。上述原理决定了传统MapReduce技术无法高效的支持在线交互式查询。目前,基于MapReduce已经提出大量的研宄成果,包括引入计算资源管理功能的 YARN,基于 MapReduce 构建索引等方法(An M, Wang Y, Wang ff.Using index in themapreduce framework//Web Conference (APffEB), 201012th Internat1nal Asia -Pacific.1EEE, 2010:52 -58.)。都可以显著提升大数据的计算效率。但是上述技术都无法按照用户定义计算窗口实现,流式在线返回,一般都需要全部处理完数据以后,一次性的返回给用户最终的计算结果。无法满足交互式查询的需求。综上所述,以Spark Streaming为代表的大数据流计算技术与方法,仅能实现时间属性的滑动窗口技术,无法任意的历史数据按照用户自定义的计算窗口进行流式计算与分析;基于MapReduce的数据方法与系统可以针对历史数据提供容错与稳定的计算框架,但是由于Map和Reduce之间数据传递方式的限制,无法满足交互式查询中流式返回计算结果的计算需求,因此无法支持在线交互式查询。
技术实现思路
本专利技术的目的是提供一种大数据在线交互式查询方法及系统。通过改进MapReduce框架下Map和Reduce之间的数据传递规则,使得Map按照用户定义的计算窗口分块读取并计算计算窗口内的数据,然后直接把计算结果推送给Reduce端,Reduce端在处理完数据后立即返回给用户。以此实现大数据环境下,用户可以根据业务选取不同的属性定义计算窗口,流式返回各个窗口内的计算结果,实现交互式计算的目标。为了实现上述目的,本专利技术采用以下技术方案:一种大数据在线交互式查询方法,包括:用户首先根据业务需求定义与业务相关的计算窗口划分方法,然后根据用户定义的计算窗口划分方法建立计算窗口与HDFS中存储的数据文件映射关系,并通过修改Map Reduce框架下数据获取方式,使得Reduce端实时返回每个计算窗口内的计算结果,实现大数据环境下数据的在线交互式查询。进一步地,窗口划分方法包括按照时间属性划分的方法,按照相同记录数为单位进行划分的方法,或按照其他关键字为标识划分的方法。进一步地,建立计算窗口与HDFS中存储的数据文件映射关系包括:根据计算窗口划分方法,顺序扫描存储于HDFS中的数据,得到每一个窗口中对应的数据,同时计算每一个窗口包含数据大小的偏移量,根据计算所得的结果生成计算窗口映射表,该映射表的数据结构为Hash表结构,其中Key值为窗口编号,Value值为该窗口包含数据大小偏移量,通过该结构,表明了每个窗口与该窗口包含数据大小偏移量的对应关系。进一步地,修改Map Reduce框架下数据获取方式,使得Reduce端实时返回每个计算窗口内的计算结果,包括:将待处理数据按照计算窗口映射表进行分片,每个数据片(Split)交付一个Map进行操作,每一个Map在执行完其所有操作后,在Job Tracker的调度下,推向Reduce端,Reduce立即对这一部分数据进行处理并返回结果。进一步地,分片的方法包括:首先获得HDFS中待处理数据的总大小,读取计算窗口映射表,每读取一条数据的同时,计算该条数据的偏移量大小,并将该偏移量大小累加,当读入数据的偏移量大小与窗口映射表中的数据偏移量一致的时候,作为一个数据片。进一步地,Job Tracker为每个Map分配任务,每个Map执行一个数据片的数据,将执行完的数据缓存至内存中设定好的一个缓存区,TaskTracker计算轮询的时间周期,按照时间周期查询该缓存区是否有Map提交的处理后的数据,若缓存区数据大小达到阈值,则Reduce将这部分数据取走并处理,并将处理的结果立即返回。一种大数据在线交互式查询系统,包括:计算窗口划分单元:用于提供用户计算窗口定义功能,用户根据业务需要,定义计算窗口的描述规则,每个计算窗口内描述一次性返回计算结果的数据单位,如一个时间段的数据、一个数据块、一组记录等;映射表构建单元:用于把计算窗口描述的数据划分单位映射成MapReduce框架可识别的文件描述方法,即把用户定义的计算窗口转化为MapReduce框架可识别的“文件名+数据偏移量”的表达形式的计算窗口映射表;分片计算单元,用于根据计算窗口映射表读取HDFS中的文件分块,每个窗口作为一个分片数据,读入Map端,开始执行Map和Reduce函数计算过程;数据处理单元,用于在Map端读入每个数据分片进行处理,并将Map端处理后的数据利用推模式,实施推送到Reduce端开始执行。在Reduce端执行完Reduce函数以后,立即返回计算结果。执行结果数据可以输出到终端也可以写入到HDFS文件中。与现有技术相比,本专利技术的有益本文档来自技高网
...

【技术保护点】
一种大数据在线交互式查询方法,其步骤包括:1)用户根据业务需求定义与业务相关的计算窗口划分方法;2)根据所述计算窗口划分方法建立计算窗口与HDFS中存储的数据文件映射关系;3)修改Map Reduce框架下数据获取方式,由Reduce端实时返回每个计算窗口内的计算结果,以实现大数据环境下数据的在线交互式查询。

【技术特征摘要】

【专利技术属性】
技术研发人员:云晓春王树鹏吴广君张晓宇贾思宇
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1