一种大数据在线交互式查询方法及系统的制作方法

文档序号:9235485阅读:1092来源:国知局
一种大数据在线交互式查询方法及系统的制作方法
【技术领域】
[0001]本发明属于信息技术领域,涉及一种大数据在线交互式查询方法及系统。
【背景技术】
[0002]随着互联网技术和Web2.0的发展,全球数据量正在以惊人速度的增长。IDC预计,到2020年人类会产生超过40ZB的数据。各行业正在进入大数据时代。在大数据环境下,存在一种重要的查询方法:即针对一个区间内的数据进行计算,并需要在线返回每个数据区间内的查询结果,实现交互式查询的目标。例如查询2014:12:01到2014:12:30期间内,以天单位的历史环境监测记录日志,分析“APEC”期间环境的变化;统计大型购物网站在双“十二”期间不同时间段内的点击率,以获得高峰期购物网站的流量特征。
[0003]上述计算的一个明显的特征是根据用户定义的一个数据区间长度,陆续获得各区间内的计算结果,并在线返回给用户。本发明中称用户定义的数据区间长度为计算窗口,计算窗口是通过字符串、数字、文件偏移量等标记描述的数据块的序列。当用户查询结果满足用户查询需求以后,可以实时终止查询任务,交互式查询的计算效率,节约后台计算资源。
[0004]与上述计算模式相关的技术和系统包括大数据流计算系统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技术无法高效的支持在线交互式查询。
[0005]目前,基于MapReduce已经提出大量的研宄成果,包括引入计算资源管理功能的 YARN,基于 MapReduce 构建索引等方法(An M, Wang Y, Wang ff.Using index in themapreduce framework[C]//Web Conference (APffEB), 201012th Internat1nal Asia -Pacific.1EEE, 2010:52 -58.)。都可以显著提升大数据的计算效率。但是上述技术都无法按照用户定义计算窗口实现,流式在线返回,一般都需要全部处理完数据以后,一次性的返回给用户最终的计算结果。无法满足交互式查询的需求。
[0006]综上所述,以Spark Streaming为代表的大数据流计算技术与方法,仅能实现时间属性的滑动窗口技术,无法任意的历史数据按照用户自定义的计算窗口进行流式计算与分析;基于MapReduce的数据方法与系统可以针对历史数据提供容错与稳定的计算框架,但是由于Map和Reduce之间数据传递方式的限制,无法满足交互式查询中流式返回计算结果的计算需求,因此无法支持在线交互式查询。

【发明内容】

[0007]本发明的目的是提供一种大数据在线交互式查询方法及系统。通过改进MapReduce框架下Map和Reduce之间的数据传递规则,使得Map按照用户定义的计算窗口分块读取并计算计算窗口内的数据,然后直接把计算结果推送给Reduce端,Reduce端在处理完数据后立即返回给用户。以此实现大数据环境下,用户可以根据业务选取不同的属性定义计算窗口,流式返回各个窗口内的计算结果,实现交互式计算的目标。
[0008]为了实现上述目的,本发明采用以下技术方案:
[0009]一种大数据在线交互式查询方法,包括:用户首先根据业务需求定义与业务相关的计算窗口划分方法,然后根据用户定义的计算窗口划分方法建立计算窗口与HDFS中存储的数据文件映射关系,并通过修改Map Reduce框架下数据获取方式,使得Reduce端实时返回每个计算窗口内的计算结果,实现大数据环境下数据的在线交互式查询。
[0010]进一步地,窗口划分方法包括按照时间属性划分的方法,按照相同记录数为单位进行划分的方法,或按照其他关键字为标识划分的方法。
[0011]进一步地,建立计算窗口与HDFS中存储的数据文件映射关系包括:根据计算窗口划分方法,顺序扫描存储于HDFS中的数据,得到每一个窗口中对应的数据,同时计算每一个窗口包含数据大小的偏移量,根据计算所得的结果生成计算窗口映射表,该映射表的数据结构为Hash表结构,其中Key值为窗口编号,Value值为该窗口包含数据大小偏移量,通过该结构,表明了每个窗口与该窗口包含数据大小偏移量的对应关系。
[0012]进一步地,修改Map Reduce框架下数据获取方式,使得Reduce端实时返回每个计算窗口内的计算结果,包括:将待处理数据按照计算窗口映射表进行分片,每个数据片(Split)交付一个Map进行操作,每一个Map在执行完其所有操作后,在Job Tracker的调度下,推向Reduce端,Reduce立即对这一部分数据进行处理并返回结果。
[0013]进一步地,分片的方法包括:首先获得HDFS中待处理数据的总大小,读取计算窗口映射表,每读取一条数据的同时,计算该条数据的偏移量大小,并将该偏移量大小累加,当读入数据的偏移量大小与窗口映射表中的数据偏移量一致的时候,作为一个数据片。
[0014]进一步地,Job Tracker为每个Map分配任务,每个Map执行一个数据片的数据,将执行完的数据缓存至内存中设定好的一个缓存区,TaskTracker计算轮询的时间周期,按照时间周期查询该缓存区是否有Map提交的处理后的数据,若缓存区数据大小达到阈值,则Reduce将这部分数据取走并处理,并将处理的结果立即返回。
[0015]一种大数据在线交互式查询系统,包括:
[0016]计算窗口划分单元:用于提供用户计算窗口定义功能,用户根据业务需要,定义计算窗口的描述规则,每个计算窗口内描述一次性返回计算结果的数据单位,如一个时间段的数据、一个数据块、一组记录等;
[0017]映射表构建单元:用于把计算窗口描述的数据划分单位映射成MapReduce框架可识别的文件描述方法,即把用户定义的计算窗口转化为MapReduce框架可识别的“文件名+数据偏移量”的表达形式的计算窗口映射表;
[0018]分片计算单元,用于根据计算窗口映射表读取HDFS中的文件分块,每个窗口作为一个分片数据,读入Map端,开始执行Map和Reduce函数计算过程;
[0019]数据处理单元,用于在Map端读入每个数据分片进行处理,并将Map端处理后的数据利用推模式,实施推送到Reduce端开始执行。在Reduce端执行完Reduce函数以后,立即返回计算结果。执行结果数据可以输出到终端也可以写入到HDFS文件中。
[0020]与现有技术相比,本发明的有益效果如下:
[0021]I)在大数据环境下可以灵活的制定计算窗口划分规则,用户可以选择任意的属性描述一段连续的数据块,根据用户选择的数据属性自动生成MapReduce框架可以识别的文件偏移量描述符号,并支持通用的MapReduce框架下各类其他的应用软件与方法,适用于不同的数据分析需求,突破了流计算中按照时间属性或相对位置属性进行窗口计算的局限,同时可以针对存储在HDFS中的文件进行流式处理;
[0022]2)本发明实现了 MapReduce框架下的大数据流式计算并在线返回数据处理结果的方法。原始的MapReduce过程中,Reduce将所有数据进行Merge操作后才能返回结果。本发明中通过改变Map和Reduce之间的数据提交方式,使得每一个Map在处理完成后立即交付Reduce处理,并在线返回每个计算窗口内的结果,支持在线交互式查询,提高了大数据流式处理效率;
[0023]3)本发明通过自定义计算窗口、MapReduce数据传输框架的修改,实现与Hadoop其他软件协议栈的兼容,在不影响其他基于MapReduce框架软件的前提下实现了针对任意历史数据的流式计算,满足各类在线交互式查询的计算需求。
【附图说明】
[0024]图1是本发明的整体架构图;
[0025]图2是本发明中的整体数据流示意图;
[0026]图3是本发明生成计算窗口映射表流程图;
[0027]图4是本发明面向业务的计算窗口映射表的构建示例图;
[0028]图5是本发明按照窗口划分规则切分数据片的流程图;
[0029]图6是本发明Reduce端在推模式下数据获取方式流程图;
[0030]图7是本发明具体实施过程示意图;
[0031]图8是本发明实施例1中网站被访问频数的统计图;
[0032]图9是本发明实施例1中多窗口累计数据量统计图;
[0033]图10是本发明实施例1中各窗口计算总时间消耗统计图。
【具体实施方式】
[0034]为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实例,对本发明做进一步说明。
[0035]如图1所示为本发明的整体结构图,本发明主要包含三个方面:
[0036]I)按照用户定义的窗口规则,对HDFS中的数据生成与用户计算相关的计算映射表;
[0037]2)修改MapReduce框架内的数据传输框架,将每个Map端与计算映射表进行绑定,把传统的数据由Reduce端的拉数据,修改为Map端推数据,使得Reduce算子可以实时接收到中间结果数据,并在处理结束后立即交付给用户,提高交互式查询模式下的计算效率。
[0038]图2为本发明的整体数据流图,数据按照窗口映射表划分为不同的Split,每个Split交付一个Map进行操作,每一个Map在执行完其所有操作后,在Job Tracker的调度下,推向Reduce端,R
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1