CN105824934A - 查找分布式etl中慢节点的方法和装置 - Google Patents
查找分布式etl中慢节点的方法和装置 Download PDFInfo
- Publication number
- CN105824934A CN105824934A CN201610157319.4A CN201610157319A CN105824934A CN 105824934 A CN105824934 A CN 105824934A CN 201610157319 A CN201610157319 A CN 201610157319A CN 105824934 A CN105824934 A CN 105824934A
- Authority
- CN
- China
- Prior art keywords
- node
- execution
- speed
- weighted value
- etl
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出一种查找分布式ETL中慢节点的方法和装置,该查找分布式ETL中慢节点的方法包括:获取设定数据量,其中,当存在分布式ETL中节点的历史执行信息时,根据所述历史执行信息和本次最先执行完毕的节点的执行信息,确定所述设定数据量,或者,如果不存在所述历史执行信息,根据本次最先执行完毕的节点的执行信息,确定所述设定数据量;获取待检测节点的当前已执行的数据量;在所述当前已执行的数据量小于所述设定数据量时,确定所述待检测节点是慢节点。该方法能够在分布式ETL中查找出其中的慢节点,以便后续处理慢节点。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种查找分布式ETL中慢节点的方法和装置。
背景技术
抽取转换加载(Extract-Transform-Load,ETL)是一种数据仓库技术,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。随着数据量的不断增加,传统的单机ETL工具已经不能满足需求,集群化的ETL工具不断形成。集群化极大的提升了数据转换的性能,但是由于分布式的业务部署和运行环境实时发生变化,单个节点的任务执行缓慢会造成整个ETL过程不能迅速结束,这个问题就是分布式架构中常遇到的慢节点问题。
为此,查找集群中的慢节点是整个分布式ETL解决方案中不可避免的一个问题。相关技术中,一种方案是忽略慢节点,另一种是对每个节点均匀分配资源。但是,这些技术都没有正面对待慢节点,没有完成对慢节点的查找和后续处理。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种查找分布式ETL中慢节点的方法,该方法可以在分布式ETL中查找出其中的慢节点,以便后续处理慢节点。
本发明的另一个目的在于提出一种查找分布式ETL中慢节点的装置。
为达到上述目的,本发明第一方面实施例提出的查找分布式ETL中慢节点的方法,包括:获取设定数据量,其中,当存在分布式ETL中节点的历史执行信息时,根据所述历史执行信息和本次最先执行完毕的节点的执行信息,确定所述设定数据量,或者,如果不存在所述历史执行信息,根据本次最先执行完毕的节点的执行信息,确定所述设定数据量;获取待检测节点的当前已执行的数据量;在所述当前已执行的数据量小于所述设定数据量时,确定所述待检测节点是慢节点。
本发明第一方面实施例提出的查找分布式ETL中慢节点的方法,通过获取设定数据量和待检测节点的当前已执行数据量,通过比较设定数据量和当前已执行数据量,可以在分布式ETL中查找出其中的慢节点,以便后续处理慢节点。
为达到上述目的,本发明第二方面实施例提出的查找分布式ETL中慢节点的装置,包括:第一获取模块,用于获取设定数据量,其中,当存在分布式ETL中节点的历史执行信息时,根据所述历史执行信息和本次最先执行完毕的节点的执行信息,确定所述设定数据量,或者,如果不存在所述历史执行信息,根据本次最先执行完毕的节点的执行信息,确定所述设定数据量;第二获取模块,用于获取待检测节点的当前已执行的数据量;确定模块,用于在所述当前已执行的数据量小于所述设定数据量时,确定所述待检测节点是慢节点。
本发明第二方面实施例提出的查找分布式ETL中慢节点的装置,通过获取设定数据量和待检测节点的当前已执行数据量,通过比较设定数据量和当前已执行数据量,可以在分布式ETL中查找出其中的慢节点,以便后续处理慢节点。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明一实施例提出的查找分布式ETL中慢节点的方法的流程示意图;
图2是本发明另一实施例提出的查找分布式ETL中慢节点的方法的流程示意图;
图3是图2对应的系统结构示意图;
图4是本发明另一实施例提出的查找分布式ETL中慢节点的装置的结构示意图;
图5是本发明另一实施例提出的查找分布式ETL中慢节点的装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的模块或具有相同或类似功能的模块。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
图1是本发明一实施例提出的查找分布式ETL中慢节点的方法的流程示意图。
参见图1,该方法包括:
S11:获取设定数据量,其中,当存在分布式ETL中节点的历史执行信息时,根据所述历史执行信息和本次最先执行完毕的节点的执行信息,确定所述设定数据量,或者,如果不存在所述历史执行信息,根据本次最先执行完毕的节点的执行信息,确定所述设定数据量。
ETL可以包括:一次完全ETL、增量ETL和实时ETL,一次完全ETL是指仅执行一次ETL过程;增量ETL是指需要执行多次ETL过程,并且每次ETL过程是非实时的,例如,每天执行一次ETL过程;实时ETL是指需要执行多次ETL过程,并且每次ETL过程是实时的,例如,源端实时产生数据时,实时执行ETL过程,将数据实时抽取、转换、加载到目的端。
因此,根据上述的描述可知,一次完全ETL、第一次增量ETL和第一次实时ETL不存在历史执行信息,而第二次增量ETL及其后续次数的增量ETL,以及第二次实时ETL及其后续次数的实时ETL存在历史执行信息。
其中,在存在历史执行信息时,可以根据历史执行信息获取历史平均速率,根据历史平均速率、本次最先执行完毕的节点的执行时间和执行数据量计算设定数据量。或者,在不存在历史执行信息时,可以根据本次最先执行完毕的节点的执行数据量计算设定数据量。具体内容可以参见后续实施例。
S12:获取待检测节点的当前已执行的数据量。
在本次ETL过程中,当监测到一个节点最先执行完毕时,可以检测其他节点是否是慢节点。此时,可以将其他的每个节点作为待检测节点,以检测其是否是慢节点。
在本地ETL过程开始时,可以监测每个节点的已执行的数据量,从而可以在检测时,获取待检测节点的当前已执行数据量。
S13:在所述当前已执行的数据量小于所述设定数据量时,确定所述待检测节点是慢节点。
例如,当前已执行的数据量是Nx,设定数据量是NT,如果Nx小于NT,则确定待检测节点是慢节点。
一些实施例中,在检测出慢节点后,该方法还可以包括:
将慢节点上执行的任务迁移到非慢节点上。
例如,经过检测,第一节点是慢节点,第二节点不是慢节点,则可以将第一节点上的任务迁移到第二节点上。进一步的,第二节点可以是迁移前空闲的节点,从而可以保证任务被更快的处理。
本实施例中,通过获取设定数据量和待检测节点的当前已执行数据量,通过比较设定数据量和当前已执行数据量,可以在分布式ETL中查找出其中的慢节点,以便后续处理慢节点。
图2是本发明另一实施例提出的查找分布式ETL中慢节点的方法的流程示意图。
参见图3,为本实施例对应的系统示意图,通过ETL系统将数据从Mysql加载到Oralce。ETL系统包括节点_1、节点_2、节点_3、…、节点_10等。
本实施例以增量ETL为例。例如,用户提交增量ETL任务,每天执行一次,每次的数据量大约有1亿条。ETL集群调度系统将任务分发到10个节点上,当前有超过10个空闲ETL节点部署在不同的虚拟机上,每个节点的资源都相同。
参见图2,本实施例的流程包括:
S201:第一次ETL开始后,各节点分别与源数据库和目的数据库建立连接,准备抽取和加载。
S202:在不存在历史执行信息时,获取本次最先执行完毕的节点的执行数据量,并将所述执行数据量与预设系数的乘积,确定为设定数据量。
S203:获取待检测节点的当前已执行的数据量,在所述当前已执行的数据量小于所述设定数据量时,确定所述待检测节点是慢节点。
例如,在第一次增量ETL过程中,没有历史执行信息,则可以获取第一次增量ETL过程中最先执行完毕的节点的执行数据量,并依据该执行数据量判断其余节点是否是慢节点。
假定ETL集群调度系统的数据分配较均匀,选取其中的节点_1、节点_2、节点_3、节点_10节点为例。
假定第一次增量ETL过程中,节点_1最先执行完毕,假设第一次增量ETL过程中,节点_1的执行数据量是N1,则在节点_1执行完毕时,可以统计节点_2、节点_3、节点_10的当前已执行的数据量,假设分别为C2、C3、C10。对于节点_2,如果C2<0.5*N1,则确定节点_2是慢节点,之后,ETL集群调度系统可以调掉节点_2并重新提交任务到一个新的节点。其中,0.5是设置值,可以调整。
S204:在存在历史执行信息时,获取历史执行信息,并根据所述历史执行信息获取历史平均速率。
其中,历史平均速率是指所有已完成的ETL过程对应的平均速率的平均值,例如,对于第二次增量ETL过程,已完成的ETL过程包括第一次增量ETL过程,则历史平均速率是指第一次增量ETL过程对应的平均速率。对于第三次增量ETL过程,已完成的ETL过程包括:第一次增量ETL过程和第二次增量ETL过程,则历史平均速率是指第一次增量ETL过程对应的平均速率与第二次增量ETL过程对应的平均速率的均值。
每个ETL过程对应的平均速率是指相应的ETL过程中每个节点的速率的平均值,例如,对于第一次增量ETL过程,执行任务的节点包括10个节点,则将这10个节点的速率的均值作为第一次增量ETL过程对应的平均速率。每个节点的速率是指每个ETL过程中,执行数据量与执行时间的比值。
在保存历史执行信息时,可以保存历史平均速率,从而可以从历史执行信息中直接获取历史平均速率。或者,也可以保存每个ETL过程对应的平均速率,从而可以从历史执行信息中获取每个ETL过程对应的平均速率,再进行均值运算,得到历史平均速率。或者,也可以保存每个ETL过程中每个节点的速率,从而可以从历史执行信息中获取每个ETL过程中每个节点的速率,再根据该速率计算每个ETL过程对应的平均速率,再根据每个ETL过程对应的平均速率计算历史平均速率。或者,也可以保存每个ETL过程中每个节点的执行数据量和执行时间,从而可以从历史执行信息中获取执行数据量和执行时间,再根据执行数据量和执行时间计算每个节点的速率,再根据每个ETL过程中每个节点的速率计算每个ETL过程对应的平均速度,再根据每个ETL过程对应的平均速率计算历史平均速率。
S205:获取本次最先执行完毕的节点的执行时间和执行数据量。
通过对ETL过程的监控,可以确定每次ETL过程中最先执行完毕的节点,另外,还可以获取最先执行完毕的节点的执行时间和执行数据量。
例如,在第二次增量ETL过程中,假设节点_1是最先执行完毕的节点,节点_1的执行时间和执行数据量可以分别用T1和N1表示。
S206:如果T1>w2*(N1/S0),则确定本次执行过程中所有节点都是慢节点,向用户发送提醒消息。
其中,T1和N1是本次最先执行完毕的节点的执行时间和执行数据量,S0是历史平均速率,w2是预设系数,例如为1.25。
例如,对应第二次增量ETL过程,T1和N1是第二次增量ETL过程中最先执行完毕的节点的执行时间和执行数据量,S0是第一次增量ETL过程中所有节点的速率的平均值。
S207:如果所述执行时间满足预设条件,则根据所述历史平均速率、所述执行时间和所述执行数据量,计算设定速率。
其中,在计算设定速率时是依据历史平均速率和当前的执行时间,没有仅依据历史平均速率是因为历史平均速率可能是不可靠的。
具体的,计算设定速率包括:
如果根据所述执行时间满足的条件确定所述历史平均速率和所述执行时间是可靠的,则设置第一加权值和第二加权值相同或近似相同,以使得所述历史平均速率和所述执行时间对设定速率的计算产生相同或近似相同的影响;或者,
如果根据所述执行时间满足的条件确定所述历史平均速率是不可靠的,则设置第一加权值小于第二加权值,以使得所述历史平均速率对设定速率的计算产生的影响小于所述执行时间对设定速率的计算产生的影响;
其中,所述第一加权值是与历史平均速率对应的加权值,所述第二加权值是与所述执行时间对应的加权值。
上述内容用计算公式表示如下:
如果w1*(N1/S0)<=T1<=w2*(N1/S0),则S1=N1/(a1*(N1/S0)+a2*T1);
如果T1<w1*(N1/S0),则S1=N1/(b1*(N1/S0)+b2*T1)
其中,T1是本次最先执行完毕的节点的执行时间,N1是本次最先执行完毕的节点的执行数据量,S0是历史平均速率,S1是设定速率,w1、w2、a1、a2、b1、b2分别是预设的系数。
其中,上述的w1*(N1/S0)<=T1<=w2*(N1/S0)表明历史平均速率和本次最先执行完毕的节点的执行时间都是可靠的,此时的第一加权值和第二加权值(a1和a2)是相同或近似相同。
上述的T1<w1*(N1/S0)表明历史平均速率不可靠,此时的第一加权值(b1)要小于第二加权值(b2)。例如,w1=0.75,w2=1.25,a1=a2=0.5,b1=0.1,b2=0.9。
S208:将所述设定速率、所述执行时间的预设系数的乘积,确定为设定数据量。
例如,设定数据量NT=S1*T1*0.75。
S209:在所述当前已执行的数据量小于所述设定数据量时,确定所述待检测节点是慢节点。
假定第二次增量ETL过程中,节点_1最先执行完毕,则在节点_1执行完毕时,可以统计节点_2、节点_3、节点_10的当前已执行的数据量,假设分别为C2、C3、C10。对于节点_2,如果C2<NT(S1*T1*0.75),则确定节点_2是慢节点,之后,ETL集群调度系统可以调掉节点_2并重新提交任务到一个新的节点。其中,0.75是设置值,可以调整。
之后,在后续的ETL过程中可以参照上述的S204-S209执行,确定出相应ETL过程中的慢节点。
本实施例中,通过获取设定数据量和待检测节点的当前已执行数据量,通过比较设定数据量和当前已执行数据量,可以在分布式ETL中查找出其中的慢节点。进一步的,通过将任务从慢节点上迁移,可以避免慢节点对整体任务的影响,提高分布式ETL的性能和可用性。进一步的,通过计算历史平均速率,并根据当前情况确定设定速率,可以提高设定数据量的准确性,从而提高慢节点确定的准确性。
图4是本发明另一实施例提出的查找分布式ETL中慢节点的装置的结构示意图。参见图4,该装置40包括:第一获取模块41、第二获取模块42和确定模块43。
第一获取模块41,用于获取设定数据量,其中,当存在分布式ETL中节点的历史执行信息时,根据所述历史执行信息和本次最先执行完毕的节点的执行信息,确定所述设定数据量,或者,如果不存在所述历史执行信息,根据本次最先执行完毕的节点的执行信息,确定所述设定数据量。
ETL可以包括:一次完全ETL、增量ETL和实时ETL,一次完全ETL是指仅执行一次ETL过程;增量ETL是指需要执行多次ETL过程,并且每次ETL过程是非实时的,例如,每天执行一次ETL过程;实时ETL是指需要执行多次ETL过程,并且每次ETL过程是实时的,例如,源端实时产生数据时,实时执行ETL过程,将数据实时抽取、转换、加载到目的端。
因此,根据上述的描述可知,一次完全ETL、第一次增量ETL和第一次实时ETL不存在历史执行信息,而第二次增量ETL及其后续次数的增量ETL,以及第二次实时ETL及其后续次数的实时ETL存在历史执行信息。
其中,在存在历史执行信息时,可以根据历史执行信息获取历史平均速率,根据历史平均速率、本次最先执行完毕的节点的执行时间和执行数据量计算设定数据量。或者,在不存在历史执行信息时,可以根据本次最先执行完毕的节点的执行数据量计算设定数据量。
第二获取模块42,用于获取待检测节点的当前已执行的数据量。
在本次ETL过程中,当监测到一个节点最先执行完毕时,可以检测其他节点是否是慢节点。此时,可以将其他的每个节点作为待检测节点,以检测其是否是慢节点。
在本地ETL过程开始时,可以监测每个节点的已执行的数据量,从而可以在检测时,获取待检测节点的当前已执行数据量。
确定模块43,用于在所述当前已执行的数据量小于所述设定数据量时,确定所述待检测节点是慢节点。
例如,当前已执行的数据量是Nx,设定数据量是NT,如果Nx小于NT,则确定待检测节点是慢节点。
一些实施例中,参见图5,当存在所述历史执行信息时,所述装置还包括:
第一计算模块44,用于获取历史执行信息,并根据所述历史执行信息获取历史平均速率;获取本次最先执行完毕的节点的执行时间和执行数据量;如果所述执行时间满足预设条件,则根据所述历史平均速率、所述执行时间和所述执行数据量,计算设定速率;将所述设定速率、所述执行时间的预设系数的乘积,确定为设定数据量。
一些实施例中,第一计算模块用于根据所述历史平均速率、所述执行时间和所述执行数据量,计算设定速率,包括:
如果根据所述执行时间满足的条件确定所述历史平均速率和所述执行时间是可靠的,则设置第一加权值和第二加权值相同或近似相同,以使得所述历史平均速率和所述执行时间对设定速率的计算产生相同或近似相同的影响;或者,
如果根据所述执行时间满足的条件确定所述历史平均速率是不可靠的,则设置第一加权值小于第二加权值,以使得所述历史平均速率对设定速率的计算产生的影响小于所述执行时间对设定速率的计算产生的影响;
其中,所述第一加权值是与历史平均速率对应的加权值,所述第二加权值是与所述执行时间对应的加权值。
相应的,计算公式包括:
如果w1*(N1/S0)<=T1<=w2*(N1/S0),则S1=N1/(a1*(N1/S0)+a2*T1);
如果T1<w1*(N1/S0),则S1=N1/(b1*(N1/S0)+b2*T1)
其中,T1是本次最先执行完毕的节点的执行时间,N1是本次最先执行完毕的节点的执行数据量,S0是历史平均速率,S1是设定速率,w1、w2、a1、a2、b1、b2分别是预设的系数。
一些实施例中,参见图5,该装置还包括:
提醒模块45,用于在T1>w2*(N1/S0)时,确定本次执行过程中所有节点都是慢节点,向用户发送提醒消息。
可选的,w1=0.75,w2=1.25,a1=a2=0.5,b1=0.1,b2=0.9。
一些实施例中,参见图5,当不存在所述历史执行信息时,所述装置还包括:
第二计算模块46,用于获取本次最先执行完毕的节点的执行数据量;以及,将所述执行数据量与预设系数的乘积,确定为所述设定数据量。
一些实施例中,参见图5,该装置还包括:
迁移模块47,用于将慢节点上执行的任务迁移到非慢节点上。
由于该装置与方法对应,该装置中各模块的具体功能可以参见方法实施例中的相关描述,在此不再详细说明。
本实施例中,通过获取设定数据量和待检测节点的当前已执行数据量,通过比较设定数据量和当前已执行数据量,可以在分布式ETL中查找出其中的慢节点,以便后续处理慢节点。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (12)
1.一种查找分布式ETL中慢节点的方法,其特征在于,包括:
获取设定数据量,其中,当存在分布式ETL中节点的历史执行信息时,根据所述历史执行信息和本次最先执行完毕的节点的执行信息,确定所述设定数据量,或者,如果不存在所述历史执行信息,根据本次最先执行完毕的节点的执行信息,确定所述设定数据量;
获取待检测节点的当前已执行的数据量;
在所述当前已执行的数据量小于所述设定数据量时,确定所述待检测节点是慢节点。
2.根据权利要求1所述的方法,其特征在于,当存在所述历史执行信息时,所述方法还包括:
获取历史执行信息,并根据所述历史执行信息获取历史平均速率;
获取本次最先执行完毕的节点的执行时间和执行数据量;
如果所述执行时间满足预设条件,则根据所述历史平均速率、所述执行时间和所述执行数据量,计算设定速率;
将所述设定速率、所述执行时间的预设系数的乘积,确定为设定数据量。
3.根据权利要求2所述的方法,其特征在于,所述如果所述执行时间满足预设条件,则根据所述历史平均速率、所述执行时间和所述执行数据量,计算设定速率,包括:
如果根据所述执行时间满足的条件确定所述历史平均速率和所述执行时间是可靠的,则设置第一加权值和第二加权值相同或近似相同,以使得所述历史平均速率和所述执行时间对设定速率的计算产生相同或近似相同的影响;或者,
如果根据所述执行时间满足的条件确定所述历史平均速率是不可靠的,则设置第一加权值小于第二加权值,以使得所述历史平均速率对设定速率的计算产生的影响小于所述执行时间对设定速率的计算产生的影响;
其中,所述第一加权值是与历史平均速率对应的加权值,所述第二加权值是与所述执行时间对应的加权值。
4.根据权利要求3所述的方法,其特征在于,所述设定速率的计算公式包括:
如果w1*(N1/S0)<=T1<=w2*(N1/S0),则S1=N1/(a1*(N1/S0)+a2*T1);
如果T1<w1*(N1/S0),则S1=N1/(b1*(N1/S0)+b2*T1)
其中,T1是本次最先执行完毕的节点的执行时间,N1是本次最先执行完毕的节点的执行数据量,S0是历史平均速率,S1是设定速率,w1、w2、a1、a2、b1、b2分别是预设的系数,且,a1和a2以及b1和b2分别是不同条件下的第一加权值和第二加权值。
5.根据权利要求4所述的方法,其特征在于,还包括:
如果T1>w2*(N1/S0),则确定本次执行过程中所有节点都是慢节点,向用户发送提醒消息。
6.根据权利要求1所述的方法,其特征在于,当不存在所述历史执行信息时,所述方法还包括:
获取本次最先执行完毕的节点的执行数据量;
将所述执行数据量与预设系数的乘积,确定为所述设定数据量。
7.一种查找分布式ETL中慢节点的装置,其特征在于,包括:
第一获取模块,用于获取设定数据量,其中,当存在分布式ETL中节点的历史执行信息时,根据所述历史执行信息和本次最先执行完毕的节点的执行信息,确定所述设定数据量,或者,如果不存在所述历史执行信息,根据本次最先执行完毕的节点的执行信息,确定所述设定数据量;
第二获取模块,用于获取待检测节点的当前已执行的数据量;
确定模块,用于在所述当前已执行的数据量小于所述设定数据量时,确定所述待检测节点是慢节点。
8.根据权利要求7所述的装置,其特征在于,当存在所述历史执行信息时,所述装置还包括:
第一计算模块,用于获取历史执行信息,并根据所述历史执行信息获取历史平均速率;获取本次最先执行完毕的节点的执行时间和执行数据量;如果所述执行时间满足预设条件,则根据所述历史平均速率、所述执行时间和所述执行数据量,计算设定速率;将所述设定速率、所述执行时间的预设系数的乘积,确定为设定数据量。
9.根据权利要求8所述的装置,其特征在于,所述第一计算模块用于根据所述历史平均速率、所述执行时间和所述执行数据量,计算设定速率,包括:
如果根据所述执行时间满足的条件确定所述历史平均速率和所述执行时间是可靠的,则设置第一加权值和第二加权值相同或近似相同,以使得所述历史平均速率和所述执行时间对设定速率的计算产生相同或近似相同的影响;或者,
如果根据所述执行时间满足的条件确定所述历史平均速率是不可靠的,则设置第一加权值小于第二加权值,以使得所述历史平均速率对设定速率的计算产生的影响小于所述执行时间对设定速率的计算产生的影响;
其中,所述第一加权值是与历史平均速率对应的加权值,所述第二加权值是与所述执行时间对应的加权值。
10.根据权利要求9所述的装置,其特征在于,所述第一计算模块用于计算设定速率的计算公式包括:
如果w1*(N1/S0)<=T1<=w2*(N1/S0),则S1=N1/(a1*(N1/S0)+a2*T1);
如果T1<w1*(N1/S0),则S1=N1/(b1*(N1/S0)+b2*T1)
其中,T1是本次最先执行完毕的节点的执行时间,N1是本次最先执行完毕的节点的执行数据量,S0是历史平均速率,S1是设定速率,w1、w2、a1、a2、b1、b2分别是预设的系数,且,a1和a2以及b1和b2分别是不同条件下的第一加权值和第二加权值。
11.根据权利要求10所述的装置,其特征在于,还包括:
提醒模块,用于在T1>w2*(N1/S0)时,确定本次执行过程中所有节点都是慢节点,向用户发送提醒消息。
12.根据权利要求7所述的装置,其特征在于,当不存在所述历史执行信息时,所述装置还包括:
第二计算模块,用于获取本次最先执行完毕的节点的执行数据量;以及,将所述执行数据量与预设系数的乘积,确定为所述设定数据量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610157319.4A CN105824934B (zh) | 2016-03-18 | 2016-03-18 | 查找分布式etl中慢节点的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610157319.4A CN105824934B (zh) | 2016-03-18 | 2016-03-18 | 查找分布式etl中慢节点的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105824934A true CN105824934A (zh) | 2016-08-03 |
CN105824934B CN105824934B (zh) | 2019-06-11 |
Family
ID=56523574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610157319.4A Active CN105824934B (zh) | 2016-03-18 | 2016-03-18 | 查找分布式etl中慢节点的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105824934B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878388A (zh) * | 2017-01-04 | 2017-06-20 | 北京百度网讯科技有限公司 | 对分布式存储系统中慢节点的检测 |
CN110795314A (zh) * | 2019-11-04 | 2020-02-14 | 北京小米移动软件有限公司 | 一种检测慢节点的方法、装置及计算机可读存储介质 |
CN112347173A (zh) * | 2020-11-09 | 2021-02-09 | 杭州数梦工场科技有限公司 | 数据交换控制方法及装置 |
WO2023115975A1 (zh) * | 2021-12-23 | 2023-06-29 | 北京百度网讯科技有限公司 | 慢节点检测方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040019474A1 (en) * | 2002-07-29 | 2004-01-29 | Ghun Kim | Method and apparatus to facilitate detecting a slow node in a circuit layout |
CN102572908A (zh) * | 2012-02-20 | 2012-07-11 | 南京邮电大学 | 一种分布式无线传感网络节点故障检测方法 |
CN104199739A (zh) * | 2014-08-26 | 2014-12-10 | 浪潮(北京)电子信息产业有限公司 | 一种基于负载均衡的推测式Hadoop调度方法 |
CN104331520A (zh) * | 2014-11-28 | 2015-02-04 | 北京奇艺世纪科技有限公司 | Hadoop集群性能优化方法及装置和节点状态识别方法及装置 |
US8972702B2 (en) * | 2009-11-30 | 2015-03-03 | Intenational Business Machines Corporation | Systems and methods for power management in a high performance computing (HPC) cluster |
-
2016
- 2016-03-18 CN CN201610157319.4A patent/CN105824934B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040019474A1 (en) * | 2002-07-29 | 2004-01-29 | Ghun Kim | Method and apparatus to facilitate detecting a slow node in a circuit layout |
US8972702B2 (en) * | 2009-11-30 | 2015-03-03 | Intenational Business Machines Corporation | Systems and methods for power management in a high performance computing (HPC) cluster |
CN102572908A (zh) * | 2012-02-20 | 2012-07-11 | 南京邮电大学 | 一种分布式无线传感网络节点故障检测方法 |
CN104199739A (zh) * | 2014-08-26 | 2014-12-10 | 浪潮(北京)电子信息产业有限公司 | 一种基于负载均衡的推测式Hadoop调度方法 |
CN104331520A (zh) * | 2014-11-28 | 2015-02-04 | 北京奇艺世纪科技有限公司 | Hadoop集群性能优化方法及装置和节点状态识别方法及装置 |
Non-Patent Citations (1)
Title |
---|
侯佳林 等: "基于异常检测模型的异构环境下MapReduce 性能优化", 《计算机应用》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878388A (zh) * | 2017-01-04 | 2017-06-20 | 北京百度网讯科技有限公司 | 对分布式存储系统中慢节点的检测 |
CN106878388B (zh) * | 2017-01-04 | 2019-12-03 | 北京百度网讯科技有限公司 | 对分布式存储系统中慢节点的检测 |
CN110795314A (zh) * | 2019-11-04 | 2020-02-14 | 北京小米移动软件有限公司 | 一种检测慢节点的方法、装置及计算机可读存储介质 |
CN110795314B (zh) * | 2019-11-04 | 2023-10-03 | 北京小米移动软件有限公司 | 一种检测慢节点的方法、装置及计算机可读存储介质 |
US11797218B2 (en) | 2019-11-04 | 2023-10-24 | Beijing Xiaomi Mobile Software Co., Ltd. | Method and device for detecting slow node and computer-readable storage medium |
CN112347173A (zh) * | 2020-11-09 | 2021-02-09 | 杭州数梦工场科技有限公司 | 数据交换控制方法及装置 |
WO2023115975A1 (zh) * | 2021-12-23 | 2023-06-29 | 北京百度网讯科技有限公司 | 慢节点检测方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105824934B (zh) | 2019-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105824934A (zh) | 查找分布式etl中慢节点的方法和装置 | |
US9665612B2 (en) | Run-time decision of bulk insert for massive data loading | |
US11037301B2 (en) | Target object detection method, readable storage medium, and electronic device | |
US20220188214A1 (en) | Dynamic distributed tracing instrumentation in a microservice architecture | |
CN114219306B (zh) | 用于建立焊接质量检测模型的方法、设备、介质 | |
CN104267980A (zh) | 一种软件评分显示方法、终端、数据服务器及系统 | |
CN107193498B (zh) | 一种对数据进行去重复处理的方法及装置 | |
JP2007155715A (ja) | 計測処理中にメタデータの検証を実施する為のシステム及び方法 | |
JP2013114626A (ja) | 配置装置、配置プログラムおよび配置方法 | |
WO2022095847A1 (zh) | 系统升级方法、装置、设备和存储介质 | |
CN113778644B (zh) | 任务的处理方法、装置、设备及存储介质 | |
US10262081B2 (en) | Method and apparatus for improved database searching | |
CN111858934A (zh) | 文章热度的预测方法和装置 | |
JP2011232099A (ja) | レーダ処理装置 | |
CN109413663B (zh) | 一种信息处理方法和设备 | |
CN103136043A (zh) | 一种异步io的迁移方法、系统和网络节点 | |
CN115019150B (zh) | 目标检测定点模型建立方法、装置及可读存储介质 | |
CN116433050A (zh) | 应用于农业大数据管理系统的异常报警方法及系统 | |
US20150347409A1 (en) | Convert Command Into a BULK Load Operation | |
CN111106954B (zh) | 一种基于地图的拓扑节点显示方法和装置 | |
US8560650B2 (en) | Network device and method for setting parameters of the network device | |
US11568056B2 (en) | Methods and apparatuses for vulnerability detection and maintenance prediction in industrial control systems using hash data analytics | |
CN110209509B (zh) | 多核处理器间的数据同步方法及装置 | |
CN104239199A (zh) | 虚拟机器人的生成方法、自动化测试方法及相关装置 | |
CN109062642B (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 |