CN104580476A - 在分布式系统中选取节点的方法和装置 - Google Patents
在分布式系统中选取节点的方法和装置 Download PDFInfo
- Publication number
- CN104580476A CN104580476A CN201510016624.7A CN201510016624A CN104580476A CN 104580476 A CN104580476 A CN 104580476A CN 201510016624 A CN201510016624 A CN 201510016624A CN 104580476 A CN104580476 A CN 104580476A
- Authority
- CN
- China
- Prior art keywords
- node
- none
- distributed system
- source
- candidate
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
Abstract
本发明提供一种在分布式系统中选取节点的方法和装置,有助于在比较低的工作量和成本下通过提高None节点的内存容量,从而提高整个PrestoDB集群的性能。该方法包括:在所述分布式系统中,将指定的一部分节点作为候选的None节点;在需要将多个Source节点的数据片汇聚到一个节点的情况下,在所述候选的None节点中选择一个节点,然后将所述多个Source节点的数据片汇聚到选择的节点。
Description
技术领域
本发明涉及计算机技术领域,特别地涉及一种在分布式系统中选取节点的方法和装置。
背景技术
伴随着大数据的兴起,互联网公司的业务数据量逐年上升,因此各大互联网公司都在内部推行大数据技术,并且针对于核心业务系统建设数据仓库,目前数据仓库分为两种类型:离线数据仓库和实时数据仓库。
离线数据仓库的代表产品就是hive,该产品由于底层计算框架是MapReduce,因此其适合于超大数据集的离线分析和计算,对于实时性要求比较高的数据分析和计算并不适合。
实时数据仓库的代表产品是PrestoDB,该产品由FaceBook开发,采用了PipeLine的分布式数据计算和传输模式,对于大数据的分析和计算能够满足在100ms-20m之内,满足了实时数据分析和计算的要求。
由于PrestoDB是一个基于内存的分布式计算框架,在进行数据分析和计算的时候,PrestoDB首先将需要分析和计算的数据分为数据片并将每个数据片读取到PrestoDB的Source节点中的内存中,然后将每个Source节点内存中的数据通过网络汇聚到一个None节点或者多个Fixed节点中,具体是汇聚到None节点还是Fixed节点与聚合函数的类型相关,例如:如果查询中包含有order by语句,那么就需要对所有的结果进行整体排序,因此各个Source节点内存中的数据就需要汇聚到一个None节点中,然后进行整体排序;如果查询中包含有groupby语句,那么就需要对所有的结果进行分组,因此各个Source节点内存中的数据就需要汇聚到多个Fixed节点中,从而进行分组。
目前PrestoDB是从整个集群中随机选取一个节点作为None节点的,具体PrestoDB各种节点的选取算法如图1所示,图1是根据现有技术中的在PrestoDB集群中选取节点的流程的示意图。如图1所示,首先判断需要选取的节点的类型,如需选取None节点或Fixed节点,则在集群中随机选取;如需选取Source节点,先判断是否需要采用硬件感知的方式,若是,则根据数据本地性来选取,否则随机选取多个节点作为Source节点。这里的硬件感知是指感知需要处理的数据所在的位置,本地性是指优先选择数据所在的节点作为工作节点。因为如果分配的工作节点,刚好就是需要处理的数据所在的节点,就能减少数据进行网络传输所需要的时间,能够减少计算任务所需要的时间。所以在一些情况下可采用硬件感知方式,按本地性原则选取节点。
因此可以看出,如果一个节点被选择作为None节点,那么对其内存容量的要求就比较大。要想保证PrestoDB大数据量分析与计算的顺利进行,就必须对集群中的所有节点进行内存升级,使各个节点在被选择为None节点时都能胜任计算要求,这种升级工作量和成本都比较大。
发明内容
有鉴于此,本发明提供一种在分布式系统中选取节点的方法和装置,通过只提高None节点的内存容量,从而在比较低的工作量和成本下提高整个PrestoDB集群的性能。
为实现上述目的,根据本发明的一个方面,提供了一种在分布式系统中选取节点的方法。
本发明的在分布式系统中选取节点的方法中,分布式系统为PrestoDB集群,该方法包括:在所述分布式系统中,将指定的一部分节点作为候选的None节点;在需要将多个Source节点的数据片汇聚到一个节点的情况下,在所述候选的None节点中选择一个节点,然后将所述多个Source节点的数据片汇聚到选择的节点。
可选地,在将指定的一部分节点作为候选的None节点之后,还包括:在需要将多个Source节点的数据片汇聚到多个Fixed节点的情况下,判断当前是否允许所述候选的None节点作为候选的Fixed节点,若是,则在所述分布式系统中随机选取多个节点作为Fixed节点,否则在所述分布式系统中所述候选的None节点之外随机选取多个节点作为Fixed节点。
可选地,在将指定的一部分节点作为候选的None节点之后,还包括:在需要将分片的数据保存到Source节点的情况下,判断当前是否允许所述候选的None节点作为候选的Source节点,若是,则在所述分布式系统中随机选取多个节点作为Source节点,否则在所述分布式系统中所述候选的None节点之外随机选取多个节点作为Source节点。
可选地,在所述分布式系统中随机选取多个节点作为Source节点的步骤包括:在当前采用硬件感知方式的情况下,在所述分布式系统中按照本地性原则选取多个节点作为Source节点。
可选地,在所述分布式系统中所述候选的None节点之外随机选取多个节点作为Source节点的步骤包括:在当前采用硬件感知方式的情况下,在所述分布式系统中所述候选的None节点之外按照本地性原则选取多个节点作为Source节点。
根据本发明的另一方面,提供了一种在分布式系统中选取节点的装置。
对于本发明的在分布式系统中选取节点的装置,分布式系统为PrestoDB集群,该装置包括:配置模块,用于记录所述分布式系统中被指定的作为候选的None节点的一部分节点;None节点选择模块,用于在需要将多个Source节点的数据片汇聚到一个节点的情况下,在所述候选的None节点中选择一个节点作为None节点。
可选地,还包括Fixed节点选择模块,用于在需要将多个Source节点的数据片汇聚到多个Fixed节点的情况下,判断当前是否允许所述候选的None节点作为候选的Fixed节点,若是,则在所述分布式系统中随机选取多个节点作为Fixed节点,否则在所述分布式系统中所述候选的None节点之外随机选取多个节点作为Fixed节点。
可选地,还包括Source节点选择模块,用于在需要将分片的数据保存到Source节点的情况下,判断当前是否允许所述候选的None节点作为候选的Source节点,若是,则在所述分布式系统中随机选取多个节点作为Source节点,否则在所述分布式系统中所述候选的None节点之外随机选取多个节点作为Source节点。
可选地,所述Source节点选择模块还用于在当前采用硬件感知方式的情况下,在所述分布式系统中所述候选的None节点之外按照本地性原则选取多个节点作为Source节点。
可选地,所述Source节点选择模块还用于在当前采用硬件感知方式的情况下,在所述分布式系统中所述候选的None节点之外按照本地性原则选取多个节点作为Source节点。
根据本发明的技术方案,在PrestoDB集群中指定一部分节点作为候选的None节点,从而将None节点的选取限定在一定范围之内,这样可以对该范围的节点进行内存升级和扩容,使之胜任计算要求。这种方式无需对整个PrestoDB集群的所有节点进行内存升级扩容,因此升级扩容的工作量比较低,并且能够提高整个PrestoDB集群的性能。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的示意图;
图2是根据本发明实施例的在分布式系统中选取节点的方法的示意图;
图3是根据本发明实施例的在分布式系统中选取节点的装置的主要模块的示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本发明实施例的方案中,事先指定PrestoDB集群中的一部分节点作为候选的None节点,在需要选择None节点时就从这一部分节点中选择。也可以设置配置项,对于是从这一部分节点中选择None节点还是在PrestoDB集群中随机选择None节点进行配置。在PrestoDB启动的时候,对该配置项进行解析,根据配置项中的配置信息,构建一个由对应的IP-Port对组成的一个列表,并在分配None节点时进行使用。其配置规范例如:None汇聚节点=IP地址1:端口1;IP地址2:端口2。即指定了IP地址为地址1和地址2的两个节点作为候选的None节点,端口分别为端口1和端口2。在配置项中,还可以对于是否允许上述的候选的None节点作为候选的Fixed节点进行配置,对于是否允许上述的候选的None节点作为候选的Source节点也进行配置。这样,在需要选择节点时,可按图2所示流程来进行。图2是根据本发明实施例的在分布式系统中选取节点的方法的示意图。该方法可由PrestoDB中的Coordinator节点来执行。
步骤S21:判断需要选择的节点的类型。在需要将分片的数据保存到Source节点的情况下,需选择的节点是Source节点,进入步骤S24。在需要对数据片进行汇聚处理时根据聚合函数的类型来确定需选择的节点的类型,在需选择None节点时,进入步骤S22;在需选择Fixed节点时,进入步骤S23。
步骤S22:判断None节点是否从指定范围中选取。该判断根据上述的配置项进行。若是,则从配置项中记录的候选的None节点中选取一个节点作为None节点(步骤S221),否则随机选取一个节点作为None节点(步骤S222)。
步骤S23:判断是否允许候选的None节点作为候选的Fixed节点。若是,则可以随机选取多个节点作为Fixed节点(步骤S231),否则在分布式系统中的候选的None节点之外随机选取多个节点作为Fixed节点。
步骤S24:判断是否采用硬件感知的方式,若是,进入步骤S241,否则进入步骤S242。
步骤S241:判断是否允许候选的None节点作为候选的Source节点。若是,则可以按照本地性原则选取多个节点作为Source节点(步骤S2411),否则在分布式系统中的候选的None节点之外按照本地性原则选取多个节点作为Source节点(步骤S2412)。
步骤S242:判断是否允许候选的None节点作为候选的Source节点。若是,则可以随机选取多个节点作为Source节点(步骤S2421),否则在分布式系统中的候选的None节点之外随机选取多个节点作为Source节点(步骤S2422)。
图3是根据本发明实施例的在分布式系统中选取节点的装置的主要模块的示意图。如图3所示,本发明实施例的在分布式系统中选取节点的装置30主要包括配置模块31和None节点选择模块32。配置模块31用于记录分布式系统中被指定的作为候选的None节点的一部分节点。None节点选择模块32用于在需要将多个Source节点的数据片汇聚到一个节点的情况下,在候选的None节点中选择一个节点作为None节点。
装置30还可以包括还包括Fixed节点选择模块(图中未示出),用于在需要将多个Source节点的数据片汇聚到多个Fixed节点的情况下,判断当前是否允许候选的None节点作为候选的Fixed节点,若是,则在分布式系统中随机选取多个节点作为Fixed节点,否则在分布式系统中候选的None节点之外随机选取多个节点作为Fixed节点。
装置30还可以包括Source节点选择模块(图中未示出),用于在需要将分片的数据保存到Source节点的情况下,判断当前是否允许候选的None节点作为候选的Source节点,若是,则在分布式系统中随机选取多个节点作为Source节点,否则在分布式系统中候选的None节点之外随机选取多个节点作为Source节点。
Source节点选择模块还可用于在当前采用硬件感知方式的情况下,在分布式系统中候选的None节点之外按照本地性原则选取多个节点作为Source节点。Source节点选择模块还用于在当前采用硬件感知方式的情况下,在分布式系统中候选的None节点之外按照本地性原则选取多个节点作为Source节点。
根据本发明实施例的技术方案,在PrestoDB集群中指定一部分节点作为候选的None节点,从而将None节点的选取限定在一定范围之内,这样可以对该范围的节点进行内存升级和扩容,使之胜任计算要求。这种方式无需对整个PrestoDB集群的所有节点进行内存升级扩容,因此升级扩容的工作量比较低,并且能够提高整个PrestoDB集群的性能。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种在分布式系统中选取节点的方法,所述分布式系统为PrestoDB集群,其特征在于,该方法包括:
在所述分布式系统中,将指定的一部分节点作为候选的None节点;
在需要将多个Source节点的数据片汇聚到一个节点的情况下,在所述候选的None节点中选择一个节点,然后将所述多个Source节点的数据片汇聚到选择的节点。
2.根据权利要求1所述的方法,其特征在于,在将指定的一部分节点作为候选的None节点之后,还包括:
在需要将多个Source节点的数据片汇聚到多个Fixed节点的情况下,判断当前是否允许所述候选的None节点作为候选的Fixed节点,若是,则在所述分布式系统中随机选取多个节点作为Fixed节点,否则在所述分布式系统中所述候选的None节点之外随机选取多个节点作为Fixed节点。
3.根据权利要求1所述的方法,其特征在于,在将指定的一部分节点作为候选的None节点之后,还包括:
在需要将分片的数据保存到Source节点的情况下,判断当前是否允许所述候选的None节点作为候选的Source节点,若是,则在所述分布式系统中随机选取多个节点作为Source节点,否则在所述分布式系统中所述候选的None节点之外随机选取多个节点作为Source节点。
4.根据权利要求3所述的方法,其特征在于,在所述分布式系统中随机选取多个节点作为Source节点的步骤包括:在当前采用硬件感知方式的情况下,在所述分布式系统中按照本地性原则选取多个节点作为Source节点。
5.根据权利要求3或4所述的方法,其特征在于,在所述分布式系统中所述候选的None节点之外随机选取多个节点作为Source节点的步骤包括:在当前采用硬件感知方式的情况下,在所述分布式系统中所述候选的None节点之外按照本地性原则选取多个节点作为Source节点。
6.一种在分布式系统中选取节点的装置,所述分布式系统为PrestoDB集群,其特征在于,该装置包括:
配置模块,用于记录所述分布式系统中被指定的作为候选的None节点的一部分节点;
None节点选择模块,用于在需要将多个Source节点的数据片汇聚到一个节点的情况下,在所述候选的None节点中选择一个节点作为None节点。
7.根据权利要求6所述的装置,其特征在于,还包括Fixed节点选择模块,用于在需要将多个Source节点的数据片汇聚到多个Fixed节点的情况下,判断当前是否允许所述候选的None节点作为候选的Fixed节点,若是,则在所述分布式系统中随机选取多个节点作为Fixed节点,否则在所述分布式系统中所述候选的None节点之外随机选取多个节点作为Fixed节点。
8.根据权利要求6所述的装置,其特征在于,还包括Source节点选择模块,用于在需要将分片的数据保存到Source节点的情况下,判断当前是否允许所述候选的None节点作为候选的Source节点,若是,则在所述分布式系统中随机选取多个节点作为Source节点,否则在所述分布式系统中所述候选的None节点之外随机选取多个节点作为Source节点。
9.根据权利要求8所述的装置,其特征在于,所述Source节点选择模块还用于在当前采用硬件感知方式的情况下,在所述分布式系统中所述候选的None节点之外按照本地性原则选取多个节点作为Source节点。
10.根据权利要求8或9所述的装置,其特征在于,所述Source节点选择模块还用于在当前采用硬件感知方式的情况下,在所述分布式系统中所述候选的None节点之外按照本地性原则选取多个节点作为Source节点。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510016624.7A CN104580476B (zh) | 2015-01-13 | 2015-01-13 | 在分布式系统中选取节点的方法和装置 |
PCT/CN2016/070551 WO2016112831A1 (zh) | 2015-01-13 | 2016-01-11 | 在分布式系统中选取节点的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510016624.7A CN104580476B (zh) | 2015-01-13 | 2015-01-13 | 在分布式系统中选取节点的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104580476A true CN104580476A (zh) | 2015-04-29 |
CN104580476B CN104580476B (zh) | 2018-09-14 |
Family
ID=53095633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510016624.7A Active CN104580476B (zh) | 2015-01-13 | 2015-01-13 | 在分布式系统中选取节点的方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104580476B (zh) |
WO (1) | WO2016112831A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016112831A1 (zh) * | 2015-01-13 | 2016-07-21 | 北京京东尚科信息技术有限公司 | 在分布式系统中选取节点的方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101102225A (zh) * | 2007-07-26 | 2008-01-09 | 北京航空航天大学 | 无线传感器网络节点管理方法 |
US7710884B2 (en) * | 2006-09-01 | 2010-05-04 | International Business Machines Corporation | Methods and system for dynamic reallocation of data processing resources for efficient processing of sensor data in a distributed network |
CN101924777A (zh) * | 2009-06-17 | 2010-12-22 | 中国移动通信集团公司 | 在p2p流媒体系统中查找活动节点的方法、系统及设备 |
CN103188161A (zh) * | 2011-12-30 | 2013-07-03 | 中国移动通信集团公司 | 分布式数据加载调度方法与系统 |
CN104168332A (zh) * | 2014-09-01 | 2014-11-26 | 广东电网公司信息中心 | 高性能计算中负载均衡与节点状态监控方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100242042A1 (en) * | 2006-03-13 | 2010-09-23 | Nikhil Bansal | Method and apparatus for scheduling work in a stream-oriented computer system |
CN102572809A (zh) * | 2010-12-27 | 2012-07-11 | 中国移动通信集团公司 | 一种选择网关节点的方法、系统和设备 |
CN104580476B (zh) * | 2015-01-13 | 2018-09-14 | 北京京东尚科信息技术有限公司 | 在分布式系统中选取节点的方法和装置 |
-
2015
- 2015-01-13 CN CN201510016624.7A patent/CN104580476B/zh active Active
-
2016
- 2016-01-11 WO PCT/CN2016/070551 patent/WO2016112831A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7710884B2 (en) * | 2006-09-01 | 2010-05-04 | International Business Machines Corporation | Methods and system for dynamic reallocation of data processing resources for efficient processing of sensor data in a distributed network |
CN101102225A (zh) * | 2007-07-26 | 2008-01-09 | 北京航空航天大学 | 无线传感器网络节点管理方法 |
CN101924777A (zh) * | 2009-06-17 | 2010-12-22 | 中国移动通信集团公司 | 在p2p流媒体系统中查找活动节点的方法、系统及设备 |
CN103188161A (zh) * | 2011-12-30 | 2013-07-03 | 中国移动通信集团公司 | 分布式数据加载调度方法与系统 |
CN104168332A (zh) * | 2014-09-01 | 2014-11-26 | 广东电网公司信息中心 | 高性能计算中负载均衡与节点状态监控方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016112831A1 (zh) * | 2015-01-13 | 2016-07-21 | 北京京东尚科信息技术有限公司 | 在分布式系统中选取节点的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2016112831A1 (zh) | 2016-07-21 |
CN104580476B (zh) | 2018-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2791813B1 (en) | Load balancing in cluster storage systems | |
CN103106249B (zh) | 一种基于Cassandra的数据并行处理系统 | |
JP2020521263A (ja) | 畳み込み効率を向上させる方法、システム、及び装置 | |
US10749954B2 (en) | Cross-data center hierarchical consensus scheme with geo-aware leader election | |
US20170010968A1 (en) | System and method for data caching in processing nodes of a massively parallel processing (mpp) database system | |
US20160292608A1 (en) | Multi-cluster management method and device | |
WO2015110062A1 (zh) | 一种分布式数据存储方法、装置和系统 | |
US10599648B2 (en) | Optimized storage solution for real-time queries and data modeling | |
WO2014082052A4 (en) | Scaling computing clusters | |
CN105207947B (zh) | 一种过滤抖动的渐进式流量调度方法和系统 | |
CN105516284B (zh) | 一种集群数据库分布式存储的方法和装置 | |
US9501509B2 (en) | Throwaway spatial index structure for dynamic point data | |
CN108804383B (zh) | 基于度量空间的支撑点并行枚举方法及装置 | |
US20200084121A1 (en) | Node of a Network and a Method of Operating the Same for Resource Distribution | |
CN103823846A (zh) | 一种基于图论的大数据存储及查询方法 | |
CN105760553A (zh) | 数据管理方法和装置 | |
US20160054951A1 (en) | Apparatus and method for optimizing time series data storage | |
CN108052281A (zh) | 业务资料存储方法、应用服务器及计算机存储介质 | |
CN103440182A (zh) | 自适应分配方法及装置、自适应副本一致性方法 | |
US10474644B2 (en) | Systems and methods for optimizing selection of a replication data node in a distributed file system | |
CN104580476A (zh) | 在分布式系统中选取节点的方法和装置 | |
US9747339B2 (en) | Server-based management for querying eventually-consistent database | |
WO2015055502A2 (en) | Method of partitioning storage in a distributed data storage system and corresponding device | |
CN106933882B (zh) | 一种大数据增量计算方法和装置 | |
CN105512268A (zh) | 一种数据查询方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |