CN104700255B - 多进程处理方法、装置和*** - Google Patents
多进程处理方法、装置和*** Download PDFInfo
- Publication number
- CN104700255B CN104700255B CN201310656507.8A CN201310656507A CN104700255B CN 104700255 B CN104700255 B CN 104700255B CN 201310656507 A CN201310656507 A CN 201310656507A CN 104700255 B CN104700255 B CN 104700255B
- Authority
- CN
- China
- Prior art keywords
- data file
- data
- data files
- processing
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种多进程处理方法、装置和***,包括:为本地的数据文件编号;输入每个进程需处理的数据文件个数M;获取本地的数据文件总数N;根据所述N与所述M的取模结果确定需要启动的进程数k;启动k个进程,为每个进程分配至多M个数据文件编号;所述进程根据所分配的数据文件编号加载对应的数据文件进行处理。利用本发明,可以较低的工作量实现灵活的速度调整,以降低人工编辑量。
Description
技术领域
本申请涉及数据处理设备的数据处理技术领域,尤其涉及一种多进程处理方法、装置和***。
背景技术
随着互联网业务的普及,用户数据的增长,网络中的设备处理几百G或T的数据是比较常见的。为了能够适应巨量数据的处理任务,目前业界通常采用分布式多进程处理巨量数据。
如图1为现有的分布式多进程处理技术的一种处理示意图;参见图1,其中,用竖虚线来划分不同的机器,所述竖虚线划分出的每一个区域就是一台机器上的部署情况,如区域101为第一台机器上的部署情况,区域102为第二台机器上的部署情况。每一台机器可以启动多个进程,如图1每一台机器对应的区域中,所述矩形框内每个小块分别对应一个进程,每台机器还配置有配置文件,配置文件内包括启动的进程个数,每个进程处理的数据文件的配置信息等,所述配置信息需要包括每个进程对应的文件名和路径信息。在数据处理过程中,启动的进程需要从所述配置文件中读取该进程对应的文件名和路径,并到该路径下读取该数据文件的数据并对数据进行相应业务的处理,然后导入到本地或远程机器的内存提供给对外服务的互联网应用程序。
但是,现有技术在导入少数文件的情况下是适用的,而在导入大量文件的情况下,会存在以下缺点:
(1)由于数据文件不一样,配置文件不一样,需要编辑每行配置文件。如果同时有100台机器处理,每台机器启动10个进程,需要有1000行数据进行编辑,编辑量过大,人工成本高。
(2)在实际的运营过程中,常常需要根据运营需要调整每台机器上导入数据的速度,这就需要对进程的个数和进程对应处理的数据文件名称路径等进行修改,因此如果需要调整,则所有配置都要跟着重新调整,工作量巨大,且极易出错。因此,现有的这种技术方案的导入数据的速度不方便随意更改,操作不灵活。
发明内容
有鉴于此,本发明的主要目的是提供一种多进程处理方法,可以较低的工作量实现灵活的速度调整,以降低人工编辑量。
本发明的另一目的是提供一种多进程处理装置,可以较低的工作量实现灵活的速度调整,以降低人工编辑量。
本发明的另一目的是提供一种多进程处理***,可以较低的工作量实现灵活的速度调整,以降低人工编辑量。
本发明的技术方案是这样实现的:
一种多进程处理方法,包括:
为本地的数据文件编号;
输入每个进程需处理的数据文件个数M;
获取本地的数据文件总数N;
根据所述N与所述M的取模结果确定需要启动的进程数k;
启动k个进程,为每个进程分配至多M个数据文件编号;
所述进程根据所分配的数据文件编号加载对应的数据文件进行处理。
一种多进程处理装置,包括:
配置模块,用于为本地的数据文件编号;
输入模块,用于输入每个进程需处理的数据文件个数M;
文件数模块,用于获取本地的数据文件总数N;
进程数模块,用于根据所述N与所述M的取模结果确定需要启动的进程数k;
分配模块,用于启动k个进程,为每个进程分配至多M个数据文件编号;
进程模块,用于运行进程,所述进程根据所分配的数据文件编号加载对应的数据文件进行处理。
一种多进程处理***,包括二台以上计算设备,其中每台计算设备中包括所述的多进程处理装置。
与现有技术相比,本发明不必配置进程与数据文件的固定对应关系,而是可以实现进程与所加载的数据文件之间自适应的、动态映射的关系,在希望对的导入数据的速度进行调整时,用户只需要重新输入每个进程需处理的数据文件个数M即可,之后本发明的方法可以自动确定需要启动的进程个数,并且根据上述分配方法将本地的数据文件分配给所启动的进程,由所述进程加载对应的数据文件进行处理,所调整的工作量极其微小,只需要修改一下输入的M值即可,因此本发明可以实现可以较低的工作量实现灵活的速度调整,以降低人工编辑量。
附图说明
图1为现有的分布式多进程处理技术的一种处理示意图;
图2为本发明所述多进程处理方法的一种流程图;
图3为本发明所述方法的一种处理示意图;
图4为本发明所述多进程处理装置的一种组成示意图;
图5为本发明所述多进程处理***的一种组成示意图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
本发明中,所述本地是指本地的机器,即本机,所述机器是指具有数据处理能力的计算设备,如计算机,服务器,工作站等,这种机器的可以是物理上的独立机器,也可以是逻辑划分的机器,如逻辑划分的计算机集群等。
本发明中,所述的进程是计算设备的操作***结构的基础;是一次程序的执行;是一个程序及其数据在处理机上顺序执行时所发生的活动;是程序在一个数据集合上运行的过程,它是***进行资源分配和调度的一个独立单位。
图2为本发明所述多进程处理方法的一种流程图。参见图2,该方法包括:
步骤201、为本地的数据文件编号。
步骤202、输入每个进程需处理的数据文件个数M。
步骤203、获取本地的数据文件总数N。
步骤204、根据所述N与所述M的取模结果确定需要启动的进程数k。
步骤205、启动k个进程,为每个进程分配至多M个数据文件编号。这M个数据文件编号不重合,这样就可以全覆盖所有的数据文件。
步骤206、所述进程根据所分配的数据文件编号加载对应的数据文件进行处理。
在一种具体的优选实施例中,在上述步骤204中,所述根据所述N与所述M的取模结果确定需要启动的进程数k,具体包括:
进行取模运算,即:N%M;
如果N%M等于0,则所述k为:N除以M得到的商的整数部分,即N/M;
如果N%M不等于0,则所述k为:N除以M得到的商的整数部分,再加上1,即N/M+1。
在一种具体的优选实施例中,在所述步骤205中,所述为每个进程分配至多M个数据文件编号,具体为:按照所述本地的数据文件的编号,从第一个进程开始,每个进程依次分配至多M个数据文件编号,直到分配完本地所有的数据文件编号为止。这样,就可以保证这M个数据文件编号不重合,这样就可以全覆盖所有的数据文件。
更为具体的一种实施例中,步骤201所述为本地的数据文件编号,具体为:对本地的数据文件从0开始编号。步骤205中所述从第一个进程开始,每个进程依次分配至多M个数据文件编号,直到分配完本地所有的数据文件编号为止,具体包括:
设置所启动的进程编号,设p表示所启动的进程的编号,p=0,1,…,k-1,则:
若(p+1)×M–1小于最后一个数据文件编号,则编号为p的进程对应分配的数据文件编号为:从第p×M到第(p+1)×M–1;
若(p+1)×M–1大于等于最后一个数据文件编号,则编号为p的进程对应分配的数据文件编号为:从第p×M到最后一个数据文件编号。
上述实施例所述为各个进程分配数据文件的方式为依次顺序分配,这样从第一个启动的进程分配第一个数据文件编号开始,则会依次分配完毕本地的所有的数据文件编号,实现利用多进程处理数据的分布式处理方法。当然,也可以采用其它的分配方式来分配数据文件,例如可以以倒序的方式,从第一个启动的进程分配最后一个数据文件编号开始,倒序分配完毕本地的所有的数据文件;例如也可以采用其它的采样分配方式,如采用随机方式,为所述k个已经启动的进程依次分配M个不同的数据文件编号,如果在为最后一个进程分配数据文件时,所剩余的数据文件个数小于M,则为该进程分配所述剩余的数据文件。
通常,互联网的处理***往往包括大量的计算设备来协同提供数据服务,那么在具有二台以上计算设备的处理***中,可以针对每台计算设备分别执行本发明所述的多进程处理方法。
例如,图3为本发明所述方法的一种处理示意图。参见图3,其中,用竖虚线来划分不同的机器,所述竖虚线划分出的每一个区域就是一台机器上的部署情况,如区域301为第一台机器上的部署情况,区域302为第二台机器上的部署情况。每一台机器可以启动多个进程,如图3每一台机器对应的区域中,所述矩形框内每个小块分别对应一个进程,每台机器也有配置文件,只是配置文件中不配置具体进程与具体数据文件的固定的对应关系,而是配置数据文件的编号及数据文件的属性信息如路径地址等。在实际运营的过程中,管理人员可以根据所调整的每台机器导入数据的速度,自行向每台机器中输入每个进程需处理的数据文件个数M,假设此图3中所述M=3,又假设第一台机器中数据文件个数为N=92,由于N%M不等于0,则需要启动的进程数k=N/M+1=31。那么该第一台机器同时启动31个进程,进程编号分别为0,1,…,30;其中,从编号为0至编号为29的进程,每个进程分配3个数据文件编号,假设该进程编号为p,则为其分配的数据文件为:编号从p×3到第(p+1)×3–1的数据文件。最后一个进程即编号31的进程分配最后两个数据文件,即编号91和92的数据文件。
这样,所述本地的数据文件分别被分配给31个进程中,实现了分布式多进程处理巨量数据。
然而,本发明所需要配置的信息仅仅是对本地的数据文件进行自动编号,不必为每个进程配置对应的数据文件名称,即配置编辑量大大降低;在希望对某台机器的导入数据的速度进行调整时,是需要重新输入每个进程需处理的数据文件个数M即可,例如M修改为4,则本发明的方法可以自动确定需要启动的进程个数,并且根据上述分配方法将本地所有的数据文件均衡地分配给所启动的进程,由所述进程加载对应的数据文件进行处理,所调整的工作量极其微小,只需要修改一下输入的M值即可,因此本发明可以实现可以较低的工作量实现灵活的速度调整,以降低人工编辑量。
本发明可以在分布式机器一定的情况下,通过调整启动进程个数,来调整处理文件的速度。在进程文件个数变动的情况下,也可以使进程和要处理的数据文件自动建立动态的映射关系,只有极少量的编辑工作量。
具体的,所述步骤206中,所述进程根据所分配的数据文件编号加载对应的数据文件进行处理,具体包括:
步骤161、所述进程根据所分配的数据文件编号读取该数据文件对应的路径地址;所述路径地址为每个数据文件必备的属性信息,是本发明之前已经存在的信息。
步骤162、所述进程从所述路径地址读取对应数据文件的数据,进行加载处理。处理结束后,通常是导入到本地或远程机器的内存提供给对外服务的互联网应用程序,所述互联网应用程序可以从内存中读取对应的数据为外界请求提供对应的数据服务。
与上述方法对应,本发明还公开了一种对应的多进程处理装置,用于执行上述方法。图4为本发明所述多进程处理装置的一种组成示意图。参见图4,该多进程处理装置包括:
配置模块401,用于为本地的数据文件编号。
输入模块402,用于输入每个进程需处理的数据文件个数M。该输入模块可以提供输入接口,供用户输入M的数值。
文件数模块403,用于获取本地的数据文件总数N。
进程数模块404,用于根据所述N与所述M的取模结果确定需要启动的进程数k。
分配模块405,用于启动k个进程,为每个进程分配至多M个数据文件编号。
进程模块406,用于运行进程,所述进程根据所分配的数据文件编号加载对应的数据文件进行处理。
在一种具体的优选实施例中,所述进程数模块404具体用于:进行取模运算:N%M;如果N%M等于0,则所述k为:N除以M得到的商的整数部分;如果N%M不等于0,则所述k为:N除以M得到的商的整数部分,再加上1。
在一种具体的优选实施例中,所述分配模块405具体用于:启动k个进程,按照所述本地的数据文件的编号,从第一个进程开始,为每个进程依次分配至多M个数据文件编号,直到分配完本地所有的数据文件编号为止;控制所述进程根据所分配的数据文件编号加载对应的数据文件进行处理。
更为具体的实施例中,所述配置模块401具体用于:对本地的数据文件从0开始编号;所述分配模块405具体用于:设置所启动的进程编号,设p表示所启动的进程的编号,p=0,1,…,k-1,则:
若(p+1)×M–1小于最后一个数据文件编号,则为编号为p的进程对应分配的数据文件编号为:从第p×M到第(p+1)×M–1;
若(p+1)×M–1大于等于最后一个数据文件编号,则为编号为p的进程对应分配的数据文件编号为:从第p×M到最后一个数据文件编号。
在一种具体的优选实施例中,所述进程模块406具体用于:运行进程,所述进程根据所分配的数据文件编号读取该数据文件对应的路径地址,从所述路径地址读取对应数据文件的数据,进行加载处理。
本发明还公开了一种多进程处理***,图5为本发明所述多进程处理***的一种组成示意图,参见图5,该多进程处理***中包括二台以上的计算设备,其中每台计算设备中包括如图4所述的多进程处理装置,这样每台计算设备就可以分别执行本发明所述的多进程处理方法,从而实现了分布式多进程处理巨量数据。在这种多进程处理***中,不需要配置进程与数据文件的固定对应关系,大大降低了配置编辑量,节省了人工成本。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述各实施例的功能模块可以位于一个终端或网络节点,或者也可以分布到多个终端或网络节点上。
另外,本发明的每一个实施例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本发明。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本发明。存储介质可以使用任何类型的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如CD-ROM等)、磁光存储介质(如MO等)等。
因此本发明还公开了一种存储介质,其中存储有数据处理程序,该数据处理程序用于执行本发明上述方法的任何一种实施例。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (7)
1.一种分布式多进程处理方法,其特征在于,包括:
为本地的数据文件从0开始编号,将所述数据文件编号和每个数据文件的路径地址对应记录在配置文件中;
接收输入的每个进程需处理的数据文件个数M;其中,所述数据文件个数M用于对数据文件处理的速度进行调整;
从所述配置文件中获取本地的数据文件总数N;
根据所述N与所述M的取模结果确定需要启动的进程数k;
启动k个进程,其中,每个启动的进程具有对应的进程编号;设p表示所启动的进程的编号,p=0,1,…,k-1,则:
若(p+1)×M–1小于N-1,则编号为p的进程对应分配的数据文件编号为:从第p×M到第(p+1)×M–1;
若(p+1)×M–1大于等于N-1,则编号为p的进程对应分配的数据文件编号为:从第p×M到N-1;
所述每个进程根据所分配的数据文件编号,从所述配置文件中获取所述数据文件的路径地址,并根据所述数据文件的路径地址加载对应的数据文件进行处理。
2.根据权利要求1所述的方法,其特征在于,所述根据所述N与所述M的取模结果确定需要启动的进程数k,具体包括:
进行取模运算:N%M;
如果N%M等于0,则所述k为:N除以M得到的商的整数部分;
如果N%M不等于0,则所述k为:N除以M得到的商的整数部分,再加上1。
3.根据权利要求1所述的方法,其特征在于,在具有二台以上计算设备的处理***中,针对每台计算设备分别执行本多进程处理方法。
4.一种分布式多进程处理装置,其特征在于,包括:
配置模块,用于为本地的数据文件从0开始编号,将所述数据文件编号和每个数据文件的路径地址对应记录在配置文件中;
输入模块,用于接收输入的每个进程需处理的数据文件个数M;其中,所述数据文件个数M用于对数据文件处理的速度进行调整;
文件数模块,用于从所述配置文件中获取本地的数据文件总数N;
进程数模块,用于根据所述N与所述M的取模结果确定需要启动的进程数k;
分配模块,用于启动k个进程,其中,每个启动的进程具有对应的进程编号;设p表示所启动的进程的编号,p=0,1,…,k-1,则:
若(p+1)×M–1小于N-1,则为编号为p的进程对应分配从第p×M到第(p+1)×M–1的数据文件编号;
若(p+1)×M–1大于等于N-1,则为编号为p的进程对应分配从第p×M到N-1的数据文件编号;
进程模块,用于运行进程,所述每个进程根据所分配的数据文件编号,从所述配置文件中获取所述数据文件的路径地址,并根据所述数据文件的路径地址加载对应的数据文件进行处理。
5.根据权利要求4所述的装置,其特征在于,所述进程数模块具体用于:
进行取模运算:N%M;
如果N%M等于0,则确定所述k为:N除以M得到的商的整数部分;
如果N%M不等于0,则确定所述k为:N除以M得到的商的整数部分,再加上1。
6.一种多进程处理***,其特征在于,包括二台以上计算设备,其中每台计算设备中包括如权利要求4至5任一项所述的分布式多进程处理装置。
7.一种非易失性机器可读存储介质,其特征在于,所述存储介质中存储有机器可读指令,所述机器可读指令可以由处理器执行以完成如权利要求1-3任一项所述的分布式多进程处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310656507.8A CN104700255B (zh) | 2013-12-06 | 2013-12-06 | 多进程处理方法、装置和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310656507.8A CN104700255B (zh) | 2013-12-06 | 2013-12-06 | 多进程处理方法、装置和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104700255A CN104700255A (zh) | 2015-06-10 |
CN104700255B true CN104700255B (zh) | 2020-04-10 |
Family
ID=53347348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310656507.8A Active CN104700255B (zh) | 2013-12-06 | 2013-12-06 | 多进程处理方法、装置和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104700255B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105607956B (zh) * | 2016-01-06 | 2019-06-04 | 北京京东尚科信息技术有限公司 | 一种计算机中的任务分配方法及*** |
CN106528299B (zh) * | 2016-09-23 | 2019-12-03 | 北京华泰德丰技术有限公司 | 数据处理方法及装置 |
CN107229552B (zh) * | 2017-05-18 | 2021-01-26 | 北京京东尚科信息技术有限公司 | 用于对iOS符号调用语句进行符号化的方法和装置 |
CN111221635B (zh) * | 2019-11-22 | 2023-07-14 | 深圳前海微众银行股份有限公司 | 一种多进程交易流水处理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1331817A (zh) * | 1998-11-25 | 2002-01-16 | 电脑联合想象公司 | 用于并发数据库管理***表操作的方法和设备 |
CN101916296A (zh) * | 2010-08-29 | 2010-12-15 | 武汉天喻信息产业股份有限公司 | 基于文件的海量数据处理方法 |
CN103077241A (zh) * | 2013-01-10 | 2013-05-01 | 中国银行股份有限公司 | 将文件拆分后并行加载数据入库的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5119902B2 (ja) * | 2007-12-19 | 2013-01-16 | 富士通セミコンダクター株式会社 | 動的再構成支援プログラム、動的再構成支援方法、動的再構成回路、動的再構成支援装置および動的再構成システム |
-
2013
- 2013-12-06 CN CN201310656507.8A patent/CN104700255B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1331817A (zh) * | 1998-11-25 | 2002-01-16 | 电脑联合想象公司 | 用于并发数据库管理***表操作的方法和设备 |
CN101916296A (zh) * | 2010-08-29 | 2010-12-15 | 武汉天喻信息产业股份有限公司 | 基于文件的海量数据处理方法 |
CN103077241A (zh) * | 2013-01-10 | 2013-05-01 | 中国银行股份有限公司 | 将文件拆分后并行加载数据入库的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104700255A (zh) | 2015-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11593149B2 (en) | Unified resource management for containers and virtual machines | |
US11340803B2 (en) | Method for configuring resources, electronic device and computer program product | |
US10394477B2 (en) | Method and system for memory allocation in a disaggregated memory architecture | |
US10585691B2 (en) | Distribution system, computer, and arrangement method for virtual machine | |
US8429162B1 (en) | Facilitating data redistribution in database sharding | |
US11948014B2 (en) | Multi-tenant control plane management on computing platform | |
US9235439B2 (en) | Management server, patch scheduling method, and recording medium | |
US20190199785A1 (en) | Determining server level availability and resource allocations based on workload level availability requirements | |
CN111596927B (zh) | 服务部署方法、装置及电子设备 | |
US10860336B2 (en) | Managing multi-single-tenant SaaS services | |
CN109032751B (zh) | 一种虚拟机部署方法及omm虚拟机 | |
CN104700255B (zh) | 多进程处理方法、装置和*** | |
US20160352821A1 (en) | Method and system for allocating resources for virtual hosts | |
CN110764788B (zh) | 云存储部署方法、装置、计算机设备和可读存储介质 | |
CN113535087B (zh) | 数据迁移过程中的数据处理方法、服务器及存储*** | |
US20190188031A1 (en) | Prioritizing i/o operations | |
US10528625B2 (en) | Client cloud synchronizer | |
CN110727400B (zh) | 用于分布式存储***的流量控制方法、装置、设备和介质 | |
CN115150268A (zh) | Kubernetes集群的网络配置方法、装置、及电子设备 | |
CN114679465A (zh) | 资源操作方法、装置、电子设备及存储介质 | |
US11016685B2 (en) | Method and defragmentation module for defragmenting resources | |
CN110806895A (zh) | 一种项目创建方法、装置及计算机可读存储介质 | |
US9715349B2 (en) | Virtual storage instrumentation for real time analytics | |
CN110908981A (zh) | 一种兼容多数据库的分布式数据质量控制方法及*** | |
CN113190306B (zh) | 显示层级的切换方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |