CN108241539B - 基于分布式系统的交互式大数据查询方法、装置、存储介质和终端设备 - Google Patents
基于分布式系统的交互式大数据查询方法、装置、存储介质和终端设备 Download PDFInfo
- Publication number
- CN108241539B CN108241539B CN201810004955.2A CN201810004955A CN108241539B CN 108241539 B CN108241539 B CN 108241539B CN 201810004955 A CN201810004955 A CN 201810004955A CN 108241539 B CN108241539 B CN 108241539B
- Authority
- CN
- China
- Prior art keywords
- query
- node
- task
- data
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出一种基于分布式系统的交互式大数据查询方法、装置、存储介质及终端设备,所述分布式系统包括执行name node进程的hadoop hdfs调度服务器、执行master进程的spark调度服务器、执行job tracker进程的mapreduce调度服务器以及多个节点服务器,其中,每个节点服务器均部署有执行hdfs datanode进程、spark worker进程和mapreduce node进程。以及原始数据经过mapreduce的处理导入到hadoop hdfs中并进行格式优化,查询任务提交到spark上,会以最大的并发度执行,直接读取导入的数据进行本地化计算,能够极大的提高大数据查询的效率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种基于分布式系统的交互式大数据查询方法、装置、存储介质和终端设备。
背景技术
目前,Facebook开发的presto的查询系统和Google开发的dremel的查询系统均能够在shuffle数据量低于100G情况下,实现TB级别大数据的秒级查询。但是,他们的方案都是完全独立研发的计算引擎,没有使用业界成熟度非常高的计算引擎,导致系统相对封闭,不利于大数据学习和运维。spark是一款成熟的计算引擎,其能实现计算引擎和存储的对接,以及,相比前述自研查询引擎,其便于对查询引擎的快速地优化。
但是,在现有技术中,利用spark查询数据量过大的shuffle的情况下,查询执行的时间会快速增加,这就对查询的类型提出了约束,而且在查询并发比较集中的情况下会导致排队,进一步加长查询的时间。
发明内容
本发明实施例提供一种基于分布式系统的交互式大数据查询方法、装置、存储介质和终端设备,能够提高查询数据的效率。
第一方面,本发明实施例提供了一种基于分布式系统的交互式大数据查询方法,所述分布式系统包括用于执行name node进程的Hadoop hdfs调度服务器、用于执行master进程的spark调度服务器、以及至少一个均部署有hdfs datanode进程和spark worker进程的节点服务器,所述方法由所述spark调度服务器或节点服务器执行,包括:
接收客户端的查询请求;其中,所述查询请求包括查询条件;
根据所述查询条件,计算获得待执行的查询任务和与该查询任务关联的查询逻辑;其中,该查询任务记载有从所述Hadoop hdfs调度服务器中查询到的执行该查询任务的查询数据所存储在的节点服务器;
判断当前空闲节点服务器的节点数量是否大于待执行的查询任务的任务数量;
若是,则从当前空闲节点服务器中选取出存储有所述查询数据的节点服务器,并继续从剩余的空闲节点服务器中选取使并发数量满足所述任务数量的节点服务器,以及向选取到的节点服务器并发查询任务和与该查询任务关联的查询逻辑;
若否,则向当前空闲节点服务器均并发查询任务和与该查询任务关联的查询逻辑,并实时查询是否有空闲的节点服务器以下发剩余的查询任务;
接收节点服务器返回的执行查询任务的任务结果;
根据任务结果计算生成查询结果,并将所述查询结果发送给所述客户端。
结合第一方面,本发明在第一方面的第一种实施方式中,所述分布式系统还包括数据导入接口,以及所述方法还包括:
向所述数据导入接口查询是否有增量数据分片导入;所述增量数量分片包括分片文件;
若有,从所述数据导入接口获取所述增量数据分片的分片文件;
对获取到的分片文件执行文件合并操作;以及
存储合并后的增量数据分片于所述分布式系统的节点服务器中。
结合第一方面的第二种实施方式,本发明在第一方面的第二种实施方式中,所述从所述数据导入接口获取所述增量数据分片的分片文件,包括:
从所述数据导入接口获取同属一个合并任务的分片文件。
结合第一方面的第一种实施方式,本发明在第一方面的第三种实施方式中,所述文件合并操作包括:
以ORC格式合并生成新的分片文件。
结合第一方面的第一种实施方式,本发明在第一方面的第四种实施方式中,所述数据导入接口为用于执行job tracker进程的mapreduce调度服务器,以及,所述分布式系统中的所有节点服务器均运行mapreduce node进程。
第二方面,本发明实施例提供了一种基于分布式系统的交互式大数据查询装置,其中,所述分布式系统包括用于执行name node进程的Hadoop hdfs调度服务器、用于执行master进程的spark调度服务器、以及至少一个均部署有hdfs datanode进程和sparkworker进程的节点服务器,所述装置设置在所述spark调度服务器或节点服务器中,包括:
查询请求接收模块,用于接收客户端的查询请求;其中,所述查询请求包括查询条件;
任务与逻辑生成模块,用于根据所述查询条件,计算获得待执行的查询任务和与该查询任务关联的查询逻辑;其中,该查询任务记载有从所述Hadoop hdfs调度服务器中查询到的执行该查询任务的查询数据所存储在的节点服务器;
数量判断模块,用于判断当前空闲节点服务器的节点数量是否大于待执行的查询任务的任务数量;
计算任务调度模块,用于若是,则从当前空闲节点服务器中选取出存储有所述查询数据的节点服务器,并继续从剩余的空闲节点服务器中选取使并发数量满足所述任务数量的节点服务器,以及向选取到的节点服务器并发查询任务和与该查询任务关联的查询逻辑;
直接调度模块,用于若否,则向当前空闲节点服务器均并发查询任务和与该查询任务关联的查询逻辑,并实时查询是否有空闲的节点服务器以下发剩余的查询任务;
任务结果接收模块,用于接收节点服务器返回的执行查询任务的任务结果;
查询结果生成模块,用于根据任务结果计算生成查询结果,并将所述查询结果发送给所述客户端。
结合第二方面,本发明在第二方面的第一种实施方式中,所述分布式系统还包括数据导入接口,以及所述装置还包括:
增量数据导入模块,用于向所述数据导入接口查询是否有增量数据分片导入;所述增量数量分片包括分片文件;
增量数据获取模块,用于当查询到有增量数据分片导入时,从所述数据导入接口获取所述增量数据分片的分片文件;
合并执行模块,用于对获取到的分片文件执行文件合并操作;以及
数据存储模块,用于存储合并后的增量数据分片于所述分布式系统的节点服务器中。
结合第二方面,本发明在第二方面的第发给种实施方式中,所述数据导入接口为用于执行job tracker进程的mapreduce调度服务器,以及,所述分布式系统中的所有节点服务器均运行mapreduce node进程。
所述装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,基于分布式系统的交互式大数据查询装置的结构中包括处理器和存储器,所述存储器用于基于分布式系统的交互式大数据查询装置执行上述第一方面中基于分布式系统的交互式大数据查询方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述基于分布式系统的交互式大数据查询装置还可以包括通信接口,用于基于分布式系统的交互式大数据查询装置与其他设备或通信网络通信。
第三方面,本发明实施例提供了一种计算机可读存储介质,用于存储基于分布式系统的交互式大数据查询装置所用的计算机软件指令,其包括用于执行上述第一方面中基于分布式系统的交互式大数据查询方法为基于分布式系统的交互式大数据查询装置所涉及的程序。
上述技术方案中的任一个技术方案具有如下优点或有益效果:
本发明实施例提供分布式系统包括执行name node进程的hadoop hdfs调度服务器、执行master进程的spark调度服务器,执行job tracker进程的mapreduce调度服务器以及多个节点服务器,每个节点服务器均部署有执行hdfs datanode进程、spark worker进程和mapreduce node进程。以及原始数据经过mapreduce的进程导入到hadoop hdfs中并进行格式优化,提交到spark,如此实际计算任务会以最大的并发度执行,直接读取导入的数据进行本地化计算,能够极大的提高大数据查询的效率。此外,spark调度服务器或节点服务器在接收到查询请求时计算生成查询任务与该查询任务的查询逻辑,在生成查询任务过程向Hadoop hdfs调度服务器查询存储有执行这些查询任务的查询数据的节点服务器,进而在后面选择并发的服务器时可尽量选择存储有节点服务器来下发送查询任务,而spark调度服务器所分配的节点服务器的数量的上限值为所述分布式系统的节点服务器的总数量,即允许一个查询请求占用系统内的所有节点服务器,如此大大提高查询并发度,提高查询的效率,而且系统内的节点服务器可以快速释放出来执行下一个查询请求的任务。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本发明公开的一些实施方式,而不应将其视为是对本发明范围的限制。
图1是本发明提供的分布式系统的一个实施例的结构示意图;
图2是本发明提供的基于分布式系统的交互式大数据查询方法的一个实施例的流程示意图;
图3是本发明提供的基于分布式系统的交互式大数据查询方法的数据导入处理的过程的一个实施例的流程示意图;
图4是本发明提供的基于分布式系统的交互式大数据查询装置的一个实施例的结构示意图;
图5是本发明实施例提供的终端设备的结构示意图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
本发明实施例提供的数据查询方案基于分布式系统的架构来实现的,所述分布式系统包括但不限于Hadoop、Pregel、MapReduce(MR)、Spark、Dryad、Scope等开源分布式框架中的一者或多者组成,因而本发明实施例以Hadoop hdfs、Spark和MapReduce混布的分布式系统为例阐述本发明的技术方案:
实施例一
本发明实施例提供一种分布式系统包括管理服务器和多个节点服务器400(401,···,40N),所述管理服务器和所述多个节点服务器运行以下软件框架:以Hadoophdfs作为统一管理调度数据存储的框架、以spark和以mapreduce作为计算框架,或者以spark和mapreduce的其中一者作为对集群内的数据执行具体查询计算的框架,另一者作为对集群内的数据执行预处理的框架,即spark计算框架和mapreduce计算框架共享集群资源,优选以spark作为集群内的数据执行具体的查询计算的框架。如图1所示,本发明实施例提供管理服务器包括Hadoop hdfs调度服务器100、spark调度服务器200和mapreduce调度服务器300这三者;所述Hadoop hdfs调度服务器100用于运行hdfs name node进程,调度节点服务器400之间的数据资源存储;所述spark调度服务器200用于运行spark master进程,接收客户端的查询请求,并控制节点服务器400进行查询计算操作;所述mapreduce调度服务器300用于运行mapreduce job tracker进程,对导入的数据或者新生成的数据进行预处理,并提交给Hadoop hdfs调度服务器100进行资源调度。则对应于前述调度服务器的执行进程,集群内的每一个所述节点服务器400用于运行Hadoop的hdfs data node进程、spark的spark worker进程以及mapreduce的mapreduce node进程。则Hadoop hdfs调度服务器100、spark调度服务器200和mapreduce调度服务器300均可以对同一个节点服务器进行访问。
优选地,所述Hadoop hdfs调度服务器100、spark调度服务器200、mapreduce调度服务器300可以模块的形式集成于一个管理服务器。需要说明的是,图示中的连接线可是以无线连接也可有线连接,用于表示他们在同一个集群内通信。
实施例二
请参阅图2,在实施一提供的系统的基础上,本发明实施例提供了一种基于分布式系统的交互式大数据查询方法,由spark调度服务器200或某一节点服务器400执行,由于节点服务器也可执行spark进程,所述其也可执行以下步骤S110至步骤S170:
S110,接收客户端的查询请求;其中,所述查询请求包括查询条件。
在本发明实施例中,所述客户端可以向集群内的某一个节点服务器或spark调度服务器200发送查询请求。
S120,根据所述查询条件,计算获得查询任务和与该查询任务关联的查询逻辑。其中,该查询任务记载有从所述Hadoop hdfs调度服务器中查询到的执行该查询任务的查询数据所存储在的节点服务器;即在生成每个查询任务时,即可获得执行该查询任务的查询数据的存储地址。
在本发明实施例中,以这个查询请求为例:查询有多少个专业身高介于1.6米和1.7米之间的大一的男生的人数大于这个专业身高介于1.6米和1.7米之间的大二的女生的人数。那么spark会分解出这么几种类型的查询任务:
A:每个专业身高介于1.6米和1.7米之间的大一的男生的人数;
B:每个专业身高介于1.6米和1.7米之间的大二的女生的人数;
C:根据专业名关联查询任务A和查询任务B的计算结果,计算该专业下查询任务A的计算结果大于查询任务B的计算结果的总量;
D:对所有查询任务C的节点服务器的计算结果求和。
此处A、B和C每种类型的查询任务都可能下发给多个节点服务器执行(并发),这个例子中的类型D的查询任务只对应一个节点服务器,由该节点服务器执行,一般为接收该查询请求的服务器执行。并且A和B互不依赖,C要依赖A和B的计算结果,D要依赖C的计算结果。
以下将针对一个查询请求所生成的查询任务,描述配置下发的节点服务器的过程:
S130,判断当前空闲节点服务器的节点数量是否大于待执行的查询任务的任务数量。
S140,若是,则从当前空闲节点服务器中选取出存储有所述查询数据的节点服务器,并继续从剩余的空闲节点服务器中选取使并发数量满足所述任务数量的节点服务器,以及向选取到的节点服务器并发查询任务和与该查询任务关联的查询逻辑。
本步骤S140如此设置可以实现接收到查询任务的节点服务器,若其自身存储有查询数据,即可以执行本地化的查询计算过程,有利于提高查询计算效率;若其自身不存储有查询数据,则可以根据查询任务上记载的查询数据所存储的节点服务器,向该节点服务器调取查询数据进行查询计算。
S150,若否,则向当前空闲节点服务器均并发查询任务和与该查询任务关联的查询逻辑,并实时查询是否有空闲的节点服务器以下发剩余的查询任务。
本步骤S150如此设置是尽量占用所有的节点服务器,减少多个查询请求的排队时间。
S160,接收节点服务器返回的执行查询任务的任务结果。
S170,根据任务结果计算生成查询结果,并将所述查询结果发送给所述客户端。
需要说明的是,以前述提供的查询任务的类型为例,执行查询任务A和查询任务B的节点服务器会根据查询逻辑发送其所计算出来的计算结果给执行查询任务C的节点服务器,执行查询任务C的节点服务器则对接收到的计算结果进行计算获得相应的计算结果,当然这个执行过程是并发的,最后所有执行查询任务C的节点服务器均会反馈一个计算结果,即上述任务结果给执行步骤S140的服务器,该服务器进行汇总计算,得到一个最终的查询结果以发送给客户端。
本发明实施例的分布式系统是采用以Hadoop hdfs作为统一管理调度数据存储的框架。Hadoop hdfs调度服务器将大容量的数据分成若干块,散布于节点服务器中进行存储。而基于前述实施例提供的查询任务的生成与下发方案,若查询数据存储在本节点服务器时,节点服务器可以仅基于本节点服务器上的数据块进行查询计算,无需跨到其他节点服务器中进行查询计算,即实现本地化计算,减少数据计算读取延迟。另外,Hadoop hdfs调度服务器一般会将一个查询任务所要查询计算的数据散布在合适数量的节点服务器上,本发明实施例允许其分配到系统内所有节点服务器。
实施例三
请参阅图3,在上述实施一和实施二的基础,本发明实施例提供一种数据导入处理的方法,所述分布式系统还包括数据导入接口,其可以为spark调度服务器200或mapreduce调度服务器300,优选为mapreduce调度服务器300,当然在实施例一中若采用了其他类型的预处理计算框架,也可以由其采用的预处理计算框架对应的调度服务器来执行。本发明实施例由spark调度服务器200或节点服务器400执行,包括:
S210,向所述数据导入接口查询是否有增量数据分片导入;所述增量数量分片包括分片文件。
在本发明实施例中,所述分布式系统每天、某个固定的时间或随时的一个时间会有增量数据分片导入所述数据导入接口,因而节点服务器以固定周期向所述数据导入接口查询是否有有增量数据分片导入,但为了避免查询过于频繁以及数据导入接口累积的增量数据分片数据量过大,优选所述固定周期为1~10分钟之间。
S220,若有,从所述数据导入接口获取所述增量数据分片的分片文件;
对于执行本过程的服务器来说,本步骤的执行可以从所述数据导入接口获取同属一个合并任务的所述增量数据分片分片文件。
本发明实施例是基于分布式系统来实理,数据导入的过程也是分布式处理的,数据导入接口在接收到数据是即判断哪一些分片文件是需要进行合并成一个目标文件的,将其作为同一合并任务,节点服务器400中的mapreduce node进程会并行地接收数据导入接口的合并任务,直接执行合并操作即可。
S230,对所述增量数据分片中的分片文件执行文件合并操作。
所述增量数据分片以partition对应的表的数据的形式导入所述增量数据分片,其实际上都是一些文件,当文件很小并且文件数量很多的时候,在节点服务器读取这个partition的效率会非常低,本发明实施例提供文件合并操作的目的是要把一个partition下的所有文件合并成一个或者几个文件,有利提高节点服务器在执行查询计算操作时提高读取文件的效率。
S240,存储合并后的增量数据分片于所述分布式系统的节点服务器中。
一般地来说,合并的增量数据分片是同属于一个合并任务,由于在执行该合并任务之前数据导入接口,例如mapreduce调度服务器,提前计划该合并任务生成的合并文件是要存储哪一个节点服务器中的,所以合并后的增量数据分片根据其原始记载的计划好的存储地址进行存储即可。
优选地,在将两个文件合并生成新的分片文件的过程中是以ORC格式合并生成新的分片文件。具体地,判断所述两个文件是否为ORC格式,若均是,则直接将所述两个文件合并;若否,则将所述两个文件中不为ORC格式的文件转成ORC格式后,再将所述两个文件进行合并。
实施例四
请参阅图4,本发明实施例提供一种基于分布式系统的交互式大数据查询装置,所述分布式系统包括用于执行name node进程的Hadoop hdfs调度服务器、用于执行master进程的spark调度服务器、以及至少一个均部署有hdfs datanode进程和spark worker进程的节点服务器,所述装置设置在所述spark调度服务器或节点服务器中,包括:
查询请求接收模块10,用于接收客户端的查询请求;其中,所述查询请求包括查询条件;
任务与逻辑生成模块20,用于根据所述查询条件,计算获得待执行的查询任务和与该查询任务关联的查询逻辑;其中,该查询任务记载有从所述Hadoop hdfs调度服务器中查询到的执行该查询任务的查询数据所存储在的节点服务器;
数量判断模块30,用于判断当前空闲节点服务器的节点数量是否大于待执行的查询任务的任务数量;
计算任务调度模块40,用于若是,则从当前空闲节点服务器中选取出存储有所述查询数据的节点服务器,并继续从剩余的空闲节点服务器中选取使并发数量满足所述任务数量的节点服务器,以及向选取到的节点服务器并发查询任务和与该查询任务关联的查询逻辑;
直接调度模块50,用于若否,则向当前空闲节点服务器均并发查询任务和与该查询任务关联的查询逻辑,并实时查询是否有空闲的节点服务器以下发剩余的查询任务;
任务结果接收模块60,用于接收节点服务器返回的执行查询任务的任务结果;
查询结果生成模块70,用于根据任务结果计算生成查询结果,并将所述查询结果发送给所述客户端。
进一步地,所述分布式系统还包括数据导入接口,以及所述装置还包括:
增量数据导入模块,用于向所述数据导入接口查询是否有增量数据分片导入;所述增量数量分片包括分片文件;
增量数据获取模块,用于当查询到有增量数据分片导入时,从所述数据导入接口获取所述增量数据分片的分片文件;
合并执行模块,用于对获取到的分片文件执行文件合并操作;以及
数据存储模块,用于存储合并后的增量数据分片于所述分布式系统的节点服务器中。
进一步地,增量数据获取模块具体用于从所述数据导入接口获取同属一个合并任务的分片文件。
进一步地,所述文件合并操作包括以ORC格式合并生成新的分片文件。
优选地,所述数据导入接口为用于执行job tracker进程的mapreduce调度服务器,以及,所述分布式系统中的所有节点服务器均运行mapreduce node进程。
所述装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
实施例五
本发明实施例还提供一种终端设备,如图5所示,该设备包括:存储器21和处理器22,存储器21内存储有可在处理器22上运行的计算机程序。处理器22执行所述计算机程序时实现上述实施例中的基于分布式系统的交互式大数据查询方法。存储器21和处理器22的数量可以为一个或多个。
该设备还包括:
通信接口23,用于处理器22和外围设备之间的通信。
存储器21可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
如果存储器21、处理器22和通信接口23独立实现,则存储器21、处理器22和通信接口23可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(ISA,Industry Standard Architecture)总线、外部设备互连(PCI,PeripheralComponent)总线或扩展工业标准体系结构(EISA,Extended Industry StandardComponent)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器21、处理器22及通信接口23集成在一块芯片上,则存储器21、处理器22及通信接口23可以通过内部接口完成相互间的通信。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
本发明实施例所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质的更具体的示例至少(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式只读存储器(CDROM)。另外,计算机可读存储介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
在本发明实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于指令执行系统、输入法或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、射频(RadioFrequency,RF)等等,或者上述的任意合适的组合。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。所述存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种基于分布式系统的交互式大数据查询方法,其特征在于,所述分布式系统包括用于执行name node进程的Hadoop hdfs调度服务器、用于执行master进程的spark调度服务器和用于运行mapreduce job tracker进程的mapreduce调度服务器、以及至少一个均部署有hdfs datanode进程、spark worker进程和mapreduce node进程的节点服务器,原始数据经过mapreduce node进程导入到hadoop hdfs调度服务器中并进行格式优化,提交到spark调度服务器;所述方法由所述spark调度服务器或节点服务器执行,所述spark调度服务器所分配的节点服务器的数量的上限值为所述分布式系统的节点服务器的总数量;包括:
接收客户端的查询请求;其中,所述查询请求包括查询条件;
根据所述查询条件,计算获得待执行的查询任务和与该查询任务关联的查询逻辑;其中,该查询任务记载有从所述Hadoop hdfs调度服务器中查询到的执行该查询任务的查询数据所存储在的节点服务器;
判断当前空闲节点服务器的节点数量是否大于待执行的查询任务的任务数量;
若是,则从当前空闲节点服务器中选取出存储有所述查询数据的节点服务器,并继续从剩余的空闲节点服务器中选取使并发数量满足所述任务数量的节点服务器,以及向选取到的节点服务器并发查询任务和与该查询任务关联的查询逻辑;
若否,则向当前空闲节点服务器均并发查询任务和与该查询任务关联的查询逻辑,并实时查询是否有空闲的节点服务器以下发剩余的查询任务;
接收节点服务器返回的执行查询任务的任务结果;
根据任务结果计算生成查询结果,并将所述查询结果发送给所述客户端。
2.如权利要求1所述的基于分布式系统的交互式大数据查询方法,其特征在于,所述分布式系统还包括数据导入接口,以及所述方法还包括:
向所述数据导入接口查询是否有增量数据分片导入;所述增量数量分片包括分片文件;
若有,从所述数据导入接口获取所述增量数据分片的分片文件;
对获取到的分片文件执行文件合并操作;以及
存储合并后的增量数据分片于所述分布式系统的节点服务器中。
3.如权利要求2所述的基于分布式系统的交互式大数据查询方法,其特征在于,所述从所述数据导入接口获取所述增量数据分片的分片文件,包括:
从所述数据导入接口获取同属一个合并任务的分片文件。
4.如权利要求2所述的基于分布式系统的交互式大数据查询方法,其特征在于,所述文件合并操作包括:
以ORC格式合并生成新的分片文件。
5.如权利要求2所述的基于分布式系统的交互式大数据查询方法,其特征在于,所述数据导入接口为用于执行job tracker进程的mapreduce调度服务器,以及,所述分布式系统中的所有节点服务器均运行mapreduce node进程。
6.一种基于分布式系统的交互式大数据查询装置,其特征在于,所述分布式系统包括用于执行name node进程的Hadoop hdfs调度服务器、用于执行master进程的spark调度服务器和用于运行mapreduce job tracker进程的mapreduce调度服务器、以及至少一个均部署有hdfs datanode进程和spark worker进程、和mapreduce node进程的节点服务器,原始数据经过mapreduce node进程导入到hadoop hdfs调度服务器中并进行格式优化,提交到spark调度服务器;所述装置设置在所述spark调度服务器或节点服务器中,所述spark调度服务器所分配的节点服务器的数量的上限值为所述分布式系统的节点服务器的总数量;包括:
查询请求接收模块,用于接收客户端的查询请求;其中,所述查询请求包括查询条件;
任务与逻辑生成模块,用于根据所述查询条件,计算获得待执行的查询任务和与该查询任务关联的查询逻辑;其中,该查询任务记载有从所述Hadoop hdfs调度服务器中查询到的执行该查询任务的查询数据所存储在的节点服务器;
数量判断模块,用于判断当前空闲节点服务器的节点数量是否大于待执行的查询任务的任务数量;
计算任务调度模块,用于若是,则从当前空闲节点服务器中选取出存储有所述查询数据的节点服务器,并继续从剩余的空闲节点服务器中选取使并发数量满足所述任务数量的节点服务器,以及向选取到的节点服务器并发查询任务和与该查询任务关联的查询逻辑;
直接调度模块,用于若否,则向当前空闲节点服务器均并发查询任务和与该查询任务关联的查询逻辑,并实时查询是否有空闲的节点服务器以下发剩余的查询任务;
任务结果接收模块,用于接收节点服务器返回的执行查询任务的任务结果;
查询结果生成模块,用于根据任务结果计算生成查询结果,并将所述查询结果发送给所述客户端。
7.如权利要求6所述的基于分布式系统的交互式大数据查询装置,其特征在于,所述分布式系统还包括数据导入接口,以及所述装置还包括:
增量数据导入模块,用于向所述数据导入接口查询是否有增量数据分片导入;所述增量数量分片包括分片文件;
增量数据获取模块,用于当查询到有增量数据分片导入时,从所述数据导入接口获取所述增量数据分片的分片文件;
合并执行模块,用于对获取到的分片文件执行文件合并操作;以及
数据存储模块,用于存储合并后的增量数据分片于所述分布式系统的节点服务器中。
8.如权利要求7所述的基于分布式系统的交互式大数据查询装置,其特征在于,所述数据导入接口为用于执行job tracker进程的mapreduce调度服务器,以及,所述分布式系统中的所有节点服务器均运行mapreduce node进程。
9.一种实现基于分布式系统的交互式大数据查询的终端设备,其特征在于,所述终端设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-5中任一所述的基于分布式系统的交互式大数据查询方法。
10.一种计算机可读存储介质,其存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的基于分布式系统的交互式大数据查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810004955.2A CN108241539B (zh) | 2018-01-03 | 2018-01-03 | 基于分布式系统的交互式大数据查询方法、装置、存储介质和终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810004955.2A CN108241539B (zh) | 2018-01-03 | 2018-01-03 | 基于分布式系统的交互式大数据查询方法、装置、存储介质和终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108241539A CN108241539A (zh) | 2018-07-03 |
CN108241539B true CN108241539B (zh) | 2021-05-07 |
Family
ID=62699367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810004955.2A Active CN108241539B (zh) | 2018-01-03 | 2018-01-03 | 基于分布式系统的交互式大数据查询方法、装置、存储介质和终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108241539B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109120674B (zh) * | 2018-07-20 | 2021-07-02 | 新华三大数据技术有限公司 | 大数据平台的部署方法及装置 |
CN109582693A (zh) * | 2018-11-26 | 2019-04-05 | 成都四方伟业软件股份有限公司 | 基于web的数据逻辑表达式处理方法及装置 |
CN110795255B (zh) * | 2019-10-16 | 2022-07-08 | 金蝶软件(中国)有限公司 | 数据批量值调整方法、装置、可读存储介质和设备 |
CN111158887B (zh) * | 2019-12-31 | 2023-11-17 | 中国银行股份有限公司 | 一种集中式数据分布式处理方法及装置 |
CN112445776B (zh) * | 2020-11-20 | 2022-12-20 | 北京易观智库网络科技有限公司 | 基于Presto的动态分桶方法、系统、设备及可读存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101957863A (zh) * | 2010-10-14 | 2011-01-26 | 广州从兴电子开发有限公司 | 数据并行处理方法、装置及系统 |
CN102611723A (zh) * | 2011-01-25 | 2012-07-25 | 赵天海 | 一种基于虚拟化技术构建高性能计算应用服务的方法 |
CN102752322A (zh) * | 2011-04-18 | 2012-10-24 | 中国科学院声学研究所 | 一种物联网中分布式数据存储和查询的方法 |
CN102968503A (zh) * | 2012-12-10 | 2013-03-13 | 曙光信息产业(北京)有限公司 | 数据库系统的数据处理方法以及数据库系统 |
CN103106249A (zh) * | 2013-01-08 | 2013-05-15 | 华中科技大学 | 一种基于Cassandra的数据并行处理系统 |
CN103309738A (zh) * | 2013-05-31 | 2013-09-18 | 中国联合网络通信集团有限公司 | 用户作业调度方法及装置 |
CN103473334A (zh) * | 2013-09-18 | 2013-12-25 | 浙江中控技术股份有限公司 | 数据存储、查询方法及系统 |
CN106294472A (zh) * | 2015-06-03 | 2017-01-04 | 中国移动通信集团广东有限公司 | 一种Hadoop数据库HBase的查询方法及装置 |
CN107506381A (zh) * | 2017-07-21 | 2017-12-22 | 中国建设银行股份有限公司 | 一种大数据分布式调度分析方法、系统装置及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10713574B2 (en) * | 2014-04-10 | 2020-07-14 | International Business Machines Corporation | Cognitive distributed network |
-
2018
- 2018-01-03 CN CN201810004955.2A patent/CN108241539B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101957863A (zh) * | 2010-10-14 | 2011-01-26 | 广州从兴电子开发有限公司 | 数据并行处理方法、装置及系统 |
CN102611723A (zh) * | 2011-01-25 | 2012-07-25 | 赵天海 | 一种基于虚拟化技术构建高性能计算应用服务的方法 |
CN102752322A (zh) * | 2011-04-18 | 2012-10-24 | 中国科学院声学研究所 | 一种物联网中分布式数据存储和查询的方法 |
CN102968503A (zh) * | 2012-12-10 | 2013-03-13 | 曙光信息产业(北京)有限公司 | 数据库系统的数据处理方法以及数据库系统 |
CN103106249A (zh) * | 2013-01-08 | 2013-05-15 | 华中科技大学 | 一种基于Cassandra的数据并行处理系统 |
CN103309738A (zh) * | 2013-05-31 | 2013-09-18 | 中国联合网络通信集团有限公司 | 用户作业调度方法及装置 |
CN103473334A (zh) * | 2013-09-18 | 2013-12-25 | 浙江中控技术股份有限公司 | 数据存储、查询方法及系统 |
CN106294472A (zh) * | 2015-06-03 | 2017-01-04 | 中国移动通信集团广东有限公司 | 一种Hadoop数据库HBase的查询方法及装置 |
CN107506381A (zh) * | 2017-07-21 | 2017-12-22 | 中国建设银行股份有限公司 | 一种大数据分布式调度分析方法、系统装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108241539A (zh) | 2018-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108241539B (zh) | 基于分布式系统的交互式大数据查询方法、装置、存储介质和终端设备 | |
US10558498B2 (en) | Method for scheduling data flow task and apparatus | |
CN107748696B (zh) | 一种任务调度的方法及终端设备 | |
US20110202657A1 (en) | Method for scheduling cloud-computing resource and system applying the same | |
CN108924187B (zh) | 基于机器学习的任务处理方法、装置和终端设备 | |
WO2014120487A1 (en) | Data stream splitting for low-latency data access | |
CN107861811B (zh) | 工作流系统中的任务信息传输方法、装置和计算机设备 | |
CN111210136B (zh) | 一种机器人任务调度的方法及服务器 | |
CN103366022B (zh) | 信息处理系统及其处理方法 | |
JP5730386B2 (ja) | 計算機システム及び並列分散処理方法 | |
CN103607424B (zh) | 一种服务器连接方法及服务器系统 | |
CN110347515B (zh) | 一种适合边缘计算环境的资源优化分配方法 | |
CN111352711B (zh) | 多计算引擎调度方法、装置、设备及存储介质 | |
CN109189572B (zh) | 一种资源预估方法及系统、电子设备和存储介质 | |
CN110427386B (zh) | 数据处理方法、装置及计算机存储介质 | |
CN111797091A (zh) | 数据库中数据查询的方法、装置、电子设备和存储介质 | |
CN112130966A (zh) | 任务调度方法和系统 | |
CN110134738A (zh) | 分布式存储系统资源预估方法、装置 | |
CN112463390A (zh) | 一种分布式任务调度方法、装置、终端设备及存储介质 | |
CN112698952A (zh) | 计算资源统一管理方法、装置、计算机设备及存储介质 | |
CN115221186A (zh) | 一种数据查询方法、系统、装置及电子设备 | |
CN111858014A (zh) | 资源分配方法及装置 | |
CN103634374A (zh) | 一种并发访问请求的处理方法及装置 | |
CN111061557B (zh) | 均衡分布式内存数据库负载的方法和装置 | |
CN112163734A (zh) | 基于云平台整定计算资源动态调度方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |