一种流式计算和批处理计算相结合处理系统及方法

文档序号:9911119阅读:1292来源:国知局
一种流式计算和批处理计算相结合处理系统及方法
【技术领域】
[0001] 本发明属于流式计算和批处理计算的数据处理技术领域,尤其涉及一种流式计算 和批处理计算相结合处理系统及方法。
【背景技术】
[0002] 随着科学、技术和工程的迅猛发展,近20年来,许多领域都产生了海量的数据,大 数据越来越引起人们的重视。大数据处理主要处理模式可以分为批处理和实时处理两种, 批处理时数据首先被存储,随后被分析。实时处理则是一种动态的处理方式,在数据流入的 时候就进行计算,流式计算是实时处理的重要衍生模型。
[0003] 目前一部分专注于单一流式计算、单一批处理,采用单一计算模型进行数据处理, 但随着数据量的大规模增长和用户需求的日益多样化,实际需求中人们对数据的处理要求 越来越高,单一的计算模型并不能独立地承担服务。另一部分专注流式处理与批处理的结 合,但未能有效地融合,现有的大数据分析系统在流式计算和批处理计算融合方面工作,主 要采用三种方式:
[0004] 第一种方式:在流式计算系统的基础上,增加对批处理计算的支持。此方法在批处 理层仅需要考虑数据和数据上的查询函数,批处理层因此很好掌控。在实时层需要使用增 量算法和复杂的NoSQL数据库,把所有的复杂问题独立到实时层中,这对系统的鲁棒性、可 靠性可以做出重要改进。但是,在实际的实现中,通过建立简单而统一的数据查询函数并不 是一件容易的事情,以往基于关系型的数据库系统是建立在完整的关系模型上的数据处理 系统,所以应对不同种类的结构化和非结构化数据是很难存在这样的简单函数模型。
[0005] 第二种方式:从批处理计算的基础入手,结合流式数据处理,比如通过修改 MapReduce编程模型来进行实时数据流处理。这类基于MapReduce流式处理存在几个缺点: a)将输入数据分隔成固定大小的片段,再由MapReduce平台处理,处理的延迟与数据片段的 长度、初始化处理任务的开销成正比,片段之间的依赖管理更加复杂,最优的分段大小取决 于具体应用;b)为了支持流式处理,MapReduce被改造成Pipel ine的模式,而不是Reduce直 接输出。为了提高处理效率,中间结果只保存在内存中。诸如此类改动使得原有的 MapReduce框架的复杂度大大增加,不利于系统的维护和扩展;c)用户被迫使用MapReduce 的接口来定义流式作业,这使得用户程序的可伸缩性降低。
[0006] 第三种方式:关联组合模式。以Twitter Summingbird举例来说,尽管Summingbird 利用统一的编程接口来整合平台,通用性好,可扩展性强,但在实际操作中执行效率不够理 想。

【发明内容】

[0007] 本发明针对现有技术中存在的上述问题,提供一种数据处理效率高并对数据查询 方法进行了优化的一种流式计算和批处理计算相结合处理系统。
[0008] 本发明的实施例提供一种流式计算和批处理计算相结合处理系统,包括:
[0009]基础设施层,用于提供系统运行的硬件环境,包括虚拟化、机房、网络及集群;
[0010]数据存储管理层,用于存储分布式数据,保存处理后的实时数据与批处理数据,同 时对元数据进行管理;
[0011] 数据计算层,用于提供流式计算与批处理计算方式;
[0012] 任务调度层,用于对系统任务进行调度,并对系统作业进行判断,根据判断结果控 制数据计算层对元数据进行实时处理或者批处理;
[0013] 数据分析层,用于对处理后的数据进行数据分析;
[0014] 数据视图及查询优化层,用于提供数据实时处理视图、数据批处理视图及查询优 化;
[0015] 数据展示层,用于提供数据分析结果的可视化信息。
[0016] 优选地,所述数据计算层包括:
[0017] 流计算框架,用于当所述任务调度层判断系统当前作业为实时处理作业时用于对 流式数据进行处理;
[0018] 批处理计算框架,用于当所述任务调度层判断系统当前作业为批处理作业时用于 对流式数据进行处理。
[0019] 优选地,所述数据视图及查询优化层包括:
[0020] 实时视图处理模块,采用增量算法把流计算框架计算产生的结果保存到所述数据 存储管理层中,并形成不同的实时处理视图;
[0021] 批处理视图模块,将批处理计算框架计算产生的结果保存到所述数据存储管理层 中,并形成不同的批处理视图;
[0022] 查询优化模块,用于提供用户利用关键字查询某一段时间或者某一段距离前后的 流式处理和批处理的数据。
[0023]优选地,所述优化查询模块包括:
[0024] 语法分析单元,用于接收用户输入的字符串,并进行语法分析,输出抽象语法树;
[0025] 语意分析单元,用于根据抽象语法树进行语意分析,生成LogicalPlan及系统可识 别的DAG;
[0026] 优化策略执行单元,用于对LogicalPlan进行优化过滤掉不需要的数据;
[0027]交付执行单元,用于将LogicalPlan转换为RDD在Spark集群上真正进行数据分析。 [0028]本发明的实施例还提供一种流式计算和批处理计算相结合处理方法,包括以下步 骤:
[0029] 搭建系统运行的硬件环境,包括虚拟化、机房、网络及集群;
[0030] 获取工作指令,对系统任务进行调度,并对系统作业进行判断,根据判断结果控制 对元数据进行实时处理或者批处理;
[0031] 对处理后的实时数据、批处理数据进行及元数据进行存储管理;
[0032] 形成不同的数据实时处理视图及数据批处理视图并进行显示,同时提供数据处理 的查询优化。
[0033] 优选地,获取工作指令,对系统任务进行调度,并对系统作业进行判断,根据判断 结果控制对元数据进行实时处理或者批处理的步骤具体为:
[0034] 获取工作指令,对系统作业进行调度,同时,对作业进行判断;
[0035]若为实时处理作业,则采用流式处理技术进行实时数据处理,将流式计算分解成 一系列短小的批处理作业,即把输入数据按照batch size分成一段一段的数据,每一段数 据都转换成Spark中的RDD,然后Spark Streaming中对DStream的Transformat ion操作变为 针对Spark中对RDD的Transformat ion操作,将RDD经过操作变成中间结果保存在内存中; [0036]若为批处理作业,则采用批处理技术进行批处理,将分布式数据集抽象成弹性分 布式数据集,实现了应用任务调度、RPC、序列化和压缩,并为其运行在其上的上层提API,并 将数据在分布式环境下分区,然后将作业转化为有向无环图,并分阶段进行DAG的调度和任 务的分布式并行处理。
[0037]优选地,所述形成不同的数据实时处理视图及数据批处理视图并进行显示的步骤 具体包括:
[0038]采用增量算法把实时处理计算的结果进行存储,形成不同的实时处理图;以及将 所述批处理计算的结果进行存储,并形成不同的批处理视图。
[0039] 优选地,所述提供数据处理的查询优化的方法为,用户可利用关键字查询某一段 时间或者某一段距离前后的流式处理和批处理的数据。
[0040] 优选地,还包括以下步骤:
[0041 ]语法分析:接收用户输入的字符串,并进行语法分析,输出抽象语法树;
[0042] 语音分析:根据抽象语法树进行语意分析,生成LogicalPlan及系统可识别的DAG;
[0043] 优化策略执行:对LogicalPlan进行优化过滤掉不需要的数据;
[0044]交付执行:将LogicalPlan转换为RDD在Spark集群上真正进行数据分析。
[0045] 优选地,所述语法分析的步骤,具体为:
[0046] 按照定义好的词法,将输入的字符集转换为单词;
[0047] 在词法分析的基础上,来判断用户输入的单词是否符合语法逻辑;
[0048] 根据分析过程输出抽象语法树。
[0049] 以上技术方案中,对系统任务进行调度时,对系统作业进行判断,根据判断结果控 制对元数据进行实时处理或者批处理,从系统级层面上实现了不同计算模型之间的互操 作,有效提高了容错处理效率,同时优化了数据查询方法,更加方便了历史数据和实时数据 的联合分析。
【附图说明】
[0050] 图1为
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1