WO2015196911A1 - 数据挖掘方法和节点 - Google Patents

数据挖掘方法和节点 Download PDF

Info

Publication number
WO2015196911A1
WO2015196911A1 PCT/CN2015/080677 CN2015080677W WO2015196911A1 WO 2015196911 A1 WO2015196911 A1 WO 2015196911A1 CN 2015080677 W CN2015080677 W CN 2015080677W WO 2015196911 A1 WO2015196911 A1 WO 2015196911A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
task
execution time
computing
data
Prior art date
Application number
PCT/CN2015/080677
Other languages
English (en)
French (fr)
Inventor
李辰
汪芳山
Original Assignee
华为技术有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP15811909.9A priority Critical patent/EP3139270A4/en
Publication of WO2015196911A1 publication Critical patent/WO2015196911A1/zh
Priority to US15/391,350 priority patent/US10102038B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2465Query processing support for facilitating data mining operations in structured databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2216/00Indexing scheme relating to additional aspects of information retrieval not explicitly covered by G06F16/00 and subgroups
    • G06F2216/03Data mining

Definitions

  • Embodiments of the present invention relate to communication technologies, and in particular, to a data mining method and a node.
  • Big data or massive data, refers to the amount of data involved that is so large that it cannot be captured, managed, processed, and collated in a reasonable amount of time through conventional software tools.
  • Big Data has attracted more and more attention, and how to obtain useful information and knowledge from big data has become the focus of the industry.
  • Data Mining is a technology that searches for information hidden in it from a large amount of data. Data mining usually uses statistics, online analytical processing, information retrieval, machine learning, and expert systems (depending on past rules of thumb). And many methods such as pattern recognition to achieve the above goals.
  • Common modeling methods include iterative machine learning algorithms, such as linear regression, logistic regression, neural networks and decision trees, by repeatedly performing a learning process on the data. Update specific parameters of the data mining task. Each time an iterative calculation is completed, the effect of the generated temporary model is evaluated, and the iterative process is ended when certain conditions are met; otherwise, the iterative process is repeated.
  • the mining task of big data is to execute the above iterative algorithm in the distributed cluster computing environment.
  • Each round of iterative computing tasks is assigned to each computing child node.
  • the computing child nodes complete their respective computing tasks, all the child nodes are temporarily
  • the results are summarized, and the effect of the obtained merged model is evaluated.
  • the iterative process is ended; otherwise, the new computing task is reassigned to each computing child node, and the iterative process is repeated.
  • Task volume For example, in the process of performing an iterative task, when it is found that some of the calculated sub-node iteration tasks have been completed, and some are not completed, the node that has completed the task is considered to be an idle node, and the node that has not completed the task is an overload node. A part of the task data of the overload node is transferred to the idle node.
  • the embodiment of the invention provides a data mining method and a node, which can reduce network overhead and improve data mining performance of the system.
  • an embodiment of the present invention provides a central node, which is applied to a data mining system, where the central node includes:
  • a time obtaining unit configured to acquire an estimated execution time of each computing child node in the Nth round iterative task
  • An allocating unit configured to re-allocate task data for each computing sub-node according to an estimated execution time of each computing sub-node; wherein the task data is part or all of the acquired sample data set to be mined;
  • An information acquiring unit configured to: after each computing sub-node completes the Nth iteration task according to the allocated task data, if the iterative task is not completed, acquire execution of each computing sub-node in the Nth round iterative task Situation information
  • the first determining unit is configured to determine, according to the execution status information of each computing child node, whether the N+1th iteration task needs to be load balanced. If load balancing is required, the value of N is incremented by one, and the obtaining is repeated.
  • the estimated execution time of each computing child node is determined to determine whether the N+1th iteration task needs to perform load balancing according to the execution information of each computing child node; Equalization, so that each computing child node performs the N+1th iteration task according to the task data allocated for the computing child node in the Nth iteration task, where N is a positive integer, and the starting value of N is 1 .
  • the time acquiring unit is specifically configured to:
  • the distribution characteristic parameter of the data set includes: an average value, a variance, a value range, and a number of different values of the values in the same field of each data in the data set;
  • the computing resource of each computing child node includes: at least one of a CPU frequency and a memory capacity of the computing child node.
  • the time acquiring unit is specifically configured to:
  • the actual execution time of each of the computing sub-nodes performing the N-1th iteration task is taken as the expected execution time of the computing sub-node in the Nth round of iterative tasks.
  • the allocating unit includes:
  • a node selection unit configured to determine that the estimated execution time is greater than the standard execution time calculation sub-node, as an overload node, and determine that the expected execution time is less than the standard execution time calculation sub-node, as an idle node;
  • a task quantity determining unit configured to acquire a task migration ratio of each overload node according to an estimated execution time of each overload node and a standard execution time, and acquire, according to a task migration ratio of each overload node, each overload node needs to be removed. Amount of task data;
  • a task value determining unit configured to acquire a proportion of the moveable task of each idle node according to an estimated execution time of each idle node and the standard execution time, and acquire each idle according to a proportion of the moveable task of each idle node The amount of task data that can be moved into the node;
  • the transfer unit is configured to sequentially remove the task data of each overload node according to the amount of task data corresponding to the overload node according to the expected execution time of the overload node, and to remove the task data according to the idle task node.
  • the expected execution time of the nodes is in ascending order, and the amount of task data that can be moved in each idle node is sequentially moved into at least one idle node until the task data that all overload nodes need to move out is migrated.
  • the removal task quantity determining unit is specifically configured to:
  • the moving in task amount determining unit is specifically configured to:
  • the performance information of each computing sub-node in the Nth round iterative task includes : calculating at least one of an actual execution time, a calculation resource usage rate, and a task data amount of each of the Nth iteration tasks;
  • the computing resource usage rate includes at least one of a CPU usage rate and a memory usage rate.
  • the first determining unit is specifically configured to:
  • the central node further includes: a second determining unit, specifically:
  • N is equal to a preset maximum number of iterations, and if N is less than the maximum number of iterations, determining that the iterative task is not ended; if N is equal to The maximum number of iterations determines that the iterative task ends;
  • an embodiment of the present invention provides another central node, which is applied to a data mining system, where the central node includes:
  • a time obtaining unit configured to acquire, according to the time learning model, an estimated execution time of each of the calculated child nodes in the Nth round of iterative tasks
  • a first determining unit configured to determine, according to an estimated execution time of each computing child node, whether the Nth iteration task needs to perform load balancing
  • An allocation unit configured to re-allocate task data for each computing sub-node according to an estimated execution time of each computing sub-node when load balancing is required; and not to redistribute each computing sub-node when load balancing is not required Task data; wherein the task data is part or all of the acquired sample data set to be mined;
  • An information acquiring unit configured to acquire, after each of the computing sub-nodes, the execution information of each of the computing sub-nodes in the N-th iteration task, after completing the N-th iteration task according to the allocated task data;
  • An update unit configured to update training parameters of the time learning model according to execution information of each computing child node, and if the iterative task is not completed, add 1 to the value of N and then use the updated time learning model to execute repeatedly And obtaining, according to the time learning model, the step of updating the expected execution time of each computing child node to the step of updating the time learning model according to the execution situation information of each computing child node in the Nth round iterative task.
  • the time learning model is established according to at least one of an actual execution time, a computing resource usage rate, and a historical task data volume.
  • the time learning model includes:
  • a is the execution time training parameter
  • b is the calculation resource usage training parameter
  • c is the historical task amount training parameter
  • C is the training constant
  • i is a positive integer
  • the computing resource usage rate includes the CPU effort and the memory usage rate.
  • At least one of the historical data task quantities of the computing child node i in the N-1th iteration task is the amount of task data allocated by the computing child node i in the N-1th iteration task.
  • the first determining unit is specifically configured to:
  • the allocating unit includes:
  • a node selection unit configured to determine that the estimated execution time is greater than the standard execution time calculation sub-node, as an overload node, and determine that the expected execution time is less than the standard execution time calculation sub-node, as an idle node;
  • a task quantity determining unit configured to acquire a task migration ratio of each overload node according to an estimated execution time of each overload node and a standard execution time, and acquire, according to a task migration ratio of each overload node, each overload node needs to be removed. Amount of task data;
  • a task value determining unit configured to acquire a proportion of the moveable task of each idle node according to an estimated execution time of each idle node and the standard execution time, and acquire each idle according to a proportion of the moveable task of each idle node The amount of task data that can be moved into the node;
  • the transfer unit is configured to sequentially remove the task data of each overload node according to the amount of task data corresponding to the overload node according to the expected execution time of the overload node, and to remove the task data according to the idle task node.
  • the expected execution time of the nodes is in ascending order, and the amount of task data that can be moved in each idle node is sequentially moved into at least one idle node until the task data that all overload nodes need to move out is migrated.
  • the removal task quantity determining unit is specifically configured to:
  • the moving in task amount determining unit is specifically configured to:
  • the performance information of each computing sub-node in the N-th round iterative task includes : calculating at least one of an actual execution time, a calculation resource usage rate, and a task data amount of each of the Nth iteration tasks;
  • the computing resource usage rate includes at least one of a CPU usage rate and a memory usage rate.
  • the updating unit is specifically configured to:
  • the central node further includes: a second determining unit, specifically:
  • N is equal to a preset maximum number of iterations, and if N is less than the maximum number of iterations, determining that the iterative task is not ended; if N is equal to The maximum number of iterations determines that the iterative task ends;
  • a data mining system comprising:
  • a data mining method comprising:
  • the estimated execution time of each computing sub-node in the acquiring the N-th iteration task includes:
  • the distribution characteristic parameter of the data set includes: an average value, a variance, a value range, and a number of different values of the values in the same field of each data in the data set;
  • the computing resource of each computing child node includes: at least one of a CPU frequency and a memory capacity of the computing child node.
  • the estimated execution time of each computing sub-node in the acquiring the N-th iteration task includes:
  • the actual execution time of each of the computing sub-nodes performing the N-1th iteration task is taken as the expected execution time of the computing sub-node in the Nth round of iterative tasks.
  • the calculating the execution time according to each computing sub-node is each computing sub-node Redistributing task data includes:
  • the task data of each overload node is sequentially removed according to the amount of task data corresponding to the overload node corresponding to the overload node, and the task data to be removed is calculated according to the expected execution time of the idle node.
  • the amount of task data that can be moved in each idle node is sequentially moved into at least one idle node until the task data that all overload nodes need to move out is migrated.
  • the obtaining, according to an estimated execution time of each overload node and a standard execution time, obtaining a task migration ratio of each overload node, and Obtaining the amount of task data that each overload node needs to remove according to the task migration ratio of each overload node includes:
  • the amount of data includes:
  • the performance information of each computing sub-node in the Nth round iterative task includes : calculating at least one of an actual execution time, a calculation resource usage rate, and a task data amount of each of the Nth iteration tasks;
  • the computing resource usage rate includes at least one of a CPU usage rate and a memory usage rate.
  • a fifth possible implementation manner of the fourth aspect, in the sixth possible implementation, the determining, according to the execution information of each computing sub-node, whether the N+1th iteration task needs to perform load balancing includes:
  • the method for determining whether the iterative task ends is:
  • N is equal to a preset maximum number of iterations, and if N is less than the maximum number of iterations, determining that the iterative task is not ended; if N is equal to The maximum number of iterations determines that the iterative task ends;
  • a data mining method comprising:
  • task data is re-allocated for each computing sub-node according to the estimated execution time of each computing sub-node; if load balancing is not required, task data is not re-allocated for each computing sub-node;
  • the task data is part or all of the acquired sample data set to be mined;
  • the model acquires, in the Nth iteration task, the step of calculating the expected execution time of each computing child node to the step of updating the time learning model according to the execution situation information of each computing child node; wherein N is a positive integer, starting from N The starting value is 1.
  • the time learning model is established according to at least one of an actual execution time, a computing resource usage rate, and a historical task data volume.
  • the time learning model includes:
  • a is the execution time training parameter
  • b is the calculation resource usage training parameter
  • c is the historical task amount training parameter
  • C is the training constant
  • i is a positive integer
  • the computing resource usage rate includes the CPU effort and the memory usage rate.
  • At least one of the historical data task quantities of the computing child node i in the N-1th iteration task is the amount of task data allocated by the computing child node i in the N-1th iteration task.
  • the determining the Nth round according to an estimated execution time of each computing subnode Whether the iterative task needs to be load balanced includes:
  • the calculating the execution time according to each computing sub-node is each computing sub-node Redistributing task data includes:
  • the task data of each overload node is sequentially removed according to the amount of task data corresponding to the overload node corresponding to the overload node, and the task data to be removed is calculated according to the expected execution time of the idle node.
  • the amount of task data that can be moved in each idle node is sequentially moved into at least one idle node until the task data that all overload nodes need to move out is migrated.
  • the acquiring, according to an estimated execution time of each overload node and a standard execution time, acquiring a task migration ratio of each overload node, and Obtaining the amount of task data that each overload node needs to remove according to the task migration ratio of each overload node includes:
  • the amount of data includes:
  • the execution status of each computing sub-node in the Nth round iterative task includes: at least one of an actual execution time, a computing resource usage rate, and a task data amount of each computing child node in the Nth round iterative task;
  • the computing resource usage rate includes at least one of a CPU usage rate and a memory usage rate.
  • the updating the training parameters of the time learning model according to the execution information of each computing sub-node includes:
  • the determining method of whether the iterative task ends is:
  • N is equal to a preset maximum number of iterations, and if N is less than the maximum number of iterations, determining that the iterative task is not ended; if N is equal to The maximum number of iterations determines that the iterative task ends;
  • An embodiment of the present invention provides a data mining method and a node, by acquiring an estimated execution time of each computing child node in the current iterative task, and assigning a corresponding task data amount to the computing child node according to the expected execution time, in this iteration
  • After the task is executed collect the execution information of each computing sub-node in the current iterative task, and determine whether the next iteration task needs to adjust the task data amount of each computing sub-node, and according to the adjusted
  • the task data amount is performed for the next iteration task; or, according to the time learning model, the estimated execution time of each calculation sub-node in the current iteration task is obtained, and it is judged according to the estimated execution time whether the current iteration task is to be load balanced, if To perform load balancing, the amount of task data allocated by each computing sub-node is adjusted.
  • the embodiment of the present invention can allocate a corresponding task data amount according to the capability of each computing child node, and can perform the present according to the execution performance of the previous round.
  • the amount of task data of each computing sub-node in the round task is adjusted, thereby avoiding some unnecessary load balancing processes, reducing network overhead, and improving system data mining performance.
  • FIG. 1 is a schematic structural diagram of a central node according to an embodiment of the present disclosure
  • FIG. 2 is a schematic structural diagram of an allocation unit of a central node according to an embodiment of the present invention
  • FIG. 3 is another schematic structural diagram of a central node according to an embodiment of the present invention.
  • FIG. 4 is a schematic structural diagram of another central node according to an embodiment of the present disclosure.
  • FIG. 5 is a schematic structural diagram of another allocation unit of a central node according to an embodiment of the present disclosure.
  • FIG. 6 is another schematic structural diagram of another central node according to an embodiment of the present disclosure.
  • FIG. 7 is a schematic structural diagram of still another central node according to an embodiment of the present disclosure.
  • FIG. 8 is a schematic structural diagram of still another central node according to an embodiment of the present disclosure.
  • FIG. 9 is a schematic structural diagram of a data mining system according to an embodiment of the present invention.
  • FIG. 10 is a schematic flowchart diagram of a data mining method according to an embodiment of the present disclosure.
  • FIG. 11 is a schematic flowchart diagram of another data mining method according to an embodiment of the present disclosure.
  • FIG. 12 is a schematic flowchart diagram of still another data mining method according to an embodiment of the present disclosure.
  • FIG. 13 is a schematic flowchart of an execution process of an iterative task according to an embodiment of the present disclosure
  • FIG. 14 is a schematic flowchart diagram of still another data mining method according to an embodiment of the present invention.
  • the embodiment of the present invention provides a central node 1 that can be applied to a data mining system.
  • the central node 1 includes:
  • the time obtaining unit 11 is configured to acquire an estimated execution time of each computing child node in the Nth round iterative task
  • the allocating unit 12 is configured to re-allocate task data for each computing sub-node according to an estimated execution time of each computing sub-node; wherein the task data is part or all of the acquired sample data set to be mined;
  • the information obtaining unit 13 is configured to: after each of the computing sub-nodes completes the Nth iterative task according to the allocated task data, if the iterative task is not completed, acquire execution information of each computing sub-node in the Nth round of iterative tasks;
  • the first determining unit 14 is configured to determine, according to the execution status information of each computing sub-node, whether the N+1th iteration task needs to perform load balancing. If load balancing is required, the value of N is added to 1 and the obtaining is repeated. In the N round iteration task, the estimated execution time of each computing subnode is determined to determine whether the N+1th iteration task needs to perform load balancing according to the execution information of each computing subnode; if load balancing is not required, Each computing child node performs an N+1th iteration task according to the task data allocated for the computing child node in the Nth iteration task, where N is a positive integer and the starting value of N is 1.
  • the time acquiring unit 11 may be specifically configured to:
  • the distribution characteristic parameter of the data set includes: an average value, a variance, a value range, and a number of different values of the values in the same field of each data in the data set;
  • the computing resource of each computing child node includes: at least one of a CPU frequency and a memory capacity of the computing child node.
  • the time acquiring unit 11 may be specifically configured to:
  • the actual execution time of the N-1th iteration task is performed by each computing child node as the expected execution time of the computing child node in the Nth round iterative task.
  • the allocating unit 12 may include:
  • the node selection unit 121 is configured to determine that the estimated execution time is greater than the standard execution time calculation sub-node, as the overload node, and determine that the estimated execution time is less than the standard execution time calculation sub-node as the idle node;
  • the task quantity determining unit 122 is configured to acquire a task migration ratio of each overload node according to an estimated execution time of each overload node and a standard execution time, and obtain each overload node to be removed according to a task migration ratio of each overload node. Amount of task data;
  • the move-in task quantity determining unit 123 is configured to acquire a moveable task ratio of each idle node according to an estimated execution time of each idle node and a standard execution time, and acquire each idle node according to the ratio of the moveable tasks of each idle node.
  • the transferring unit 124 is configured to sequentially remove the task data of each overload node according to the required task data corresponding to the overload node according to the expected execution time of the overload node from the largest to the smallest, and remove the removed task data according to the task data.
  • the expected execution time of the idle nodes is in the order of small to large, and is sequentially moved into at least one idle node according to the amount of the task data that can be moved in each idle node until the migration of the task data that needs to be removed by all the overload nodes is completed.
  • the removed task quantity determining unit 122 may be specifically configured to:
  • the move-in task amount determining unit 123 can be specifically configured to:
  • the execution information of each computing sub-node in the Nth round iterative task includes: at least one of actual execution time, computing resource usage, and task data amount of each computing sub-node in the N-th iteration task Species
  • the computing resource usage rate includes at least one of a CPU usage rate and a memory usage rate.
  • the first determining unit 124 may be specifically configured to:
  • the time difference rate is compared with the preset difference rate threshold. If the time difference rate is less than or equal to the preset difference rate threshold, it is determined that the N+1th iteration task does not need load balancing; if the time difference rate is greater than the preset difference rate Threshold, it is determined that the N+1th iteration task needs to be load balanced.
  • the central node 1 may further include: a second determining unit 125, which may be specifically configured to:
  • N is equal to the preset maximum number of iterations. If N is less than the maximum number of iterations, it is determined that the iterative task is not ended; if N is equal to the maximum number of iterations, the iterative task is determined. End;
  • each calculation sub-node After each calculation sub-node completes the N-th iteration task, it is determined whether the output result of the N-th iteration satisfies the convergence condition; if the convergence condition is not satisfied, it is determined that the iteration task is not completed, and if the convergence condition is satisfied, it is determined that the iteration task ends. .
  • the embodiment of the present invention provides a central node, which obtains an estimated execution time of each calculated child node in the current iterative task, and allocates a corresponding task data amount to the calculated child node according to the expected execution time, after the current iteration task is executed. Collecting the execution status information of each computing sub-node in the current iterative task, and determining whether the next round of iterative tasks should adjust the task data amount of each computing sub-node.
  • the embodiment of the present invention can allocate a corresponding task data amount according to the capability of each computing child node, and can perform the previous round according to the execution situation. In this round of tasks, the amount of task data of each computing child node is adjusted, thereby avoiding some unnecessary load balancing processes, reducing network overhead, and improving system data mining performance.
  • the embodiment of the present invention provides another central node 2, which can be applied to a data mining system.
  • the central node 2 includes:
  • the time obtaining unit 21 is configured to acquire, according to the time learning model, an estimated execution time of each of the calculated child nodes in the Nth round of iterative tasks;
  • the first determining unit 22 is configured to determine, according to the estimated execution time of each computing child node, whether the Nth iteration task needs to perform load balancing;
  • the allocating unit 23 is configured to re-allocate task data for each computing sub-node according to an estimated execution time of each computing sub-node when load balancing is required; when not performing load balancing, not for each computing sub-node Allocating task data; wherein the task data is part or all of the acquired sample data set to be mined;
  • the information obtaining unit 24 is configured to acquire execution information of each computing sub-node in the Nth iteration task after each computing sub-node completes the N-th iteration task according to the allocated task data;
  • the updating unit 25 is configured to update the training parameter of the time learning model according to the execution situation information of each computing child node. If the iterative task is not completed, the value of N is incremented by 1 and the time learning is repeated by using the updated time learning model.
  • the model acquires the estimated execution time of each of the calculated child nodes in the Nth iteration task to the step of updating the time learning model according to the execution information of each of the calculated child nodes.
  • the time learning model may be established according to at least one of actual execution time, computing resource usage, and historical task data volume.
  • the time learning model can include:
  • At least one of calculating the historical task data amount of the child node i in the N-1th iteration task is calculating the amount of task data allocated by the child node i in the N-1th iteration task.
  • the first determining unit 22 may be specifically configured to:
  • the allocating unit 23 may include:
  • the node selection unit 231 is configured to determine that the estimated execution time is greater than the standard execution time calculation sub-node, as the overload node, and determine that the estimated execution time is less than the standard execution time calculation sub-node as the idle node;
  • the removal task quantity determining unit 232 is configured to acquire a task migration ratio of each overload node according to an estimated execution time of each overload node and a standard execution time, and acquire each overload node to be removed according to a task migration ratio of each overload node. Amount of task data;
  • the move-in task quantity determining unit 233 is configured to acquire a move-in task ratio of each idle node according to an estimated execution time of each idle node and a standard execution time, and acquire each idle node according to the ratio of the moveable tasks of each idle node.
  • the transferring unit 234 is configured to sequentially remove the task data of each overload node according to the required task data corresponding to the overload node according to the expected execution time of the overload node in descending order, and remove the removed task data according to the task data.
  • the expected execution time of the idle nodes is in the order of small to large, and is sequentially moved into at least one idle node according to the amount of the task data that can be moved in each idle node until the migration of the task data that needs to be removed by all the overload nodes is completed.
  • the removal task amount determining unit 232 can be specifically configured to:
  • the move-in task amount determining unit 233 can be specifically configured to:
  • the execution information of each computing sub-node in the Nth round iterative task includes: at least one of actual execution time, computing resource usage, and task data amount of each computing sub-node in the N-th iteration task Species
  • the computing resource usage rate includes at least one of a CPU usage rate and a memory usage rate.
  • the update unit specific 25 may be specifically configured to:
  • the central node 2 may further include: a second determining unit 26, which may be specifically configured to:
  • N is equal to the preset maximum number of iterations. If N is less than the maximum number of iterations, it is determined that the iterative task is not ended; if N is equal to the maximum number of iterations, the iterative task is determined. End;
  • each calculation sub-node After each calculation sub-node completes the N-th iteration task, it is determined whether the output result of the N-th iteration satisfies the convergence condition; if the convergence condition is not satisfied, it is determined that the iteration task is not completed, and if the convergence condition is satisfied, it is determined that the iteration task ends. .
  • An embodiment of the present invention provides a central node, which obtains an estimated execution time of each computing sub-node in the current iterative task according to a time learning model, and determines whether the current iterative task is to be load balanced according to the expected execution time. Load balancing is performed to adjust the amount of task data allocated by each computing sub-node. After the current iterative task is executed, the execution information of each computing sub-node in the current iterative task is collected, and the time learning model is updated. Training parameters and repeat the above process in the next iteration.
  • the embodiment of the present invention can allocate a corresponding task data amount according to the capability of each computing child node, and can perform the previous round according to the execution situation. In this round of tasks, the amount of task data of each computing child node is adjusted, thereby avoiding some unnecessary load balancing processes, reducing network overhead, and improving system data mining performance.
  • the embodiment of the present invention provides a central node 3, which can be applied to a data mining system.
  • the central node 3 includes a processor 31, a memory 32, an input/output interface 33, and a processor 31.
  • the memory 32, the input/output interface 33 are connected by a bus 34; wherein the input/output interface 33 is for interacting with other network elements, the memory 32 is for storing a computer program 321 for executing the computer program 321 for:
  • N+1th iteration task Determining whether the N+1th iteration task needs to be load-balanced according to the execution information of each computing sub-node. If load balancing is required, the value of N is incremented by one and then repeatedly executed to obtain the N-th iteration task. Calculating the expected execution time of the child node to determine whether the N+1th iteration task needs to perform load balancing according to the execution information of each computing child node; if load balancing is not required, each computing child node is configured according to the The Nth iteration task performs the N+1th iteration task for the task data allocated by the computing child node, where N is a positive integer and the starting value of N is 1.
  • the processor 31 for executing the computer program 321 may be specifically configured to:
  • the distribution characteristic parameter of the data set includes: an average value, a variance, a value range, and a number of different values of the values in the same field of each data in the data set;
  • the computing resource of each computing child node includes: at least one of a CPU frequency and a memory capacity of the computing child node.
  • processor 31 for executing the computer program 321 may be specifically configured to:
  • the actual execution time of the N-1th iteration task is performed by each computing child node as the expected execution time of the computing child node in the Nth round iterative task.
  • the processor 31 for executing the computer program 321 may be specifically configured to:
  • Determine the expected execution time is greater than the standard execution time to calculate the child node as an overload node, and The estimated execution time is less than the standard execution time to calculate the child node as the idle node;
  • the task data of each overload node is sequentially removed according to the amount of task data corresponding to the overload node corresponding to the overload node, and the task data to be removed is calculated according to the expected execution time of the idle node.
  • the amount of task data that can be moved in each idle node is sequentially moved into at least one idle node until the task data that all overload nodes need to move out is migrated.
  • the processor 31 is configured to execute the computer program 321 and can be used to:
  • the processor 31 for executing the computer program 321 can be used to:
  • the execution information of each computing sub-node in the Nth round iterative task includes: at least one of actual execution time, computing resource usage, and task data amount of each computing sub-node in the N-th iteration task Species
  • the computing resource usage rate includes at least one of a CPU usage rate and a memory usage rate.
  • the processor 31 for executing the computer program 321 may be specifically configured to:
  • the time difference rate is compared with the preset difference rate threshold. If the time difference rate is less than or equal to the preset difference rate threshold, it is determined that the N+1th iteration task does not need load balancing; if the time difference rate is greater than the preset difference rate Threshold, it is determined that the N+1th iteration task needs to be load balanced.
  • the processor 31 is configured to execute the computer program 321 and may further be specifically configured to:
  • N is equal to the preset maximum number of iterations. If N is less than the maximum number of iterations, it is determined that the iterative task is not ended; if N is equal to the maximum number of iterations, the iterative task is determined. End;
  • each calculation sub-node After each calculation sub-node completes the N-th iteration task, it is determined whether the output result of the N-th iteration satisfies the convergence condition; if the convergence condition is not satisfied, it is determined that the iteration task is not completed, and if the convergence condition is satisfied, it is determined that the iteration task ends. .
  • the embodiment of the present invention provides a central node, which obtains an estimated execution time of each calculated child node in the current iterative task, and allocates a corresponding task data amount to the calculated child node according to the expected execution time, after the current iteration task is executed. Collecting the execution status information of each computing sub-node in the current iterative task, and determining whether the next round of iterative tasks should adjust the task data amount of each computing sub-node.
  • the embodiment of the present invention can allocate a corresponding task data amount according to the capability of each computing child node, and can perform the previous round according to the execution situation. In this round of tasks, the amount of task data of each computing child node is adjusted, thereby avoiding some unnecessary load balancing processes, reducing network overhead, and improving system data mining performance.
  • the embodiment of the present invention provides a central node 4, which can be applied to a data mining system.
  • the central node 4 includes: a processor 41, a memory 42, an input/output interface 43, a processor 41, a memory 42, and an input.
  • the output interface 43 is connected via a bus 44; wherein the input/output interface 43 is for interacting with other network elements, the memory 42 is for storing a computer program 421, and the processor 41 is for executing the computer program 421 for:
  • task data is reassigned for each computing child node according to the estimated execution time of each computing child node; if load balancing is not required, task data is not reassigned for each computing child node;
  • the task data is part or all of the acquired sample data set to be mined;
  • each of the estimated execution times of the child nodes is updated to a step of updating the time learning model based on the execution information of each of the calculated child nodes.
  • the time learning model may be established according to at least one of actual execution time, computing resource usage, and historical task data volume.
  • the time learning model can include:
  • At least one of calculating the historical task data amount of the child node i in the N-1th iteration task is calculating the amount of task data allocated by the child node i in the N-1th iteration task.
  • the processor 41 for executing the computer program 421 may be specifically configured to:
  • the processor 41 for executing the computer program 421 may be specifically configured to:
  • the task data of each overload node is sequentially removed according to the amount of task data corresponding to the overload node corresponding to the overload node, and the task data to be removed is calculated according to the expected execution time of the idle node.
  • the amount of task data that can be moved in each idle node is sequentially moved into at least one idle node until the task data that all overload nodes need to move out is migrated.
  • the processor 41 for executing the computer program 421 may be specifically configured to:
  • the processor 41 for executing the computer program 421 can be specifically used for:
  • the execution information of each computing sub-node in the Nth round iterative task may include: at least one of an actual execution time, a computing resource usage rate, and a task data amount of each computing sub-node in the N-th iteration task One type;
  • the workload is the number of sub-blocks in the Nth iteration task, and the computing resource usage includes at least one of CPU usage and memory usage.
  • the processor 41 for executing the computer program 421 may be specifically configured to:
  • the processor 41 is configured to execute the computer program 421, and may be specifically used to:
  • N is equal to the preset maximum number of iterations. If N is less than the maximum number of iterations, it is determined that the iterative task is not ended; if N is equal to the maximum number of iterations, the iterative task is determined. End;
  • each calculation sub-node After each calculation sub-node completes the N-th iteration task, it is determined whether the output result of the N-th iteration satisfies the convergence condition; if the convergence condition is not satisfied, it is determined that the iteration task is not completed, and if the convergence condition is satisfied, it is determined that the iteration task ends. .
  • An embodiment of the present invention provides a central node, which obtains an estimated execution time of each computing sub-node in the current iterative task according to a time learning model, and determines whether the current iterative task is to be load balanced according to the expected execution time. Load balancing is performed to adjust the amount of task data allocated by each computing sub-node. After the current iterative task is executed, the execution information of each computing sub-node in the current iterative task is collected, and the time learning model is updated. Training parameters and repeat the above process in the next iteration.
  • the embodiment of the present invention can allocate a corresponding task data amount according to the capability of each computing child node, and can perform the previous round according to the execution situation. In this round of tasks, the amount of task data of each computing child node is adjusted, thereby avoiding some unnecessary load balancing processes, reducing network overhead, and improving system data mining performance.
  • the embodiment of the invention provides a data mining system. As shown in FIG. 9, the system includes:
  • any of the central nodes described in the foregoing embodiments and at least two computing sub-nodes; wherein each of the computing sub-nodes is provided with a memory.
  • any one of the foregoing central nodes and the data mining system provided in this embodiment may be used to implement the working methods and operations of each unit in the following embodiments.
  • the principle can be referred to the description in the following method embodiments.
  • An embodiment of the present invention provides a data mining method. As shown in FIG. 10, the method includes:
  • S102 Reassign task data to each computing sub-node according to an estimated execution time of each computing sub-node; wherein the task data is part or all of the acquired sample data set to be mined.
  • S104 Determine, according to the execution status information of each calculation sub-node, whether the N+1th iteration task needs to perform load balancing. If load balancing is required, the value of N is incremented by one, and then S101 to S104 are repeatedly executed; Load balancing, so that each computing child node performs the N+1th iteration task according to the task data allocated for the computing child node in the Nth iteration task, where N is a positive integer and the starting value of N is 1.
  • This embodiment further provides another data mining method, as shown in FIG. 11, including:
  • each computing child node After completing the Nth iteration task according to the allocated task data, each computing child node obtains execution information of each computing child node in the Nth round iterative task.
  • S205 Update the training parameter of the time learning model according to the execution status information of each computing child node. If the iterative task is not completed, the value of N is incremented by one, and then the S201 to S205 are repeatedly executed by using the updated time learning model.
  • An embodiment of the present invention provides a data mining method, which obtains an estimated execution time of each computing sub-node in the current iterative task, and allocates a corresponding sub-node according to the estimated execution time. After the current iteration task is executed, collect the execution information of each calculated sub-node in the current iteration task, and determine whether the next iteration task is to perform the task data amount of each computing sub-node. Adjusting and performing the next iteration task according to the adjusted task data amount; or, according to the time learning model, obtaining the expected execution time of each calculation sub-node in the current iteration task, and judging the current iteration according to the estimated execution time judgment Whether the task is to be load-balanced.
  • the embodiment of the present invention can allocate a corresponding task data amount according to the capability of each computing child node, and can perform the previous round according to the execution situation. In this round of tasks, the amount of task data of each computing child node is adjusted, thereby avoiding some unnecessary load balancing processes, reducing network overhead, and improving system data mining performance.
  • the data mining method provided by the embodiments of the present invention is described in detail by using specific embodiments. As shown in FIG. 12, the method includes :
  • mining systems For example, import datasets from external data sources as sample datasets into data mining systems (hereafter referred to as mining systems).
  • Common external data sources can be data warehouses, databases, Open Database Connectivity (ODBC), and save.
  • ODBC Open Database Connectivity
  • the imported data set can be composed of a large amount of unprocessed data, and can be in the form of a list.
  • the sample data set is first divided into a plurality of sub-blocks according to a preset rule, and the task data initially allocated to each computing sub-node in the mining system is stored by each computing sub-node.
  • the preset rule may be: dividing the sample data set into data blocks with the same data amount and assigning them to each computing sub-node. For example, the sample data set has 10 million rows of data, and if it is divided into 10 computing sub-nodes, it may be given Each computing child node allocates 1 million rows of data; or, it can be divided according to computing resources (CPU frequency, memory capacity, etc.) of each computing child node, for example, can be divided according to the capacity of the computing child node memory.
  • computing resources CPU frequency, memory capacity, etc.
  • the divided task data is stored on the storage device of the corresponding computing child node, and the storage device may be a hard disk or a memory.
  • the data to be processed is required when the mining task starts. Read into memory to perform the mining process.
  • the estimated execution time of each computing sub-node is obtained according to the distribution characteristic parameter of the sample data set and the computing resource of each computing sub-node.
  • the distribution characteristic parameter of the sample data set may include: an average value, a variance, a value range, and a number of different values of the values in the same field of each data in the data set. For example, taking the sample data set in the form of a list as an example, the values in the same column belong to the values in the same field, and the average value, variance, range of values, and number of different values of all the values in the column are obtained.
  • the distribution characteristic parameters of the field data of the sample data set are obtained, and the distribution characteristic parameters of the entire sample data set can be obtained by the same reason.
  • calculating the computing resource of each child node may include: calculating at least one of a CPU frequency and a memory capacity of the child node.
  • the estimated execution time of the computing sub-node can be obtained by multiplying the number of different values by the empirical coefficient of a preset algorithm (which may be the complexity of the algorithm) and dividing by calculating the operating frequency of the CPU of the child node.
  • a preset algorithm which may be the complexity of the algorithm
  • the foregoing preset algorithm may be selected according to actual needs, and is not limited in this embodiment, and the foregoing calculation method is merely an example, including but not limited thereto.
  • the actual execution time of the N-1th iteration task of each computing child node may be used as the prediction of the computing child node in the Nth round iterative task. execution time.
  • the task data amount of each calculation sub-node in the N-1th iteration task and the hardware configuration of the calculation sub-node may be considered.
  • One or more of the parameters such as network load to obtain the estimated execution time.
  • Determine the expected execution time is greater than the standard execution time to calculate the child node as an overload node, and The estimated execution time is less than the standard execution time to calculate the child node as the idle node;
  • the task data of each overload node is sequentially removed according to the amount of task data corresponding to the overload node corresponding to the overload node, and the task data to be removed is calculated according to the expected execution time of the idle node.
  • the amount of task data that can be moved in each idle node is sequentially moved into at least one idle node until the task data that all overload nodes need to move out is migrated.
  • the amount of task data that needs to be removed from each overload node can be obtained by:
  • Obtaining the amount of task data that can be moved in for each idle node can include:
  • node 1 According to the estimated execution time of each computing sub-node in Table 1, it can be determined that node 1, node 2, node 4 are overload nodes, node 6, node 7, and node 8 are idle nodes.
  • the amount of task data that needs to be removed from node 2 and node 4 is 1.8 million rows and 850,000 rows, respectively.
  • the amount of task data that can be moved by node 1 is 4 million rows.
  • the amount of task data that can be moved by node 7 and node 8 is 1.2 million rows and 95 million rows, respectively.
  • the data is transferred. It can be seen from Table 1 that the order of the expected execution times of Node 1, Node 2, Node 4, Node 6, Node 7, and Node 8 is from high to low: Node 1, Node 2, Node 4 , node 8, node 7, node 6. Therefore, when transferring data, the task data that needs to be removed from the node 1 is preferentially moved to the node 6. According to the above calculation, after all the task data that the node 1 needs to move out is moved into the node 6, the node 6 has remaining space, and then Then, the task data that the node 2 needs to move out is moved to the node 6.
  • the task data that the node 2 needs to move out is moved to the node 7, and so on, until the node 1 and the node 2.
  • the task data that needs to be removed from node 4 is migrated.
  • the iterative task can utilize the Mahout platform (an extensible machine learning and data mining platform of the Apache Software Foundation) whose architecture is based on the MapReduce framework, and its computational flow includes both Map (Map) and Reduce (Simplification). Step, wherein executing the Map is to obtain an intermediate result based on the key value pair according to the data, and performing Reduce is to combine the key value pairs to generate an output result.
  • MapReduce-based Mahout repeatedly performs the Map and Reduce steps in the process of performing iterative tasks. After each MapReduce task is executed, the result is output, and then the effect of the generated model is tested. If the requirements of the iterative task are met, the generated model is the final result (it can be understood that the model parameters are adjusted to the optimal value); otherwise, continue For the next iteration, repeat the Map and Reduce steps.
  • the method for judging whether the iterative task ends may include:
  • N is equal to the preset maximum number of iterations. If N is less than the maximum number of iterations, it is determined that the iterative task is not ended; if N is equal to the maximum number of iterations, the iterative task is determined. End;
  • the maximum number of iterations is set to 200. If N is less than 200, the iteration task is not ended. If N is equal to 200, it is determined that the iteration task ends.
  • each computing sub-node After each computing sub-node completes the Nth iteration task, it is determined whether the output result of the Nth iteration satisfies the convergence condition (for example, whether the parameters of the model used for the iteration have been adjusted to the optimal parameters); if the convergence condition is not satisfied Then, it is determined that the iteration task is not finished, and if the convergence condition is satisfied, it is determined that the iteration task ends.
  • the convergence condition for example, whether the parameters of the model used for the iteration have been adjusted to the optimal parameters
  • the execution status information of each computing child node may be: at least one of actual execution time, computing resource usage rate, and task data amount of each computing child node in the Nth round iterative task.
  • the computing resource usage rate includes at least one of a CPU usage rate and a memory usage rate.
  • S307. Determine, according to the execution status information of each computing sub-node, whether the N+1th iteration task needs to perform load balancing. If load balancing is required, the value of N is incremented by 1 and then executed repeatedly. S302-S307; if load balancing is not required, each computing child node directly performs the (N+1)th iterative task according to the task data allocated for the computing child node in the Nth iteration task.
  • the calculation subnodes with the longest actual execution time among all the calculated subnodes and the calculation subnodes with the shortest actual execution time may be determined;
  • the time difference rate is compared with the preset difference rate threshold. If the time difference rate is less than or equal to the preset difference rate threshold, it is determined that the N+1th iteration task does not need load balancing; if the time difference rate is greater than the preset difference rate Threshold, it is determined that the N+1th iteration task needs to be load balanced.
  • the difference rate threshold is set to 10%. Assume that in the Nth iteration task, the actual execution time of the calculated child node with the longest actual execution time is 120s, and the actual execution time of the calculated child node with the shortest actual execution time is 100s. The difference between the actual execution time of the two calculated sub-nodes is 20%, which is greater than the difference rate threshold, and it is determined that the N+1th iteration task needs to be load-balanced; for example, in the N-th iteration task, the actual execution time is the longest.
  • the actual execution time of the calculated child node is 105s, and the actual execution time of the calculated child node with the shortest actual execution time is 100s, then the difference between the actual execution time of the two calculated child nodes is 5%, which is less than the difference rate threshold, then it is determined
  • the N+1th iteration task does not require load balancing.
  • the method includes:
  • S401 The sample data set to be mined is obtained.
  • the specific steps are the same as those in S301. For details, refer to S301, and details are not described herein.
  • the time learning model may be established according to at least one of actual execution time, computing resource usage, and historical task data amount.
  • the model can include:
  • Calculate the expected execution time of the child node i in the Nth iteration task a* calculate the actual execution time of the child node i in the N-1th iteration task + b * calculate the child node i in the N-1th iteration task middle Calculating the resource usage rate +c* to calculate the historical data task amount +C of the child node i in the N-1th iteration task;
  • a is the execution time training parameter
  • b is the calculation resource usage training parameter
  • c is the historical task amount training parameter
  • C is the training constant
  • i is a positive integer
  • the computing resource usage rate includes the CPU effort and the memory usage rate.
  • At least one of calculating the historical data task amount of the child node i in the N-1th iteration task is calculating the task data amount of the child node i allocated in the N-1th iteration task, and calculating the child node i as the data mining Any one of the system calculates a child node.
  • a is set to 0.95
  • b is set to 10
  • c is set to 0 (can be understood as not considering the historical task data amount training parameters)
  • C is set to 0.5
  • the computing resource usage rate is calculated as the CPU usage of the child node i, and is assumed to be 50%
  • the computing resource usage rate, and the historical task data amount may be considered.
  • the task data amount of each computing child node in the N-1th iteration task, the hardware configuration of the computing child node, and the network load may be considered.
  • One or more of the parameters to get the estimated execution time may be considered.
  • it may include:
  • the difference rate threshold is set to 10%. It is assumed that in the Nth iteration task, the expected execution time of the calculated child node with the longest execution time is 120s, and the estimated execution time of the calculated child node with the shortest execution time is 95s.
  • the difference between the estimated execution time of the two calculated sub-nodes is 26.3%, which is greater than the difference rate threshold, and it is determined that the N+1th iteration task needs load balancing; For example, in the Nth iteration task, the estimated execution time of the calculated child node with the longest execution time is 107s, and the estimated execution time of the calculated child node with the shortest execution time is 100s, then the estimated execution time of the two calculated child nodes is The difference rate is 7%, which is less than the difference rate threshold. It is determined that the N+1th iteration task does not need to be load balanced.
  • S404 Re-allocating the task data for each of the computing sub-nodes according to the estimated execution time of each of the computing sub-nodes (the specific step is the same as that of S303, refer to S303, and details are not described herein again).
  • At least one of an execution time training parameter, a calculation resource usage training parameter, and a historical task data amount training parameter of the time learning model may be updated according to the execution situation information of each computing child node.
  • An embodiment of the present invention provides a data mining method, which obtains an estimated execution time of each computing child node in the current iterative task, and allocates a corresponding task data amount to the computing child node according to the expected execution time, and executes the task in the current iteration. After that, collect the execution information of each computing sub-node in the current iterative task, and determine whether the next iteration task needs to adjust the task data amount of each computing sub-node, and according to the adjusted task data.
  • the quantity performs the next iteration task; or, according to the time learning model, obtains the expected execution time of each calculation sub-node in the current iteration task, and judges whether the current iteration task is to be load-balanced according to the estimated execution time, if The load balancing adjusts the amount of task data allocated by each computing sub-node.
  • the execution information of each computing sub-node in the current iterative task is collected, and the time learning model is updated. Train the parameters and repeat the above process during the next iteration.
  • the embodiment of the present invention can allocate a corresponding task data amount according to the capability of each computing child node, and can perform each round of the current round according to the execution performance of the previous round.
  • the amount of task data of the computing child nodes is adjusted, thereby avoiding some unnecessary load balancing processes, reducing network overhead, and improving data mining performance of the system.
  • the disclosed nodes, systems, and methods may be implemented in other manners.
  • the device embodiments described above are merely illustrative.
  • the division of the unit is only a logical function division.
  • there may be another division manner for example, multiple units or components may be combined or Can be integrated into another system, or some features can be ignored or not executed.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, and may be in an electrical, mechanical or other form.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of the embodiment.
  • each functional unit in each embodiment of the present invention may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
  • the above integrated unit can be implemented in the form of hardware or in the form of hardware plus software functional units.
  • the above-described integrated unit implemented in the form of a software functional unit can be stored in a computer readable storage medium.
  • the above software functional unit is stored in a storage medium and includes instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) or a processor to perform the methods of the various embodiments of the present invention. Part of the steps.
  • the foregoing storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk, and the like, which can store program codes. .

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Fuzzy Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种数据挖掘方法和节点,包括:获取本轮迭代任务中每个计算子节点的预计执行时间,并根据预计执行时间为计算子节点分配对应的任务数据量,在本轮迭代任务执行后,收集本轮迭代任务中每个计算子节点的执行情况信息,并以此判断下一轮迭代任务是否要对每个计算子节点的任务数据量进行调整,并在按照调整后的任务数据量进行下一轮迭代任务,从而能够根据每个计算子节点的能力分配相应的任务数据量,并且能够根据上一轮的执行情况对本轮任务中每个计算子节点的任务数据量做出调整,从而能够避免有些不必要的负载均衡过程,降低网络开销,提高系统的数据挖掘性能。

Description

数据挖掘方法和节点 技术领域
本发明实施例涉及通信技术,尤其涉及一种数据挖掘方法和节点。
背景技术
大数据(big data),或称巨量资料,指的是所涉及的资料量规模巨大到无法通过常规软件工具,在合理时间内达到撷取、管理、处理、并整理的数据集合。随着云时代的来临,大数据(Big data)吸引了越来越多的关注,而如何从大数据中获取有用的信息和知识就成了业界关注的焦点。数据挖掘(Data Mining),就是一种从大量的数据中通过算法搜索隐藏于其中信息的技术,数据挖掘通常通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。
在数据挖掘过程中通常需要对海量数据进行建模分析,常见的建模方法包括迭代的机器学习算法,例如线性回归、逻辑回归、神经网络和决策树,通过对数据重复执行一个学习流程,不断更新数据挖掘任务的特定参数。每次完成一轮迭代计算时,对生成的临时模型的效果进行评估,满足一定条件时结束迭代过程;否则重复执行迭代过程。
然而由于大数据具有数据量大的特点,通常达到TB(1TB=1012B)或者PB(1PB=1000TB)级别,超出民用计算机的计算能力,所以通常使用高性能计算机和分布式集群进行批量处理。即将大数据的挖掘任务在分布式集群计算环境中执行上述的迭代算法,每一轮迭代计算任务被分配到各个计算子节点,当计算子节点完成各自的计算任务时,将所有子节点的临时结果汇总,并且对得到的合并模型的效果进行评估,满足一定条件时结束迭代过程;否则将新的计算任务重新分配到各个计算子节点,重复迭代过程。
由于分布式集群各计算子节点可能出现的计算能力不一致的问题,导致计算资源不能得到充分利用,降低计算效率。因此为了提高整个挖掘系统的性能,在一种现有技术中,采用了一种负载均衡技术,在执行每一轮迭代任务时,根据计算子节点的负载情况动态的调整各计算子节点上的任务量,比 如在执行迭代任务的过程中,当发现有的计算子节点迭代任务已完成,有的未完成时,则认为已完成任务的节点为空闲节点,未完成任务的节点为过载节点,此时将过载节点的一部分任务数据转移至空闲节点。但是,上述现有技术中,由于每个计算子节点的每一轮迭代的输入的任务数据量是不变的,因此在每一轮迭任务中的负载均衡对于下一轮迭代而言是独立的,也就是说在执行下一轮迭代任务时,需要再次进行负载均衡,由于负载均衡需要在各个节点之间转移数据,这就增加了不必要的网络开销,降低系统的数据挖掘性能。
发明内容
本发明实施例提供一种数据挖掘方法和节点,能够降低网络开销,提高系统的数据挖掘性能。
第一方面,本发明实施例提供一种中心节点,应用于数据挖掘系统,所述中心节点包括:
时间获取单元,用于获取第N轮迭代任务中,每个计算子节点的预计执行时间;
分配单元,用于根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;其中,所述任务数据为已获取的待挖掘的样本数据集的部分或全部数据;
信息获取单元,用于在每个计算子节点根据分配的任务数据完成所述第N轮迭代任务后,若迭代任务未结束,则获取所述第N轮迭代任务中每个计算子节点的执行情况信息;
第一判断单元,用于根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡,若需要进行负载均衡,则将N的值加1后重复执行所述获取第N轮迭代任务中,每个计算子节点的预计执行时间至所述根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡的步骤;若不需要进行负载均衡,则使每个计算子节点按照第N轮迭代任务中为该计算子节点分配的任务数据执行所述第N+1轮迭代任务,其中,N为正整数,N的起始值为1。
结合第一方面,在第一种可能的实现方式中,当N等于1时,所述时间获取单元具体用于:
根据所述样本数据集的分布特征参数和每个计算子节点的计算资源获取每个计算子节点的预计执行时间;
其中,所述本数据集的分布特征参数包括:所述本数据集中各个数据的相同字段下的取值的平均值、方差、取值范围、不同取值的个数;
每个计算子节点的计算资源包括:该计算子节点的CPU频率、内存容量中的至少一种。
结合第一方面,在第二种可能的实现方式中,当N大于1时,所述时间获取单元具体用于:
将每个计算子节点执行第N-1轮迭代任务的实际执行时间作为所述第N轮迭代任务中该计算子节点的预计执行时间。
结合第一方面至第一方面的第二种可能的实现方式中的任意一种,在第三种可能的实现方式中,所述分配单元包括:
节点选择单元,用于确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
移出任务量确定单元,用于根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
移入任务量确定单元,用于根据每个空闲节点的预计执行时间以及所述标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
转移单元,用于按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直至所有过载节点需要移出的任务数据都迁移完成。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,
所述移出任务量确定单元具体用于:
将每个过载节点的预计执行时间与所述标准执行时间之差除以所述标准执行时间,得到该过载节点的任务迁移比例;
将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任务迁移比例,得到该过载节点需要移出的任务数据量;
所述移入任务量确定单元具体用于:
将每个空闲节点的预计执行时间与所述标准执行时间之差的绝对值除以所述标准执行时间,得到该过空闲点的可移入任务比例;
将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
结合第一方面至第一方面的第四种可能的实现方式中的任意一种,在第五种可能的实现方式中,所述第N轮迭代任务中每个计算子节点的执行情况信息包括:每个计算子节点在所述第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种;
其中,所述计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述第一判断单元具体用于:
确定在第N轮迭代任务中,所有计算子节点中实际执行时间最长的计算子节点,和实际执行时间最短的计算子节点;
获取所述实际执行时间最长的计算子节点与所述实际执行时间最短的计算子节点之间的实际执行时间差异率;
将所述时间差异率与预设差异率阈值进行比较,若所述时间差异率小于或等于所述预设差异率阈值,则确定第N+1轮迭代任务不需要进行负载均衡;若所述时间差异率大于所述预设差异率阈值,则确定第N+1轮迭代任务需要进行负载均衡。
结合第一方面至第一方面的第六种可能的实现方式中的任意一种,在第七种可能的实现方式中,所述中心节点还包括:第二判断单元,具体用于:
在每个计算子节点完成所述第N轮迭代任务后,判断N是否等于预设的最大迭代数,若N小于所述最大迭代数,则确定所述迭代任务未结束;若N等于所述最大迭代数,则确定所述迭代任务结束;
或者,
在每个计算子节点完成所述第N轮迭代任务后,判断所述第N轮迭代的输出结果是否满足收敛条件;若不满足所述收敛条件,则确定所述迭代任务未结束,若满足所述收敛条件,则确定所述迭代任务结束。
第二方面,本发明实施例提供另一种中心节点,应用于数据挖掘系统,所述中心节点包括:
时间获取单元,用于根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间;
第一判断单元,用于根据每个计算子节点的预计执行时间判断所述第N轮迭代任务是否需要进行负载均衡;
分配单元,用于当需要进行负载均衡时,根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;当不需要进行负载均衡时,不为每个计算子节点重分配任务数据;其中,所述任务数据为已获取的待挖掘的样本数据集的部分或全部数据;
信息获取单元,用于在每个计算子节点根据分配的任务数据完成所述第N轮迭代任务后,获取所述第N轮迭代任务中每个计算子节点的执行情况信息;
更新单元,用于根据每个计算子节点的执行情况信息更新所述时间学习模型的训练参数,若所述迭代任务未结束,则将N的值加1后利用更新后的时间学习模型重复执行所述根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间至所述根据每个计算子节点的执行情况信息更新所述时间学习模型的步骤。
结合第二方面,在第一种可能的实现方式中,所述时间学习模型是根据实际执行时间、计算资源使用率、历史任务数据量中的至少一个参数建立的。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述时间学习模型包括:
计算子节点i在第N轮迭代任务中的预计执行时间=a*计算子节点i在第N-1轮迭代任务中的实际执行时间+b*计算子节点i在第N-1轮迭代任务中的计算资源使用率+c*计算子节点i在第N-1轮迭代任务中的历史数据任务量+C;
其中,a为执行时间训练参数,b为计算资源使用率训练参数,c为历史任务量训练参数,C为训练常量,i为正整数;计算资源使用率包括CPU时用力、内存使用率中的至少一种,所述计算子节点i在第N-1轮迭代任务中的历史数据任务量为所述计算子节点i在第N-1轮迭代任务中的分配的任务数据量。
结合第二方面至第二方面的第二种可能的实现方式中的任意一种,在第三种可能的实现方式中,所述第一判断单元具体用于:
确定在第N轮迭代任务中,所有计算子节点中预计执行时间最长的计算子节点,和预计执行时间最短的计算子节点;
获取所述预计执行时间最长的计算子节点与所述预计执行时间最短的计算子节点之间的预计执行时间差异率;
将所述时间差异率与预设差异率阈值进行比较,若所述时间差异率小于或等于所述预设差异率阈值,则确定第N轮迭代任务不需要进行负载均衡;若所述时间差异率大于所述预设差异率阈值,则确定第N轮迭代任务需要进行负载均衡。
结合第二方面至第二方面的第三种可能的实现方式中的任意一种,在第四种可能的实现方式中,所述分配单元包括:
节点选择单元,用于确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
移出任务量确定单元,用于根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
移入任务量确定单元,用于根据每个空闲节点的预计执行时间以及所述标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
转移单元,用于按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直至所有过载节点需要移出的任务数据都迁移完成。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,
所述移出任务量确定单元具体用于:
将每个过载节点的预计执行时间与所述标准执行时间之差除以所述标准执行时间,得到该过载节点的任务迁移比例;
将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任务迁移比例,得到该过载节点需要移出的任务数据量;
所述移入任务量确定单元具体用于:
将每个空闲节点的预计执行时间与所述标准执行时间之差的绝对值除以所述标准执行时间,得到该过空闲点的可移入任务比例;
将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
结合第二方面至第二方面的第五种可能的实现方式中的任意一种,在第六种可能的实现方式中,所述第N轮迭代任务中每个计算子节点的执行情况信息包括:每个计算子节点在所述第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种;
其中,所述计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
结合第二方面的第一种可能的实现方式,在第七种可能的实现方式中,所述更新单元具体用于:
根据每个计算子节点的执行情况信息更新所述时间学习模型的执行时间训练参数、计算资源使用率训练参数、历史任务数据量训练参数中的至少一个参数。
结合第二方面至第二方面的第七种可能的实现方式中的任意一种,在第八种可能的实现方式中,所述中心节点还包括:第二判断单元,具体用于:
在每个计算子节点完成所述第N轮迭代任务后,判断N是否等于预设的最大迭代数,若N小于所述最大迭代数,则确定所述迭代任务未结束;若N等于所述最大迭代数,则确定所述迭代任务结束;
或者,
在每个计算子节点完成所述第N轮迭代任务后,判断所述第N轮迭代的输出结果是否满足收敛条件;若不满足所述收敛条件,则确定所述迭代任务未结束,若满足所述收敛条件,则确定所述迭代任务结束。
第三方面,提供一种数据挖掘系统,所述系统包括:
上述第一方面至第二方面的第八种可能的实现方式中任一所述的中心节点,以及至少两个计算子节点。
第四方面,提供一种数据挖掘方法,所述方法包括:
获取第N轮迭代任务中,每个计算子节点的预计执行时间;
根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;其中,所述任务数据为已获取的待挖掘的样本数据集的部分或全部数据;
在每个计算子节点根据分配的任务数据完成所述第N轮迭代任务后,若迭代任务未结束,则获取所述第N轮迭代任务中每个计算子节点的执行情况信息;
根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡,若需要进行负载均衡,则将N的值加1后重复执行所述获取第N轮迭代任务中,每个计算子节点的预计执行时间至所述根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡的步骤;若不需要进行负载均衡,则使每个计算子节点按照第N轮迭代任务中为该计算子节点分配的任务数据执行所述第N+1轮迭代任务,其中,N为正整数,N的起始值为1。
结合第四方面,在第一种可能的实现方式中,当N等于1时,所述获取第N轮迭代任务中,每个计算子节点的预计执行时间包括:
根据所述样本数据集的分布特征参数和每个计算子节点的计算资源获取每个计算子节点的预计执行时间;
其中,所述本数据集的分布特征参数包括:所述本数据集中各个数据的相同字段下的取值的平均值、方差、取值范围、不同取值的个数;
每个计算子节点的计算资源包括:该计算子节点的CPU频率、内存容量中的至少一种。
结合第四方面,在第二种可能的实现方式中,当N大于1时,所述获取第N轮迭代任务中,每个计算子节点的预计执行时间包括:
将每个计算子节点执行第N-1轮迭代任务的实际执行时间作为所述第N轮迭代任务中该计算子节点的预计执行时间。
结合第四方面至第四方面的第二种可能的实现方式中的任意一种,在第三种可能的实现方式中,所述根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据包括:
确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
根据每个空闲节点的预计执行时间以及所述标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直至所有过载节点需要移出的任务数据都迁移完成。
结合第四方面的第三种可能的实现方式,在第四种可能的实现方式中,所述根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量包括:
将每个过载节点的预计执行时间与所述标准执行时间之差除以所述标准执行时间,得到该过载节点的任务迁移比例;
将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任务迁移比例,得到该过载节点需要移出的任务数据量;
所述根据每个空闲节点的预计执行时间以及所述标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量包括:
将每个空闲节点的预计执行时间与所述标准执行时间之差的绝对值除以所述标准执行时间,得到该过空闲点的可移入任务比例;
将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
结合第四方面至第四方面的第四种可能的实现方式中的任意一种,在第五种可能的实现方式中,所述第N轮迭代任务中每个计算子节点的执行情况信息包括:每个计算子节点在所述第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种;
其中,所述计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
第四方面的第五种可能的实现方式,在第六种可能的实现方式中,所述根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡包括:
确定在第N轮迭代任务中,所有计算子节点中实际执行时间最长的计算子节点,和实际执行时间最短的计算子节点;
获取所述实际执行时间最长的计算子节点与所述实际执行时间最短的计算子节点之间的实际执行时间差异率;
将所述时间差异率与预设差异率阈值进行比较,若所述时间差异率小于或等于所述预设差异率阈值,则确定第N+1轮迭代任务不需要进行负载均衡;若所述时间差异率大于所述预设差异率阈值,则确定第N+1轮迭代任务需要进行负载均衡。
结合第四方面至第四方面的第六种可能的实现方式中的任意一种,在第七种可能的实现方式中,迭代任务是否结束的判断方法包括:
在每个计算子节点完成所述第N轮迭代任务后,判断N是否等于预设的最大迭代数,若N小于所述最大迭代数,则确定所述迭代任务未结束;若N等于所述最大迭代数,则确定所述迭代任务结束;
或者,
在每个计算子节点完成所述第N轮迭代任务后,判断所述第N轮迭代的输出结果是否满足收敛条件;若不满足所述收敛条件,则确定所述迭代任务未结束,若满足所述收敛条件,则确定所述迭代任务结束。
第五方面,提供一种数据挖掘方法,所述方法包括:
根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间;
根据每个计算子节点的预计执行时间判断所述第N轮迭代任务是否需要进行负载均衡;
若需要进行负载均衡,则根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;若不需要进行负载均衡,不为每个计算子节点重分配任务数据;其中,所述任务数据为已获取的待挖掘的样本数据集的部分或全部数据;
在每个计算子节点根据分配的任务数据完成所述第N轮迭代任务后,获取所述第N轮迭代任务中每个计算子节点的执行情况信息;
根据每个计算子节点的执行情况信息更新所述时间学习模型的训练参数,若所述迭代任务未结束,则将N的值加1后利用更新后的时间学习模型重复执行所述根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间至所述根据每个计算子节点的执行情况信息更新所述时间学习模型的步骤;其中,N为正整数,N的起始值为1。
结合第五方面,在第一种可能的实现方式中,所述时间学习模型是根据实际执行时间、计算资源使用率、历史任务数据量中的至少一个参数建立的。
结合第五方面的第一种可能的实现方式,在第二种可能的实现方式中,所述时间学习模型包括:
计算子节点i在第N轮迭代任务中的预计执行时间=a*计算子节点i在第N-1轮迭代任务中的实际执行时间+b*计算子节点i在第N-1轮迭代任务中的计算资源使用率+c*计算子节点i在第N-1轮迭代任务中的历史数据任务量+C;
其中,a为执行时间训练参数,b为计算资源使用率训练参数,c为历史任务量训练参数,C为训练常量,i为正整数;计算资源使用率包括CPU时用力、内存使用率中的至少一种,所述计算子节点i在第N-1轮迭代任务中的历史数据任务量为所述计算子节点i在第N-1轮迭代任务中的分配的任务数据量。
结合第五方面至第五方面的第二种可能的实现方式中的任意一种,在第三种可能的实现方式中,所述根据每个计算子节点的预计执行时间判断所述第N轮迭代任务是否需要进行负载均衡包括:
确定在第N轮迭代任务中,所有计算子节点中预计执行时间最长的计算子节点,和预计执行时间最短的计算子节点;
获取所述预计执行时间最长的计算子节点与所述预计执行时间最短的计算子节点之间的预计执行时间差异率;
将所述时间差异率与预设差异率阈值进行比较,若所述时间差异率小于或等于所述预设差异率阈值,则确定第N轮迭代任务不需要进行负载均衡;若所述时间差异率大于所述预设差异率阈值,则确定第N轮迭代任务需要进行负载均衡。
结合第五方面至第五方面的第三种可能的实现方式中的任意一种,在第四种可能的实现方式中,所述根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据包括:
确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
根据每个空闲节点的预计执行时间以及所述标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直至所有过载节点需要移出的任务数据都迁移完成。
结合第五方面的第四种可能的实现方式,在第五种可能的实现方式中,所述根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量包括:
将每个过载节点的预计执行时间与所述标准执行时间之差除以所述标准执行时间,得到该过载节点的任务迁移比例;
将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任务迁移比例,得到该过载节点需要移出的任务数据量;
所述根据每个空闲节点的预计执行时间以及所述标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量包括:
将每个空闲节点的预计执行时间与所述标准执行时间之差的绝对值除以所述标准执行时间,得到该过空闲点的可移入任务比例;
将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
结合第五方面至第五方面的第五种可能的实现方式中的任意一种,在第六种可能的实现方式中,所述第N轮迭代任务中每个计算子节点的执行情况 信息包括:每个计算子节点在所述第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种;
其中,所述计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
结合第五方面的第二种可能的实现方式,在第七种可能的实现方式中,所述根据每个计算子节点的执行情况信息更新所述时间学习模型的训练参数包括:
根据每个计算子节点的执行情况信息更新所述时间学习模型的执行时间训练参数、计算资源使用率训练参数、历史任务数据量训练参数中的至少一个参数。
结合第五方面至第五方面的第其中可能的实现方式中的任意一种,在第八种可能的实现方式中,迭代任务是否结束的判断方法包括:
在每个计算子节点完成所述第N轮迭代任务后,判断N是否等于预设的最大迭代数,若N小于所述最大迭代数,则确定所述迭代任务未结束;若N等于所述最大迭代数,则确定所述迭代任务结束;
或者,
在每个计算子节点完成所述第N轮迭代任务后,判断所述第N轮迭代的输出结果是否满足收敛条件;若不满足所述收敛条件,则确定所述迭代任务未结束,若满足所述收敛条件,则确定所述迭代任务结束。
本发明实施例提供一种数据挖掘方法和节点,通过获取本轮迭代任务中每个计算子节点的预计执行时间,并根据预计执行时间为计算子节点分配对应的任务数据量,在本轮迭代任务执行后,收集本轮迭代任务中每个计算子节点的执行情况信息,并以此判断下一轮迭代任务是否要对每个计算子节点的任务数据量进行调整,并在按照调整后的任务数据量进行下一轮迭代任务;或者,根据时间学习模型获取本轮迭代任务中每个计算子节点的预计执行时间,并根据预计执行时间判断判断本轮迭代任务是否要进行负载均衡,若要进行负载均衡则对每个计算子节点分配的任务数据量进行调整,在本轮迭代任务执行后,收集本轮迭代任务中每个计算子节点的执行情况信息,并以此来更新时间学习模型的训练参数,并在下一轮迭代时重复上述过程。相 比现有技术在每轮迭代任务过程中重复的执行负载均衡而言,本发明实施例能够根据每个计算子节点的能力分配相应的任务数据量,并且能够根据上一轮的执行情况对本轮任务中每个计算子节点的任务数据量做出调整,从而能够避免有些不必要的负载均衡过程,降低网络开销,提高系统的数据挖掘性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种中心节点的结构示意图;
图2为本发明实施例提供的一种中心节点的分配单元的结构示意图;
图3为本发明实施例提供的一种中心节点的另一结构示意图;
图4为本发明实施例提供的另一种中心节点的结构示意图;
图5为本发明实施例提供的另一种中心节点的分配单元的结构示意图;
图6为本发明实施例提供的另一种中心节点的另一结构示意图;
图7为本发明实施例提供的又一种中心节点的结构示意图;
图8为本发明实施例提供的又一种中心节点的结构示意图;
图9为本发明实施例提供的一种数据挖掘系统的结构示意图;
图10为本发明实施例提供的一种数据挖掘方法的流程示意图;
图11为本发明实施例提供的另一种数据挖掘方法的流程示意图;
图12为本发明实施例提供的又一种数据挖掘方法的流程示意图;
图13为本发明实施例提供的迭代任务的执行流程示意图;
图14为本发明实施例提供的又一种数据挖掘方法的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获 得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种中心节点1,可应用于数据挖掘系统,如图1所示,中心节点1包括:
时间获取单元11,用于获取第N轮迭代任务中,每个计算子节点的预计执行时间;
分配单元12,用于根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;其中,任务数据为已获取的待挖掘的样本数据集的部分或全部数据;
信息获取单元13,用于在每个计算子节点根据分配的任务数据完成第N轮迭代任务后,若迭代任务未结束,则获取第N轮迭代任务中每个计算子节点的执行情况信息;
第一判断单元14,用于根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡,若需要进行负载均衡,则将N的值加1后重复执行获取第N轮迭代任务中,每个计算子节点的预计执行时间至根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡的步骤;若不需要进行负载均衡,则使每个计算子节点按照第N轮迭代任务中为该计算子节点分配的任务数据执行第N+1轮迭代任务,其中,N为正整数,N的起始值为1。
可选的,当N等于1时,时间获取单元11可以具体用于:
根据样本数据集的分布特征参数和每个计算子节点的计算资源获取每个计算子节点的预计执行时间;
其中,本数据集的分布特征参数包括:本数据集中各个数据的相同字段下的取值的平均值、方差、取值范围、不同取值的个数;
每个计算子节点的计算资源包括:该计算子节点的CPU频率、内存容量中的至少一种。
可选的,当N大于1时,时间获取单元11可以具体用于:
将每个计算子节点执行第N-1轮迭代任务的实际执行时间作为第N轮迭代任务中该计算子节点的预计执行时间。
可选的,如图2所示,分配单元12可以包括:
节点选择单元121,用于确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
移出任务量确定单元122,用于根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
移入任务量确定单元123,用于根据每个空闲节点的预计执行时间以及标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
转移单元124,用于按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直至所有过载节点需要移出的任务数据都迁移完成。
可选的,移出任务量确定单元122可以具体用于:
将每个过载节点的预计执行时间与标准执行时间之差除以标准执行时间,得到该过载节点的任务迁移比例;
将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任务迁移比例,得到该过载节点需要移出的任务数据量;
移入任务量确定单元123可以具体用于:
将每个空闲节点的预计执行时间与标准执行时间之差的绝对值除以标准执行时间,得到该过空闲点的可移入任务比例;
将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
可选的,第N轮迭代任务中每个计算子节点的执行情况信息包括:每个计算子节点在第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种;
其中,计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
可选的,第一判断单元124可以具体用于:
确定在第N轮迭代任务中,所有计算子节点中实际执行时间最长的计算子节点,和实际执行时间最短的计算子节点;
获取实际执行时间最长的计算子节点与实际执行时间最短的计算子节点之间的实际执行时间差异率;
将时间差异率与预设差异率阈值进行比较,若时间差异率小于或等于预设差异率阈值,则确定第N+1轮迭代任务不需要进行负载均衡;若时间差异率大于预设差异率阈值,则确定第N+1轮迭代任务需要进行负载均衡。
可选的,如图3所示,中心节点1还可以包括:第二判断单元125,可以具体用于:
在每个计算子节点完成第N轮迭代任务后,判断N是否等于预设的最大迭代数,若N小于最大迭代数,则确定迭代任务未结束;若N等于最大迭代数,则确定迭代任务结束;
或者,
在每个计算子节点完成第N轮迭代任务后,判断第N轮迭代的输出结果是否满足收敛条件;若不满足收敛条件,则确定迭代任务未结束,若满足收敛条件,则确定迭代任务结束。
本发明实施例提供一种中心节点,通过获取本轮迭代任务中每个计算子节点的预计执行时间,并根据预计执行时间为计算子节点分配对应的任务数据量,在本轮迭代任务执行后,收集本轮迭代任务中每个计算子节点的执行情况信息,并以此判断下一轮迭代任务是否要对每个计算子节点的任务数据量进行调整。相比现有技术在每轮迭代任务过程中重复的执行负载均衡而言,本发明实施例能够根据每个计算子节点的能力分配相应的任务数据量,并且能够根据上一轮的执行情况对本轮任务中每个计算子节点的任务数据量做出调整,从而能够避免有些不必要的负载均衡过程,降低网络开销,提高系统的数据挖掘性能。
本发明实施例提供另一种中心节点2,可应用于数据挖掘系统,如图4所示,中心节点2包括:
时间获取单元21,用于根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间;
第一判断单元22,用于根据每个计算子节点的预计执行时间判断第N轮迭代任务是否需要进行负载均衡;
分配单元23,用于当需要进行负载均衡时,根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;当不需要进行负载均衡时,不为每个计算子节点重分配任务数据;其中,任务数据为已获取的待挖掘的样本数据集的部分或全部数据;
信息获取单元24,用于在每个计算子节点根据分配的任务数据完成第N轮迭代任务后,获取第N轮迭代任务中每个计算子节点的执行情况信息;
更新单元25,用于根据每个计算子节点的执行情况信息更新时间学习模型的训练参数,若迭代任务未结束,则将N的值加1后利用更新后的时间学习模型重复执行根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间至根据每个计算子节点的执行情况信息更新时间学习模型的步骤。
可选的,时间学习模型可以是根据实际执行时间、计算资源使用率、历史任务数据量中的至少一个参数建立的。
可选的,时间学习模型可以包括:
计算子节点i在第N轮迭代任务中的预计执行时间=a*计算子节点i在第N-1轮迭代任务中的实际执行时间+b*计算子节点i在第N-1轮迭代任务中的计算资源使用率+c*计算子节点i在第N-1轮迭代任务中的历史任务数据量+C;
其中,a为执行时间训练参数,b为计算资源使用率训练参数,c为历史任务量训练参数,C为训练常量,i为正整数;计算资源使用率包括CPU时用力、内存使用率中的至少一种,计算子节点i在第N-1轮迭代任务中的历史任务数据量为计算子节点i在第N-1轮迭代任务中的分配的任务数据量。
可选的,第一判断单元可以22具体用于:
确定在第N轮迭代任务中,所有计算子节点中预计执行时间最长的计算子节点,和预计执行时间最短的计算子节点;
获取预计执行时间最长的计算子节点与预计执行时间最短的计算子节点之间的预计执行时间差异率;
将时间差异率与预设差异率阈值进行比较,若时间差异率小于或等于预设差异率阈值,则确定第N轮迭代任务不需要进行负载均衡;若时间差异率大于预设差异率阈值,则确定第N轮迭代任务需要进行负载均衡。
可选的,如图5所示,分配单元23可以包括:
节点选择单元231,用于确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
移出任务量确定单元232,用于根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
移入任务量确定单元233,用于根据每个空闲节点的预计执行时间以及标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
转移单元234,用于按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直至所有过载节点需要移出的任务数据都迁移完成。
可选的,
移出任务量确定单元232可以具体用于:
将每个过载节点的预计执行时间与标准执行时间之差除以标准执行时间,得到该过载节点的任务迁移比例;
将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任务迁移比例,得到该过载节点需要移出的任务数据量;
移入任务量确定单元233可以具体用于:
将每个空闲节点的预计执行时间与标准执行时间之差的绝对值除以标准执行时间,得到该过空闲点的可移入任务比例;
将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
可选的,第N轮迭代任务中每个计算子节点的执行情况信息包括:每个计算子节点在第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种;
其中,计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
可选的,更新单元具体25可以具体用于:
根据每个计算子节点的执行情况信息更新时间学习模型的执行时间训练参数、计算资源使用率训练参数、历史任务数据量训练参数中的至少一个参数。
可选的,如图6所示,中心节点2还可以包括:第二判断单元26,可以具体用于:
在每个计算子节点完成第N轮迭代任务后,判断N是否等于预设的最大迭代数,若N小于最大迭代数,则确定迭代任务未结束;若N等于最大迭代数,则确定迭代任务结束;
或者,
在每个计算子节点完成第N轮迭代任务后,判断第N轮迭代的输出结果是否满足收敛条件;若不满足收敛条件,则确定迭代任务未结束,若满足收敛条件,则确定迭代任务结束。
本发明实施例提供一种中心节点,通过根据时间学习模型获取本轮迭代任务中每个计算子节点的预计执行时间,并根据预计执行时间判断判断本轮迭代任务是否要进行负载均衡,若要进行负载均衡则对每个计算子节点分配的任务数据量进行调整,在本轮迭代任务执行后,收集本轮迭代任务中每个计算子节点的执行情况信息,并以此来更新时间学习模型的训练参数,并在下一轮迭代时重复上述过程。相比现有技术在每轮迭代任务过程中重复的执行负载均衡而言,本发明实施例能够根据每个计算子节点的能力分配相应的任务数据量,并且能够根据上一轮的执行情况对本轮任务中每个计算子节点的任务数据量做出调整,从而能够避免有些不必要的负载均衡过程,降低网络开销,提高系统的数据挖掘性能。
本发明实施例提供一种中心节点3,可应用于数据挖掘系统,如图7所示,中心节点3包括:处理器31、存储器32、输入/输出接口33,处理器31、 存储器32、输入/输出接口33通过总线34连接;其中,输入/输出接口33用于和其他网元交互,存储器32用于存储计算机程序321,处理器31用于执行计算机程序321用于:
获取第N轮迭代任务中,每个计算子节点的预计执行时间;
根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;其中,所述任务数据为已获取的待挖掘的样本数据集的部分或全部数据;
在每个计算子节点根据分配的任务数据完成第N轮迭代任务后,若迭代任务未结束,则获取第N轮迭代任务中每个计算子节点的执行情况信息;
根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡,若需要进行负载均衡,则将N的值加1后重复执行获取第N轮迭代任务中,每个计算子节点的预计执行时间至根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡的步骤;若不需要进行负载均衡,则使每个计算子节点按照第N轮迭代任务中为该计算子节点分配的任务数据执行第N+1轮迭代任务,其中,N为正整数,N的起始值为1。
可选的,当N等于1时,处理器31用于执行计算机程序321可以具体用于:
根据样本数据集的分布特征参数和每个计算子节点的计算资源获取每个计算子节点的预计执行时间;
其中,本数据集的分布特征参数包括:本数据集中各个数据的相同字段下的取值的平均值、方差、取值范围、不同取值的个数;
每个计算子节点的计算资源包括:该计算子节点的CPU频率、内存容量中的至少一种。
可选的,当N大于1时,处理器31用于执行计算机程序321可以具体用于:
将每个计算子节点执行第N-1轮迭代任务的实际执行时间作为第N轮迭代任务中该计算子节点的预计执行时间。
可选的,处理器31用于执行计算机程序321可以具体用于:
确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确 定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
根据每个空闲节点的预计执行时间以及标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直至所有过载节点需要移出的任务数据都迁移完成。
可选的,处理器31用于执行计算机程序321可以用于:
将每个过载节点的预计执行时间与标准执行时间之差除以标准执行时间,得到该过载节点的任务迁移比例;
将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任务迁移比例,得到该过载节点需要移出的任务数据量;
处理器31用于执行计算机程序321可以用于:
将每个空闲节点的预计执行时间与标准执行时间之差的绝对值除以标准执行时间,得到该过空闲点的可移入任务比例;
将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
可选的,第N轮迭代任务中每个计算子节点的执行情况信息包括:每个计算子节点在第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种;
其中,计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
可选的,处理器31用于执行计算机程序321可以具体用于:
确定在第N轮迭代任务中,所有计算子节点中实际执行时间最长的计算子节点,和实际执行时间最短的计算子节点;
获取实际执行时间最长的计算子节点与实际执行时间最短的计算子节点之间的实际执行时间差异率;
将时间差异率与预设差异率阈值进行比较,若时间差异率小于或等于预设差异率阈值,则确定第N+1轮迭代任务不需要进行负载均衡;若时间差异率大于预设差异率阈值,则确定第N+1轮迭代任务需要进行负载均衡。
可选的,处理器31用于执行计算机程序321还可以具体用于:
在每个计算子节点完成第N轮迭代任务后,判断N是否等于预设的最大迭代数,若N小于最大迭代数,则确定迭代任务未结束;若N等于最大迭代数,则确定迭代任务结束;
或者,
在每个计算子节点完成第N轮迭代任务后,判断第N轮迭代的输出结果是否满足收敛条件;若不满足收敛条件,则确定迭代任务未结束,若满足收敛条件,则确定迭代任务结束。
本发明实施例提供一种中心节点,通过获取本轮迭代任务中每个计算子节点的预计执行时间,并根据预计执行时间为计算子节点分配对应的任务数据量,在本轮迭代任务执行后,收集本轮迭代任务中每个计算子节点的执行情况信息,并以此判断下一轮迭代任务是否要对每个计算子节点的任务数据量进行调整。相比现有技术在每轮迭代任务过程中重复的执行负载均衡而言,本发明实施例能够根据每个计算子节点的能力分配相应的任务数据量,并且能够根据上一轮的执行情况对本轮任务中每个计算子节点的任务数据量做出调整,从而能够避免有些不必要的负载均衡过程,降低网络开销,提高系统的数据挖掘性能。
本发明实施例提供一种中心节点4,可应用于数据挖掘系统,如图8所示,中心节点4包括:处理器41、存储器42、输入/输出接口43,处理器41、存储器42、输入/输出接口43通过总线44连接;其中,输入/输出接口43用于和其他网元交互,存储器42用于存储计算机程序421,处理器41用于执行计算机程序421用于:
根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间;
根据每个计算子节点的预计执行时间判断第N轮迭代任务是否需要进行负载均衡;
若需要进行负载均衡,根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;若不需要进行负载均衡,不为每个计算子节点重分配任务数据;其中,所述任务数据为已获取的待挖掘的样本数据集的部分或全部数据;
在每个计算子节点根据分配的任务数据完成第N轮迭代任务后,获取第N轮迭代任务中每个计算子节点的执行情况信息;
根据每个计算子节点的执行情况信息更新时间学习模型的训练参数,若迭代任务未结束,则将N的值加1后利用更新后的时间学习模型重复执行根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间至根据每个计算子节点的执行情况信息更新时间学习模型的步骤。
可选的,时间学习模型可以是根据实际执行时间、计算资源使用率、历史任务数据量中的至少一个参数建立的。
可选的,时间学习模型可以包括:
计算子节点i在第N轮迭代任务中的预计执行时间=a*计算子节点i在第N-1轮迭代任务中的实际执行时间+b*计算子节点i在第N-1轮迭代任务中的计算资源使用率+c*计算子节点i在第N-1轮迭代任务中的历史任务数据量+C;
其中,a为执行时间训练参数,b为计算资源使用率训练参数,c为历史任务量训练参数,C为训练常量,i为正整数;计算资源使用率包括CPU时用力、内存使用率中的至少一种,计算子节点i在第N-1轮迭代任务中的历史任务数据量为计算子节点i在第N-1轮迭代任务中的分配的任务数据量。
可选的,处理器41用于执行计算机程序421可以具体用于:
确定在第N轮迭代任务中,所有计算子节点中预计执行时间最长的计算子节点,和预计执行时间最短的计算子节点;
获取预计执行时间最长的计算子节点与预计执行时间最短的计算子节点之间的预计执行时间差异率;
将时间差异率与预设差异率阈值进行比较,若时间差异率小于或等于预 设差异率阈值,则确定第N轮迭代任务不需要进行负载均衡;若时间差异率大于预设差异率阈值,则确定第N轮迭代任务需要进行负载均衡。
可选的,处理器41用于执行计算机程序421可以具体用于:
确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
根据每个空闲节点的预计执行时间以及标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直至所有过载节点需要移出的任务数据都迁移完成。
可选的,处理器41用于执行计算机程序421可以具体用于:
将每个过载节点的预计执行时间与标准执行时间之差除以标准执行时间,得到该过载节点的任务迁移比例;
将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任务迁移比例,得到该过载节点需要移出的任务数据量;
处理器41用于执行计算机程序421可以具体用于:
将每个空闲节点的预计执行时间与标准执行时间之差的绝对值除以标准执行时间,得到该过空闲点的可移入任务比例;
将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
可选的,第N轮迭代任务中每个计算子节点的执行情况信息可以包括:每个计算子节点在第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种;
其中,任务量为在第N轮迭代任务中的子数据块数量,计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
可选的,处理器41用于执行计算机程序421可以具体用于:
根据每个计算子节点的执行情况信息更新时间学习模型的执行时间训练参数、计算资源使用率训练参数、历史任务数据量训练参数中的至少一个参数。
可选的,处理器41用于执行计算机程序421还可以具体用于:
在每个计算子节点完成第N轮迭代任务后,判断N是否等于预设的最大迭代数,若N小于最大迭代数,则确定迭代任务未结束;若N等于最大迭代数,则确定迭代任务结束;
或者,
在每个计算子节点完成第N轮迭代任务后,判断第N轮迭代的输出结果是否满足收敛条件;若不满足收敛条件,则确定迭代任务未结束,若满足收敛条件,则确定迭代任务结束。
本发明实施例提供一种中心节点,通过根据时间学习模型获取本轮迭代任务中每个计算子节点的预计执行时间,并根据预计执行时间判断判断本轮迭代任务是否要进行负载均衡,若要进行负载均衡则对每个计算子节点分配的任务数据量进行调整,在本轮迭代任务执行后,收集本轮迭代任务中每个计算子节点的执行情况信息,并以此来更新时间学习模型的训练参数,并在下一轮迭代时重复上述过程。相比现有技术在每轮迭代任务过程中重复的执行负载均衡而言,本发明实施例能够根据每个计算子节点的能力分配相应的任务数据量,并且能够根据上一轮的执行情况对本轮任务中每个计算子节点的任务数据量做出调整,从而能够避免有些不必要的负载均衡过程,降低网络开销,提高系统的数据挖掘性能。
本发明实施例提供一种数据挖掘系统,如图9所示,所述系统包括:
前述实施例所述的任一种中心节点,以及至少两个计算子节点;其中每个计算子节点都设置有存储器。
需要说明的是,本实施例提供的上述任一中心节点以及数据挖掘系统可以用于实现下文所述各方法实施例,本实施例中各个单元的工作流程和工作 原理可以参见下各方法实施例中的描述。
本发明实施例提供一种数据挖掘方法,如图10所示,所述方法包括:
S101、获取第N轮迭代任务中,每个计算子节点的预计执行时间。
S102、根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;其中,任务数据为已获取的待挖掘的样本数据集的部分或全部数据。
S103、在每个计算子节点根据分配的任务数据完成第N轮迭代任务后,若迭代任务未结束,则获取第N轮迭代任务中每个计算子节点的执行情况信息。
S104、根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡,若需要进行负载均衡,则将N的值加1后重复执行S101~S104;若不需要进行负载均衡,则使每个计算子节点按照第N轮迭代任务中为该计算子节点分配的任务数据执行第N+1轮迭代任务,其中,N为正整数,N的起始值为1。
本实施例还提供另一种数据挖掘方法,如图11所示,包括:
S201、根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间。
S202、根据每个计算子节点的预计执行时间判断第N轮迭代任务是否需要进行负载均衡。
S203、若需要进行负载均衡,则根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;若不需要进行负载均衡,则不为每个计算子节点重分配任务数据;其中,任务数据为已获取的待挖掘的样本数据集的部分或全部数据。
S204、在每个计算子节点根据分配的任务数据完成第N轮迭代任务后,获取第N轮迭代任务中每个计算子节点的执行情况信息。
S205、根据每个计算子节点的执行情况信息更新时间学习模型的训练参数,若迭代任务未结束,则将N的值加1后利用更新后的时间学习模型重复执行S201~S205。
本发明实施例提供一种数据挖掘方法,通过获取本轮迭代任务中每个计算子节点的预计执行时间,并根据预计执行时间为计算子节点分配对应的任 务数据量,在本轮迭代任务执行后,收集本轮迭代任务中每个计算子节点的执行情况信息,并以此判断下一轮迭代任务是否要对每个计算子节点的任务数据量进行调整,并在按照调整后的任务数据量进行下一轮迭代任务;或者,根据时间学习模型获取本轮迭代任务中每个计算子节点的预计执行时间,并根据预计执行时间判断判断本轮迭代任务是否要进行负载均衡,若要进行负载均衡则对每个计算子节点分配的任务数据量进行调整,在本轮迭代任务执行后,收集本轮迭代任务中每个计算子节点的执行情况信息,并以此来更新时间学习模型的训练参数,并在下一轮迭代时重复上述过程。相比现有技术在每轮迭代任务过程中重复的执行负载均衡而言,本发明实施例能够根据每个计算子节点的能力分配相应的任务数据量,并且能够根据上一轮的执行情况对本轮任务中每个计算子节点的任务数据量做出调整,从而能够避免有些不必要的负载均衡过程,降低网络开销,提高系统的数据挖掘性能。
为了使本领域技术人员能够更清楚地理解本发明实施例提供的技术方案,下面通过具体的实施例,对本发明的实施例提供的数据挖掘方法进行详细说明,如图12所示,该方法包括:
S301、获取的待挖掘的样本数据集。
例如,从外部数据源导入数据集作为样本数据集到数据挖掘系统(以下简称:挖掘系统)中,常见外部数据源可以是数据仓库、数据库、开放式数据库连接(Open Database Connectivity,ODBC)以及保存在文件系统上的文件,该导入的数据集可以是由海量未处理数据构成的,可以采用列表的形式。
在获取样本数据集后,首先将样本数据集按照预设规则划分成多个子数据块,作为初始分配到挖掘系统中的各个计算子节点上的任务数据,由各个计算子节点储存。其中,预设规则可以为:将样本数据集平均划分成数据量相同的数据块分配给各个计算子节点,例如样本数据集有1000万行数据,要分给10个计算子节点,则可以给每个计算子节点分配100万行数据;或者,可以根据各个计算子节点的计算资源(CPU频率、内存容量等)进行划分,比如可以按照计算子节点内存的容量按比例划分。而后,将划分好的任务数据存储至对应的计算子节点的存储设备上,存储设备可以是硬盘,也可以是内存,当存储在硬盘的情况下,当挖掘任务开始时需要将要处理的数据 读到内存中进行挖掘过程。
S302、获取第N轮迭代任务中,每个计算子节点的预计执行时间。其中,N为正整数,N的起始值为1。
当N等于1时,即开始挖掘任务的第1轮迭代任务时,由于是首次执行轮迭代任务,所以需要预估本轮的执行时间,所以可以采用以下方式获取第1轮的预计执行时间:
根据样本数据集的分布特征参数和每个计算子节点的计算资源获取每个计算子节点的预计执行时间。其中,样本数据集的分布特征参数可以包括:本数据集中各个数据的相同字段下的取值的平均值、方差、取值范围、不同取值的个数。比如,以列表形式的样本数据集为例,同一列下的取值就属于相同字段下的取值,获取该列中所有取值的平均值、方差、取值范围、不同取值的个数就得到了样本数据集该字段数据的分布特征参数,同理可以获得整个样本数据集的分布特征参数。而每个计算子节点的计算资源可以包括:计算子节点的CPU频率、内存容量中的至少一种。
示例性的,可以利用不同取值的个数乘以一个预设算法的经验系数(可以是算法的复杂度)再除以计算子节点的CPU的运算频率得到该计算子节点的预计执行时间。其中,上述预设算法可以根据实际需要选取,本实施例不做限定,并且上述计算方法也仅仅是举例,包括但不限于此。
当N大于1时,即执行挖掘任务的非首轮迭代任务时,可以将每个计算子节点执行第N-1轮迭代任务的实际执行时间作为第N轮迭代任务中该计算子节点的预计执行时间。
另外,除了上述样本数据集的分布特征参数和每个计算子节点的计算资源之外,还可以考虑第N-1轮迭代任务中每个计算子节点的任务数据量、计算子节点的硬件配置、网络负载等参数中的一种或多种来获取预计执行时间。
S303、根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据。
具体的,包括:
确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确 定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
根据每个空闲节点的预计执行时间以及标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直至所有过载节点需要移出的任务数据都迁移完成。
其中,获取每个过载节点需要移出的任务数据量可以通过:
将每个过载节点的预计执行时间与标准执行时间之差除以标准执行时间,得到该过载节点的任务迁移比例;
将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任务迁移比例,得到该过载节点需要移出的任务数据量。
获取每个空闲节点的可移入的任务数据量可以包括:
将每个空闲节点的预计执行时间与标准执行时间之差的绝对值除以标准执行时间,得到该过空闲点的可移入任务比例;
将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
示例性的,假设挖掘系统中有8个计算子节点,分别为节点1、节点2节点3、节点4、节点5、节点6、节点7、节点8。假设标准执行时间为100s,节点1-8的预计执行时间为如表1所示,节点1-8上已存储的数据任务量如表2所示:
表1
Figure PCTCN2015080677-appb-000001
表2
Figure PCTCN2015080677-appb-000002
根据表1中的各计算子节点的预计执行时间可以确定,节点1、节点2、节点4为过载节点、节点6、节点7、节点8为空闲节点。
可以算出,节点1的任务迁移比例=(130-100)÷100×100%=30%,再利用30%×1000万行可得节点1需要移出的任务数据量为300万行,同理可得节点2、节点4需要移出的任务数据量分别为180万行和85万行,节点6的可移入任务比例=(100-60)÷100×100%=40%,再利用40%×1000万行可得节点1可移入的任务数据量为400万行,同理可得,节点7、节点8可移入的任务数据量分别为120万行和95万行。
而后,进行转移数据,由表1可以看出节点1、节点2、节点4、节点6、节点7、节点8的预计执行时间的排序由高到低依次为:节点1、节点2、节点4、节点8、节点7、节点6。所以,在转移数据时,先将节点1需要移出的任务数据优先移入至节点6,根据上述计算可知,在将节点1需要移出的任务数据全部移入节点6后,节点6还有剩余空间,而后再将节点2需要移出的任务数据移入至节点6,当节点6可移入的任务数据量用完时,再将节点2需要移出的任务数据移入至节点7,以此类推,直至节点1、节点2、节点4中需要移出的任务数据都迁移完成。
S304、由各个计算子节根据分配的任务数据点执行第N轮迭代任务。
示例性的,迭代任务可以利用Mahout平台(Apache软件基金会的一个可扩展的机器学习和数据挖掘平台),其架构基于MapReduce框架,其计算流程包括Map(映射)和Reduce(化简)两个步骤,其中,执行Map是根据数据获得基于键值对的中间结果,执行Reduce是将键值对合并汇总生成输出结果。如图13所示,基于MapReduce的Mahout在执行迭代任务的过程中,重复执行Map和Reduce两个步骤。每一次MapReduce任务执行完,输出其结果,再进行生成模型的效果检验,如果满足迭代任务的要求,则生成的模型为最终结果(可以理解为模型参数被调整到最佳的数值);否则继续下一轮迭代,重复执行Map和Reduce步骤。
S305、在第N轮迭代任务完成后,判断迭代任务是否结束,若迭代任务未结束则执行S306;否则,执行S308。
示例性的,迭代任务是否结束的判断方法可以包括:
在每个计算子节点完成第N轮迭代任务后,判断N是否等于预设的最大迭代数,若N小于最大迭代数,则确定迭代任务未结束;若N等于最大迭代数,则确定迭代任务结束;
比如,最大迭代数被设置为200,若N小于200,则迭代任务未结束,若N等于200,则确定迭代任务结束。
或者,
在每个计算子节点完成第N轮迭代任务后,判断第N轮迭代的输出结果是否满足收敛条件(比如,迭代所用的模型的参数是否已被调整为最佳参数);若不满足收敛条件,则确定迭代任务未结束,若满足收敛条件,则确定迭代任务结束。
S306、获取第N轮迭代任务中每个计算子节点的执行情况信息。
每个计算子节点的执行情况信息可以为:每个计算子节点在第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种。其中,计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
S307、根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡。若需要进行负载均衡,则N的值加1后重复执行 S302-S307;若不需要进行负载均衡,则每个计算子节点按照第N轮迭代任务中为该计算子节点分配的任务数据直接执行第N+1轮迭代任务。
示例性的,可以首先确定在第N轮迭代任务中,所有计算子节点中实际执行时间最长的计算子节点,和实际执行时间最短的计算子节点;
获取实际执行时间最长的计算子节点与实际执行时间最短的计算子节点之间的实际执行时间差异率;
将时间差异率与预设差异率阈值进行比较,若时间差异率小于或等于预设差异率阈值,则确定第N+1轮迭代任务不需要进行负载均衡;若时间差异率大于预设差异率阈值,则确定第N+1轮迭代任务需要进行负载均衡。
比如,差异率阈值设置为10%,假设第N轮迭代任务中,实际执行时间最长的计算子节点的实际执行时间为120s,实际执行时间最短的计算子节点的实际执行时间为100s,则这两个计算子节点实际执行时间的差异率为20%,大于差异率阈值,则确定第N+1轮迭代任务需要进行负载均衡;又例如,第N轮迭代任务中,实际执行时间最长的计算子节点的实际执行时间为105s,实际执行时间最短的计算子节点的实际执行时间为100s,则这两个计算子节点实际执行时间的差异率为5%,小于差异率阈值,则确定第N+1轮迭代任务不需要进行负载均衡。
S308、结束数据挖掘任务。
在本发明实施例的提供的数据挖掘方法的另一种实现方式中,如图14所示,该方法包括:
S401、获取的待挖掘的样本数据集(具体步骤与S301完全相同,可参照S301,此处不再赘述)。
S402、根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间。
示例性的,时间学习模型可以是根据实际执行时间、计算资源使用率、历史任务数据量中的至少一个参数建立的。
例如,该模型可以包括:
计算子节点i在第N轮迭代任务中的预计执行时间=a*计算子节点i在第N-1轮迭代任务中的实际执行时间+b*计算子节点i在第N-1轮迭代任务中的 计算资源使用率+c*计算子节点i在第N-1轮迭代任务中的历史数据任务量+C;
其中,a为执行时间训练参数,b为计算资源使用率训练参数,c为历史任务量训练参数,C为训练常量,i为正整数;计算资源使用率包括CPU时用力、内存使用率中的至少一种,计算子节点i在第N-1轮迭代任务中的历史数据任务量为计算子节点i在第N-1轮迭代任务中的分配的任务数据量,计算子节点i为数据挖掘系统中的任意一个计算子节点。
比如,假设将a设置为0.95,b设置为10,c设置为0(可以理解为不考虑历史任务数据量训练参数),C设置为0.5,假设第N-1轮迭代任务中计算子节点i的实际执行时间为100s,计算资源使用率取计算子节点i的CPU使用率,并假设为50%,则计算子节点i在第N轮迭代任务中的预计执行时间=0.95×100+10×50%+0.5=100.5s。
另外,除了上述实际执行时间、计算资源使用率、历史任务数据量之外,还可以考虑第N-1轮迭代任务中每个计算子节点的任务数据量、计算子节点的硬件配置、网络负载等参数中的一种或多种来获取预计执行时间。
S403、根据每个计算子节点的预计执行时间判断第N轮迭代任务是否需要进行负载均衡。若要进行负载均衡,则执行S404;否则,直接执行S405。
具体的,可以包括:
确定在第N轮迭代任务中,所有计算子节点中预计执行时间最长的计算子节点,和预计执行时间最短的计算子节点;
获取预计执行时间最长的计算子节点与预计执行时间最短的计算子节点之间的预计执行时间差异率;
将时间差异率与预设差异率阈值进行比较,若时间差异率小于或等于预设差异率阈值,则确定第N轮迭代任务不需要进行负载均衡;若时间差异率大于预设差异率阈值,则确定第N轮迭代任务需要进行负载均衡。
比如,差异率阈值设置为10%,假设第N轮迭代任务中,预计执行时间最长的计算子节点的预计执行时间为120s,预计执行时间最短的计算子节点的预计执行时间为95s,则这两个计算子节点预计执行时间的差异率为26.3%,大于差异率阈值,则确定第N+1轮迭代任务需要进行负载均衡;又 例如,第N轮迭代任务中,预计执行时间最长的计算子节点的预计执行时间为107s,预计执行时间最短的计算子节点的预计执行时间为100s,则这两个计算子节点预计执行时间的差异率为7%,小于差异率阈值,则确定第N+1轮迭代任务不需要进行负载均衡。
S404、根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据(具体步骤与S303完全相同,可参照S303,此处不再赘述)。
S405、由各个计算子节根据分配的任务数据点执行第N轮迭代任务(具体步骤与S304完全相同,可参照S304,此处不再赘述)。
S406、获取第N轮迭代任务中每个计算子节点的执行情况信息(具体步骤与S306完全相同,可参照S306,此处不再赘述)。
S407、根据每个计算子节点的执行情况信息更新时间学习模型的训练参数。
具体的,可以根据每个计算子节点的执行情况信息更新时间学习模型的执行时间训练参数、计算资源使用率训练参数、历史任务数据量训练参数中的至少一个参数。
S408、在第N轮迭代任务完成后,判断迭代任务是否结束,若迭代任务未结束则执行利用更新后的时间学习模型重复执行S402-S408;否则,执行S409。
S409、结束数据挖掘任务。
本发明实施例提供一种数据挖掘方法,通过获取本轮迭代任务中每个计算子节点的预计执行时间,并根据预计执行时间为计算子节点分配对应的任务数据量,在本轮迭代任务执行后,收集本轮迭代任务中每个计算子节点的执行情况信息,并以此判断下一轮迭代任务是否要对每个计算子节点的任务数据量进行调整,并在按照调整后的任务数据量进行下一轮迭代任务;或者,根据时间学习模型获取本轮迭代任务中每个计算子节点的预计执行时间,并根据预计执行时间判断判断本轮迭代任务是否要进行负载均衡,若要进行负载均衡则对每个计算子节点分配的任务数据量进行调整,在本轮迭代任务执行后,收集本轮迭代任务中每个计算子节点的执行情况信息,并以此来更新时间学习模型的训练参数,并在下一轮迭代时重复上述过程。相比现有技术 在每轮迭代任务过程中重复的执行负载均衡而言,本发明实施例能够根据每个计算子节点的能力分配相应的任务数据量,并且能够根据上一轮的执行情况对本轮任务中每个计算子节点的任务数据量做出调整,从而能够避免有些不必要的负载均衡过程,降低网络开销,提高系统的数据挖掘性能。
在本发明所提供的几个实施例中,应该理解到,所揭露的节点、系统和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修 改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (30)

  1. 一种中心节点,应用于数据挖掘系统,其特征在于,所述中心节点包括:
    时间获取单元,用于获取第N轮迭代任务中,每个计算子节点的预计执行时间;
    分配单元,用于根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;其中,所述任务数据为已获取的待挖掘的样本数据集的部分或全部数据;
    信息获取单元,用于在每个计算子节点根据分配的任务数据完成所述第N轮迭代任务后,若迭代任务未结束,则获取所述第N轮迭代任务中每个计算子节点的执行情况信息;
    第一判断单元,用于根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡,若需要进行负载均衡,则将N的值加1后重复执行所述获取第N轮迭代任务中,每个计算子节点的预计执行时间至所述根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡的步骤;若不需要进行负载均衡,则使每个计算子节点按照第N轮迭代任务中为该计算子节点分配的任务数据执行所述第N+1轮迭代任务,其中,N为正整数,N的起始值为1。
  2. 根据权利要求1所述的中心节点,其特征在于,当N等于1时,所述时间获取单元具体用于:
    根据所述样本数据集的分布特征参数和每个计算子节点的计算资源获取每个计算子节点的预计执行时间;
    其中,所述本数据集的分布特征参数包括:所述本数据集中各个数据的相同字段下的取值的平均值、方差、取值范围、不同取值的个数;
    每个计算子节点的计算资源包括:该计算子节点的CPU频率、内存容量中的至少一种。
  3. 根据权利要求1所述的中心节点,其特征在于,当N大于1时,所述时间获取单元具体用于:
    将每个计算子节点执行第N-1轮迭代任务的实际执行时间作为所述第N 轮迭代任务中该计算子节点的预计执行时间。
  4. 根据权利要求1-3任一所述的中心节点,其特征在于,所述分配单元包括:
    节点选择单元,用于确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
    移出任务量确定单元,用于根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
    移入任务量确定单元,用于根据每个空闲节点的预计执行时间以及所述标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
    转移单元,用于按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直至所有过载节点需要移出的任务数据都迁移完成。
  5. 根据权利要求4所述的中心节点,其特征在于,
    所述移出任务量确定单元具体用于:
    将每个过载节点的预计执行时间与所述标准执行时间之差除以所述标准执行时间,得到该过载节点的任务迁移比例;
    将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任务迁移比例,得到该过载节点需要移出的任务数据量;
    所述移入任务量确定单元具体用于:
    将每个空闲节点的预计执行时间与所述标准执行时间之差的绝对值除以所述标准执行时间,得到该过空闲点的可移入任务比例;
    将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
  6. 根据权利要求1-5任一所述的中心节点,其特征在于,所述第N轮 迭代任务中每个计算子节点的执行情况信息包括:每个计算子节点在所述第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种;
    其中,所述计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
  7. 根据权利要求6所述的中心节点,其特征在于,所述第一判断单元具体用于:
    确定在第N轮迭代任务中,所有计算子节点中实际执行时间最长的计算子节点,和实际执行时间最短的计算子节点;
    获取所述实际执行时间最长的计算子节点与所述实际执行时间最短的计算子节点之间的实际执行时间差异率;
    将所述时间差异率与预设差异率阈值进行比较,若所述时间差异率小于或等于所述预设差异率阈值,则确定第N+1轮迭代任务不需要进行负载均衡;若所述时间差异率大于所述预设差异率阈值,则确定第N+1轮迭代任务需要进行负载均衡。
  8. 根据权利要求1-7任一所述的中心节点,其特征在于,所述中心节点还包括:第二判断单元,具体用于:
    在每个计算子节点完成所述第N轮迭代任务后,判断N是否等于预设的最大迭代数,若N小于所述最大迭代数,则确定所述迭代任务未结束;若N等于所述最大迭代数,则确定所述迭代任务结束;
    或者,
    在每个计算子节点完成所述第N轮迭代任务后,判断所述第N轮迭代的输出结果是否满足收敛条件;若不满足所述收敛条件,则确定所述迭代任务未结束,若满足所述收敛条件,则确定所述迭代任务结束。
  9. 一种中心节点,应用于数据挖掘系统,其特征在于,所述中心节点包括:
    时间获取单元,用于根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间;
    第一判断单元,用于根据每个计算子节点的预计执行时间判断所述第N 轮迭代任务是否需要进行负载均衡;
    分配单元,用于当需要进行负载均衡时,根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;当不需要进行负载均衡时,不为每个计算子节点重分配任务数据;其中,所述任务数据为已获取的待挖掘的样本数据集的部分或全部数据;
    信息获取单元,用于在每个计算子节点根据分配的任务数据完成所述第N轮迭代任务后,获取所述第N轮迭代任务中每个计算子节点的执行情况信息;
    更新单元,用于根据每个计算子节点的执行情况信息更新所述时间学习模型的训练参数,若所述迭代任务未结束,则将N的值加1后利用更新后的时间学习模型重复执行所述根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间至所述根据每个计算子节点的执行情况信息更新所述时间学习模型的步骤。
  10. 根据权利要求9所述的中心节点,其特征在于,所述时间学习模型是根据实际执行时间、计算资源使用率、历史任务数据量中的至少一个参数建立的。
  11. 根据权利要求10所述的中心节点,其特征在于,所述时间学习模型包括:
    计算子节点i在第N轮迭代任务中的预计执行时间=a*计算子节点i在第N-1轮迭代任务中的实际执行时间+b*计算子节点i在第N-1轮迭代任务中的计算资源使用率+c*计算子节点i在第N-1轮迭代任务中的历史数据任务量+C;
    其中,a为执行时间训练参数,b为计算资源使用率训练参数,c为历史任务量训练参数,C为训练常量,i为正整数;计算资源使用率包括CPU时用力、内存使用率中的至少一种,所述计算子节点i在第N-1轮迭代任务中的历史数据任务量为所述计算子节点i在第N-1轮迭代任务中的分配的任务数据量。
  12. 根据权利要求9-11任一所述的中心节点,其特征在于,所述第一判断单元具体用于:
    确定在第N轮迭代任务中,所有计算子节点中预计执行时间最长的计算子节点,和预计执行时间最短的计算子节点;
    获取所述预计执行时间最长的计算子节点与所述预计执行时间最短的计算子节点之间的预计执行时间差异率;
    将所述时间差异率与预设差异率阈值进行比较,若所述时间差异率小于或等于所述预设差异率阈值,则确定第N轮迭代任务不需要进行负载均衡;若所述时间差异率大于所述预设差异率阈值,则确定第N轮迭代任务需要进行负载均衡。
  13. 根据权利要求9-12任一所述的中心节点,其特征在于,所述分配单元包括:
    节点选择单元,用于确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
    移出任务量确定单元,用于根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
    移入任务量确定单元,用于根据每个空闲节点的预计执行时间以及所述标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
    转移单元,用于按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直至所有过载节点需要移出的任务数据都迁移完成。
  14. 根据权利要求13所述的中心节点,其特征在于,
    所述移出任务量确定单元具体用于:
    将每个过载节点的预计执行时间与所述标准执行时间之差除以所述标准执行时间,得到该过载节点的任务迁移比例;
    将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任 务迁移比例,得到该过载节点需要移出的任务数据量;
    所述移入任务量确定单元具体用于:
    将每个空闲节点的预计执行时间与所述标准执行时间之差的绝对值除以所述标准执行时间,得到该过空闲点的可移入任务比例;
    将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
  15. 根据权利要求9-14任一所述的中心节点,其特征在于,所述第N轮迭代任务中每个计算子节点的执行情况信息包括:每个计算子节点在所述第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种;
    其中,所述计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
  16. 根据权利要求11所述的中心节点,其特征在于,所述更新单元具体用于:
    根据每个计算子节点的执行情况信息更新所述时间学习模型的所述执行时间训练参数、所述计算资源使用率训练参数、所述历史任务数据量训练参数中的至少一个参数。
  17. 一种数据挖掘方法,其特征在于,所述方法包括:
    获取第N轮迭代任务中,每个计算子节点的预计执行时间;
    根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;其中,所述任务数据为已获取的待挖掘的样本数据集的部分或全部数据;
    在每个计算子节点根据分配的任务数据完成所述第N轮迭代任务后,若迭代任务未结束,则获取所述第N轮迭代任务中每个计算子节点的执行情况信息;
    根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡,若需要进行负载均衡,则将N的值加1后重复执行所述获取第N轮迭代任务中,每个计算子节点的预计执行时间至所述根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡的步骤;若不需要进行负载均衡,则使每个计算子节点按照第N轮迭代任务中为该计 算子节点分配的任务数据执行所述第N+1轮迭代任务,其中,N为正整数,N的起始值为1。
  18. 根据权利要求17所述的方法,其特征在于,当N等于1时,所述获取第N轮迭代任务中,每个计算子节点的预计执行时间包括:
    根据所述样本数据集的分布特征参数和每个计算子节点的计算资源获取每个计算子节点的预计执行时间;
    其中,所述本数据集的分布特征参数包括:所述本数据集中各个数据的相同字段下的取值的平均值、方差、取值范围、不同取值的个数;
    每个计算子节点的计算资源包括:该计算子节点的CPU频率、内存容量中的至少一种。
  19. 根据权利要求17所述的方法,其特征在于,当N大于1时,所述获取第N轮迭代任务中,每个计算子节点的预计执行时间包括:
    将每个计算子节点执行第N-1轮迭代任务的实际执行时间作为所述第N轮迭代任务中该计算子节点的预计执行时间。
  20. 根据权利要求17-19任一所述的方法,其特征在于,所述根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据包括:
    确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
    根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
    根据每个空闲节点的预计执行时间以及所述标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
    按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直至所有过载节点需要移出的任务数据都迁移完成。
  21. 根据权利要求20所述的方法,其特征在于,
    所述根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量包括:
    将每个过载节点的预计执行时间与所述标准执行时间之差除以所述标准执行时间,得到该过载节点的任务迁移比例;
    将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任务迁移比例,得到该过载节点需要移出的任务数据量;
    所述根据每个空闲节点的预计执行时间以及所述标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量包括:
    将每个空闲节点的预计执行时间与所述标准执行时间之差的绝对值除以所述标准执行时间,得到该过空闲点的可移入任务比例;
    将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
  22. 根据权利要求17-21任一所述的方法,其特征在于,所述第N轮迭代任务中每个计算子节点的执行情况信息包括:每个计算子节点在所述第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种;
    其中,所述计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
  23. 根据权利要求22所述的方法,其特征在于,所述根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡包括:
    确定在第N轮迭代任务中,所有计算子节点中实际执行时间最长的计算子节点,和实际执行时间最短的计算子节点;
    获取所述实际执行时间最长的计算子节点与所述实际执行时间最短的计算子节点之间的实际执行时间差异率;
    将所述时间差异率与预设差异率阈值进行比较,若所述时间差异率小于或等于所述预设差异率阈值,则确定第N+1轮迭代任务不需要进行负载均衡;若所述时间差异率大于所述预设差异率阈值,则确定第N+1轮迭代任务 需要进行负载均衡。
  24. 一种数据挖掘方法,其特征在于,所述方法包括:
    根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间;
    根据每个计算子节点的预计执行时间判断所述第N轮迭代任务是否需要进行负载均衡;
    若需要进行负载均衡,则根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;若不需要进行负载均衡,不为每个计算子节点重分配任务数据;其中,所述任务数据为已获取的待挖掘的样本数据集的部分或全部数据;
    在每个计算子节点根据分配的任务数据完成所述第N轮迭代任务后,获取所述第N轮迭代任务中每个计算子节点的执行情况信息;
    根据每个计算子节点的执行情况信息更新所述时间学习模型的训练参数,若所述迭代任务未结束,则将N的值加1后利用更新后的时间学习模型重复执行所述根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间至所述根据每个计算子节点的执行情况信息更新所述时间学习模型的步骤;其中,N为正整数,N的起始值为1。
  25. 根据权利要求24所述的方法,其特征在于,所述时间学习模型是根据实际执行时间、计算资源使用率、历史任务数据量中的至少一个参数建立的。
  26. 根据权利要求25所述的方法,其特征在于,所述时间学习模型包括:
    计算子节点i在第N轮迭代任务中的预计执行时间=a*计算子节点i在第N-1轮迭代任务中的实际执行时间+b*计算子节点i在第N-1轮迭代任务中的计算资源使用率+c*计算子节点i在第N-1轮迭代任务中的历史数据任务量+C;
    其中,a为执行时间训练参数,b为计算资源使用率训练参数,c为历史任务量训练参数,C为训练常量,i为正整数;计算资源使用率包括CPU时用力、内存使用率中的至少一种,所述计算子节点i在第N-1轮迭代任务中 的历史数据任务量为所述计算子节点i在第N-1轮迭代任务中的分配的任务数据量。
  27. 根据权利要求24-26任一所述的方法,其特征在于,所述根据每个计算子节点的预计执行时间判断所述第N轮迭代任务是否需要进行负载均衡包括:
    确定在第N轮迭代任务中,所有计算子节点中预计执行时间最长的计算子节点,和预计执行时间最短的计算子节点;
    获取所述预计执行时间最长的计算子节点与所述预计执行时间最短的计算子节点之间的预计执行时间差异率;
    将所述时间差异率与预设差异率阈值进行比较,若所述时间差异率小于或等于所述预设差异率阈值,则确定第N轮迭代任务不需要进行负载均衡;若所述时间差异率大于所述预设差异率阈值,则确定第N轮迭代任务需要进行负载均衡。
  28. 根据权利要求24-26任一所述的方法,其特征在于,所述根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据包括:
    确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
    根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
    根据每个空闲节点的预计执行时间以及所述标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
    按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直至所有过载节点需要移出的任务数据都迁移完成。
  29. 根据权利要求28所述的方法,其特征在于,
    所述根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量包括:
    将每个过载节点的预计执行时间与所述标准执行时间之差除以所述标准执行时间,得到该过载节点的任务迁移比例;
    将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任务迁移比例,得到该过载节点需要移出的任务数据量;
    所述根据每个空闲节点的预计执行时间以及所述标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量包括:
    将每个空闲节点的预计执行时间与所述标准执行时间之差的绝对值除以所述标准执行时间,得到该过空闲点的可移入任务比例;
    将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
  30. 根据权利要求24-29任一所述的方法,其特征在于,所述第N轮迭代任务中每个计算子节点的执行情况信息包括:每个计算子节点在所述第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种;
    其中,所述计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
PCT/CN2015/080677 2014-06-27 2015-06-03 数据挖掘方法和节点 WO2015196911A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP15811909.9A EP3139270A4 (en) 2014-06-27 2015-06-03 Data mining method and node
US15/391,350 US10102038B2 (en) 2014-06-27 2016-12-27 Data mining method and node

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201410302143.8 2014-06-27
CN201410302143.8A CN105446979B (zh) 2014-06-27 2014-06-27 数据挖掘方法和节点

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/391,350 Continuation US10102038B2 (en) 2014-06-27 2016-12-27 Data mining method and node

Publications (1)

Publication Number Publication Date
WO2015196911A1 true WO2015196911A1 (zh) 2015-12-30

Family

ID=54936738

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/080677 WO2015196911A1 (zh) 2014-06-27 2015-06-03 数据挖掘方法和节点

Country Status (4)

Country Link
US (1) US10102038B2 (zh)
EP (1) EP3139270A4 (zh)
CN (1) CN105446979B (zh)
WO (1) WO2015196911A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017215339A1 (zh) * 2016-06-14 2017-12-21 武汉斗鱼网络科技有限公司 基于rbf神经网络的搜索集群优化方法及系统
CN110096376A (zh) * 2019-04-03 2019-08-06 平安普惠企业管理有限公司 一种数据转移方法及相关设备

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016106549A1 (en) * 2014-12-30 2016-07-07 Teradata Us, Inc. Distributed sequential pattern mining (spm) using static task distribution strategy
JP2016186704A (ja) * 2015-03-27 2016-10-27 富士通株式会社 情報処理装置、情報処理システム及びプログラム
CN105912390A (zh) * 2016-04-07 2016-08-31 四川大学 云计算环境下基于模板的任务调度策略
CN106339260B (zh) * 2016-08-19 2020-11-20 北京小米移动软件有限公司 基于Jenkins平台的任务分配方法及装置
US11334391B2 (en) * 2017-04-17 2022-05-17 Red Hat, Inc. Self-programmable and self-tunable resource scheduler for jobs in cloud computing
CN107169513B (zh) * 2017-05-05 2019-10-18 第四范式(北京)技术有限公司 控制数据使用顺序的分布式机器学习系统及其方法
CN107133332B (zh) * 2017-05-11 2020-10-16 广州视源电子科技股份有限公司 一种查询任务的分配方法及装置
US10747546B2 (en) * 2017-06-19 2020-08-18 Mitsubishi Electric Corporation Distributed allocation device, distributed allocation system, and distributed allocation method
CN108197835B (zh) * 2018-02-05 2022-02-15 北京航空航天大学 任务分配方法、装置、计算机可读存储介质及电子设备
CN113098773B (zh) * 2018-03-05 2022-12-30 华为技术有限公司 数据处理方法、装置及系统
CN108681482B (zh) * 2018-05-16 2020-12-01 腾讯科技(深圳)有限公司 基于图数据的任务调度方法和装置
CN109144689B (zh) * 2018-06-29 2023-06-06 华为云计算技术有限公司 任务调度方法、装置及计算机程序产品
CN109901921B (zh) * 2019-02-22 2022-02-11 北京致远互联软件股份有限公司 任务队列执行时间预测方法、装置及实现装置
CN110046048B (zh) * 2019-04-18 2021-09-28 杭州电子科技大学 一种基于工作量自适应快速重分配的负载均衡方法
CN110362611B (zh) * 2019-07-12 2021-07-09 拉卡拉支付股份有限公司 一种数据库查询方法、装置、电子设备及存储介质
CN110727516B (zh) * 2019-10-12 2020-08-28 江苏卫健信息科技有限公司 一种数据分析任务的分配方法
CN111651426A (zh) * 2020-04-30 2020-09-11 平安科技(深圳)有限公司 数据迁移方法、装置及计算机可读存储介质
CN112860763B (zh) * 2021-02-08 2022-12-23 南京苏宁软件技术有限公司 实时流数据处理方法、装置、计算机设备和存储介质
CN113535771B (zh) * 2021-06-21 2023-11-28 跬云(上海)信息科技有限公司 持续迭代优化的预计算方法和装置
CN113392092A (zh) * 2021-07-06 2021-09-14 山东电力工程咨询院有限公司 一种数据中心的数据库管理方法及系统
CN113723180B (zh) * 2021-07-19 2023-08-01 山东大学 构建服务机器人主动物品检测模型数据集的方法和系统
CN114201296B (zh) * 2021-12-09 2023-07-21 厦门美亚亿安信息科技有限公司 一种基于流式处理平台的数据平衡方法和系统
CN114357875B (zh) * 2021-12-27 2022-09-02 广州龙数科技有限公司 基于机器学习的智能数据处理系统
CN115174695B (zh) * 2022-07-18 2024-01-26 中软航科数据科技(珠海横琴)有限公司 一种用于分布式网络资源的调度系统及方法
CN117573375B (zh) * 2024-01-15 2024-04-02 上海交通大学四川研究院 一种面向自适应解耦方程的动态负载平衡并行计算方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070157206A1 (en) * 2005-12-30 2007-07-05 Ryan Rakvic Load balancing for multi-threaded applications via asymmetric power throttling
CN101184031A (zh) * 2007-12-03 2008-05-21 浙江大学 面向网络多媒体传输服务的客户端主动性负载平衡方法
CN101605092A (zh) * 2009-07-10 2009-12-16 浪潮电子信息产业股份有限公司 一种基于内容的负载均衡系统
CN102831012A (zh) * 2011-06-16 2012-12-19 日立(中国)研究开发有限公司 多节点分布式系统中的任务调度装置和任务调度方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5630129A (en) * 1993-12-01 1997-05-13 Sandia Corporation Dynamic load balancing of applications
US7590984B2 (en) * 2003-05-29 2009-09-15 International Business Machines Corporation System and method for balancing a computing load among computing resources in a distributed computing problem
CN101764835B (zh) 2008-12-25 2012-09-05 华为技术有限公司 基于MapReduce编程架构的任务分配方法及装置
US8719833B2 (en) * 2010-06-24 2014-05-06 Sap Ag Adaptive demand-driven load balancing
US8645454B2 (en) * 2010-12-28 2014-02-04 Canon Kabushiki Kaisha Task allocation multiple nodes in a distributed computing system
CN103257896B (zh) * 2013-01-31 2016-09-28 南京理工大学连云港研究院 一种云环境下的Max-D作业调度方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070157206A1 (en) * 2005-12-30 2007-07-05 Ryan Rakvic Load balancing for multi-threaded applications via asymmetric power throttling
CN101184031A (zh) * 2007-12-03 2008-05-21 浙江大学 面向网络多媒体传输服务的客户端主动性负载平衡方法
CN101605092A (zh) * 2009-07-10 2009-12-16 浪潮电子信息产业股份有限公司 一种基于内容的负载均衡系统
CN102831012A (zh) * 2011-06-16 2012-12-19 日立(中国)研究开发有限公司 多节点分布式系统中的任务调度装置和任务调度方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3139270A4 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017215339A1 (zh) * 2016-06-14 2017-12-21 武汉斗鱼网络科技有限公司 基于rbf神经网络的搜索集群优化方法及系统
CN110096376A (zh) * 2019-04-03 2019-08-06 平安普惠企业管理有限公司 一种数据转移方法及相关设备
CN110096376B (zh) * 2019-04-03 2024-05-14 北京神州数码云科信息技术有限公司 一种数据转移方法及相关设备

Also Published As

Publication number Publication date
EP3139270A1 (en) 2017-03-08
CN105446979A (zh) 2016-03-30
EP3139270A4 (en) 2017-03-29
US20170109207A1 (en) 2017-04-20
US10102038B2 (en) 2018-10-16
CN105446979B (zh) 2019-02-01

Similar Documents

Publication Publication Date Title
WO2015196911A1 (zh) 数据挖掘方法和节点
CN109993299B (zh) 数据训练方法及装置、存储介质、电子装置
US10585889B2 (en) Optimizing skewed joins in big data
US8799916B2 (en) Determining an allocation of resources for a job
WO2018076791A1 (zh) 一种资源负载均衡控制方法及集群调度器
CN107111517B (zh) 针对归约器任务的虚拟机优化分配和/或生成
EP3786798A1 (en) Computing connected components in large graphs
WO2016025924A1 (en) Systems and methods for auto-scaling a big data system
WO2012144985A1 (en) Scheduling map and reduce tasks of jobs for execution according to performance goals
TW201717066A (zh) 叢集運算架構的資源規劃方法、系統及裝置
CN109710406B (zh) 数据分配及其模型训练方法、装置、及计算集群
Schlag et al. Scalable edge partitioning
CN113282409B (zh) 边缘计算任务的处理方法、装置和计算机设备
JPWO2015001850A1 (ja) タスク割り当て判定装置、制御方法、及びプログラム
US11221890B2 (en) Systems and methods for dynamic partitioning in distributed environments
US10162830B2 (en) Systems and methods for dynamic partitioning in distributed environments
JP2013114626A (ja) 配置装置、配置プログラムおよび配置方法
CN109976879B (zh) 一种基于资源使用曲线互补的云计算虚拟机放置方法
CN111049900B (zh) 一种物联网流计算调度方法、装置和电子设备
Yassir et al. Graph-based model and algorithm for minimising big data movement in a cloud environment
JP2014167713A (ja) 情報処理装置、情報処理システム、情報処理装置管理プログラム及び情報処理装置管理方法
Ismaeel et al. A systematic cloud workload clustering technique in large scale data centers
CN116302527A (zh) 一种社交网络数据分析方法、系统及电子设备
KR102054068B1 (ko) 그래프 스트림에 대한 실시간 분산 저장을 위한 분할 방법 및 분할 장치
Peterson et al. A hybrid cloud framework for scientific computing

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15811909

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2015811909

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2015811909

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE