大数据处理框架源数据的统一访问通道的实现方法与流程

文档序号:14870980发布日期:2018-07-06 23:46阅读:819来源:国知局

本发明涉及大数据的访问方法,特别涉及大数据处理框架源数据的统一访问通道的实现方法。



背景技术:

大数据处理负责对大数据系统中的数据进行计算(管理和处理)。源数据包括从持久存储中读取的数据或通过消息队列等方式接入到系统中的数据,而计算则是从数据中提取信息的过程。面对db、sql、nosql、mpp、search、streaming、graph、machinelearning、etl等不同的业务及不同场景,现在主流的大数据处理框架有spark、flink、hive、pig、graphlab、cassandra、mongodb、impala、greenplum、hawq、storm、elasticsearch、solr、hbase、mysql等,每个大数据处理框架也可以作为其他处理框架的数据源来提供数据,每种大数据处理框架背后都支持多种的数据源存储方式及访问方式。以spark为例支持读取存储于hdfs、本地文件、s3、hive、hbase、tarchyon、rdbms等存储介质中,这里可以将存储介质分类为传统的关系型数据、nosql数据、分布式存储数据、内存分布式存储数据、云平台数据、其他大数据平台框架数据。每种存储方式又可以分为不同的数据存储格式,通用的数据存储格式就有json、sequencefile、textfile、parquet、csv、orcfile、avro等,还有每种存储介质自己独有的数据存储格式,例如每种rdbms,nosql都是不同的,统计下来常用的不下几十种,在用的有一二百种,以上类型spark既然支持读取,同样也是支持将数据写入存储,因为spark也可以作为其他框架的数据源。那么在大数据平台上一个大数据处理框架一次任务可能需要访问多个数据源,要想支持以上所有的数据源的访问,大数据平台上的数据源访问开发就是个浩大的工程,现在比较常用的方式是在一个企业里面限制固定使用几种的数据存储方式及数据存储格式,这种方式解放了一些开发压力,不过应用程序系统的性能及效率也大打折扣,还有一种方式是通过将数据etl到设定的存储方式与存储格式上来,在进行业务计算,这种方式不但时效性上受到影响,多了一个环节复杂度也提高了,出问题的概率也提高了。



技术实现要素:

本发明要解决的技术问题,在于提供一种大数据处理框架源数据的统一访问通道的实现方法,将源数据访问按照数据格式进行分类,提供统一的源数据访问通道供大数据平台共用,提高了效率。

本发明是这样实现的:一种大数据处理框架源数据的统一访问通道的实现方法,包括:

在任务执行模块中对接了多种大数据处理框架;并在数据获取模块中设置一条统一访问通道,所述统一访问通道对接多种数据源通道;

所述任务执行模块通过大数据处理框架接收任务,然后向所述数据获取模块请求源数据;

所述数据获取模块收到请求时,由所述统一访问通道根据所匹配数据源通道访问源数据存储介质,获取源数据供所述任务执行模块执行任务使用。

进一步的,所述大数据处理框架向所述数据获取模块请求源数据时,只需将具体要访问的rdbms服务器的ip、用户名和密码以及访问的对象传入所述统一访问通道,由所述统一访问通道根据所匹配数据源通道获取源数据。

进一步的,传入所述统一访问通道的还包括访问方式,若访问方式为并行访问,则所述统一访问通道提供两种访问模式:

(1)提供用于划分并行的字段,并提供这个字段的最大值、最小值和并行度,并自动划分并行访问获取数据;

(2)提供每个并行进行获取源数据的谓词,并自动划分并行访问获取数据。

进一步的,所述任务执行模块中对接的大数据处理框架包括spark、flink、hive、pig、graphlab、cassandra、mongodb、impala、greenplum、hawq、storm、elasticsearch、solr、hbase、mysql。

进一步的,所述统一访问通道对接的数据源通道种类包括jdbc通道、json通道、textfile通道、parquet通道、sequencefile通道、csv通道、orcfile通道、avro通道以及其他通道。

进一步的,所述任务执行模块通过大数据处理框架接收任务后,根据大数据处理框架信息和任务信息获取对应的执行参数,再通过执行参数构建框架的任务上下文,然后在任务上下文中向所述数据获取模块请求源数据。

进一步的,所述源数据的数据源为大数据存储框架或者其他存储框架,还或者为大数据处理框架。

本发明具有如下优点:将源数据访问按照数据格式进行分类,提供统一访问通道,通过统一访问通道再访问各种数据源通道,例如jdbc、json、textfile、parquet、sequencefile、csv、orcfile、avro等数据源通道。此统一访问通道是大数据平台共用的,无需每个大数据处理框架需要数据源的时候针对每个数据源进行独立的实现,独立实现的方式不但有大量的重复性开发还导致程序的臃肿运行效率低下。

附图说明

下面参照附图结合实施例对本发明作进一步的说明。

图1为本发明方法执行流程图。

具体实施方式

请参阅图1所示,本发明大数据处理框架源数据的访问执行整体流程包括大数据处理框架接收任务,请求任务所需参数,构建任务的上下文,请求任务所需源数据,获取源数据,执行任务,然后输出结果,再根据需要进行结果集封装。整体流程相关的模块包括:任务执行模块、参数适配模块、数据获取模块、结果集封装模块。

同样请参阅图1,本发明的大数据处理框架源数据的统一访问通道的实现方法,包括:

在任务执行模块中对接了多种大数据处理框架;包括spark、flink、hive、pig、graphlab、cassandra、mongodb、impala、greenplum、hawq、storm、elasticsearch、solr、hbase、mysql。每个大数据处理框架,通过消息或者参数设置,对发送过来的任务调度到对应的框架上面执行。

在数据获取模块中设置一条统一访问通道,所述统一访问通道对接多种数据源通道;包括jdbc通道、json通道、textfile通道、parquet通道、sequencefile通道、csv通道、orcfile通道、avro通道以及其他通道。例如jdbc通道对接的就是所有的能提供jdbc访问接口的rdbms的数据源的访问。而这里的其他通道是个通用的通道,当根据任务信息匹配不到可用的通道的时候,就通过其他通道,使用原来框架提供的数据源访问接口获取源数据。任务信息的载体都是以jar包的形式出现,里面包含的任务需要执行在什么大数据环境下(分布式,伪分布式,单机),任务需要的数据源,任务具体的业务逻辑,任务执行结果输出等相关信息。

所述源数据的数据源为大数据存储框架或者其他存储框架,通过数据获取模块获取数据;也可以或者为大数据处理框架,此时大数据处理框架就成了数据源,则需要递归调用大数据平台获取数据源,最后执行对应的任务,输出结果集。

所述任务执行模块通过大数据处理框架接收任务,根据大数据处理框架信息和任务信息获取对应的执行参数,这里的执行参数可以指定具体执行任务的进程需要的资源配置信息,任务执行的并行度,与执行任务的进程的心跳时长,任务执行过程所需的端口的信息,底层jvm的选项等相关信息;再通过执行参数构建框架的任务上下文,然后在任务上下文中向所述数据获取模块请求源数据;此处的上下文可以理解成一个运行在客户端的大数据平台程序,用于连接大数据平台,分配任务到大数据平台的具体节点上执行,根据参数信息,到大数据平台的具体执行节点申请资源,监控任务执行情况,任务的ha,任务结果集的汇总等功能。

所述数据获取模块收到请求时,由所述统一访问通道根据所匹配数据源通道访问源数据存储介质,获取源数据供所述任务执行模块执行任务使用。

所述统一访问通道的技术特点是:例如以前不同的大数据处理框架访问不同的rdbms需要调用不同的api或者通过大数据处理框架封装好的rdbms的jdbc协议来获取数据;而本发明中,所述大数据处理框架向所述数据获取模块请求源数据时,只需将具体要访问的rdbms服务器的ip、用户名和密码以及访问的对象传入所述统一访问通道,由所述统一访问通道根据所匹配数据源通道获取源数据。传入所述统一访问通道的还包括访问方式,若访问方式为并行访问,则所述统一访问通道提供两种访问模式:

(1)提供用于划分并行的字段,并提供这个字段的最大值、最小值和并行度,并自动划分并行访问获取数据;示例代码如下:

"columnname":"id",

"lowerbound":"1",

"upperbound":"50000",

"numpartitions":"6"

(2)提供每个并行进行获取源数据的谓词,并自动划分并行访问获取数据。示例代码如下:

“predicates”:array[string]("id<=2","id>=4andid<=5"),

“predicates”:array[string]("idin(2,4,6,8)","idin(1,3,5,7)"),

每个array元素为一个并行分区。

综上,本发明将源数据访问按照数据格式进行分类,提供统一访问通道,通过统一访问通道再访问各种数据源通道,例如jdbc、json、textfile、parquet、sequencefile、csv、orcfile、avro等数据源通道。此统一访问通道是大数据平台共用的,无需每个大数据处理框架需要数据源的时候针对每个数据源进行独立的实现,独立实现的方式不但有大量的重复性开发还导致程序的臃肿运行效率低下。

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1