CN108874738A - 分布式并行运算方法、装置、计算机设备及存储介质 - Google Patents
分布式并行运算方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN108874738A CN108874738A CN201810570244.1A CN201810570244A CN108874738A CN 108874738 A CN108874738 A CN 108874738A CN 201810570244 A CN201810570244 A CN 201810570244A CN 108874738 A CN108874738 A CN 108874738A
- Authority
- CN
- China
- Prior art keywords
- data
- calculated
- initial data
- hadoop
- fragment
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 109
- 238000003860 storage Methods 0.000 title claims abstract description 36
- 230000008569 process Effects 0.000 claims description 61
- 239000012634 fragment Substances 0.000 claims description 33
- 238000004590 computer program Methods 0.000 claims description 16
- 235000013399 edible fruits Nutrition 0.000 claims description 4
- 238000013467 fragmentation Methods 0.000 claims description 2
- 238000006062 fragmentation reaction Methods 0.000 claims description 2
- 230000005012 migration Effects 0.000 claims description 2
- 238000013508 migration Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 15
- 230000004048 modification Effects 0.000 description 14
- 238000012986 modification Methods 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 8
- 238000009826 distribution Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 230000000593 degrading effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种分布式并行运算方法、装置、计算机设备及存储介质。该方法包括:将待计算原始数据保存至Hive数据库;获取Hive数据库中预先存储的计算模型;将待计算原始数据和计算模型输入至Hadoop分布式计算框架进行运算,得到运算结果。该方法通过Hadoop分布式计算框架根据计算模型对海量的待计算原始数据进线分布式并发运算,计算系统的扩展性能得到优化,且提高了运算效率。
Description
技术领域
本申请涉及分布式运算技术领域,尤其涉及一种分布式并行运算方法、装置、计算机设备及存储介质。
背景技术
目前企业的佣金批量计算过程中,佣金批量计算主要基于多线程计算技术。多线程存在以下问题:1)扩展性差,性能依赖于单一硬件性能。2)大幅提升性能困难,无法实现分布式计算。
发明内容
本申请提供了一种分布式并行运算方法、装置、计算机设备及存储介质,旨在解决现有技术中佣金批量计算主要基于多线程计算技术,其存在扩展性差,且运算效率低下的问题。
第一方面,本申请提供了一种分布式并行运算方法,其包括:
将待计算原始数据保存至Hive数据库;
获取Hive数据库中预先存储的计算模型;
将待计算原始数据和计算模型输入至Hadoop分布式计算框架进行运算,得到运算结果。
第二方面,本申请提供了一种分布式并行运算装置,其包括:
数据保存单元,用于将待计算原始数据保存至Hive数据库;
计算模型获取单元,用于获取Hive数据库中预先存储的计算模型;
分布式运算单元,用于将待计算原始数据和计算模型输入至Hadoop分布式计算框架进行运算,得到运算结果。
第三方面,本申请又提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请提供的任一项所述的分布式并行运算方法。
第四方面,本申请还提供了一种存储介质,其中所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行本申请提供的任一项所述的分布式并行运算方法。
本申请提供一种分布式并行运算方法、装置、计算机设备及存储介质。该方法通过将待计算原始数据保存至Hive数据库;获取Hive数据库中预先存储的计算模型;将待计算原始数据和计算模型输入至Hadoop分布式计算框架进行运算,得到运算结果。该方法通过Hadoop分布式计算框架根据计算模型对海量的待计算原始数据进线分布式并发运算,计算系统的扩展性能得到优化,且提高了运算效率。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种分布式并行运算方法的示意流程图;
图2是本申请实施例提供的一种分布式并行运算方法的子流程示意图;
图3为本申请实施例提供的一种分布式并行运算方法的另一示意流程图;
图4为本申请实施例提供的一种分布式并行运算方法的另一子流程示意图;
图5为本申请实施例提供的一种分布式并行运算方法的另一子流程示意图;
图6为本申请实施例提供的一种分布式并行运算装置的示意性框图;
图7为本申请实施例提供的一种分布式并行运算装置的子单元示意性框图;
图8为本申请实施例提供的一种分布式并行运算装置的另一示意性框图;
图9为本申请实施例提供的一种分布式并行运算装置的另一子单元示意性框图;
图10为本申请实施例提供的一种分布式并行运算装置的另一子单元示意性框图;
图11为本申请实施例提供的一种计算机设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,图1是本申请实施例提供的一种分布式并行运算方法的示意流程图。该方法应用于服务器中。如图1所示,该方法包括步骤S101~S104。
S101、将待计算原始数据保存至Hive数据库。
在本实施例中,是在部署有Hadoop分布式计算框架的服务器端执行本申请中提供的并行运算方法。将待计算原始数据(例如佣金计算原始数据)保存至服务器端本地的Hive数据库时,是通过Sqoop脚本(Sqoop脚本主要用于在Hadoop或Hive,与传统的数据库如mysql或postgresql间进行数据的传递)将待计算原始数据导入至Hive数据库进行保存。
待计算原始数据可以是通过接收关联系统(如承保系统)发送的变更信息,变更信息可以可进行后续识别以便于计算相应的业务员的佣金。
其中,变更信息可以包括数据变更信息以及属性变更信息。
所述数据变更信息可以包括新保单的生成、已有保单中的承保金额的变化以及退保等操作行为。具体的,新保单的生成可指产生了新的承保金额,此时用户的佣金提成应发生相应的变化;同理,若已有保单中的承保金额因客户减少承保金额或增加承保金额,此时用户的佣金提成也应发生相应的变化;另外,如若客户选择退保,此时也应相应地减少并调节用户的佣金提成。
所述属性变更信息可以包括用户的职级变化、考勤情况、服务品质以及是否离职等属性变化。具体的,用户的职级变化会造成相应的佣金提成的变化,如升职则会增加相应的佣金提成,而降职则会减少相应的佣金提成;同理,若用户存在考勤方面的问题,也会使得佣金提成产生相应的变化,如迟到扣款、请假扣款等;若用户被其客户投诉,每投诉一次也会产生相应的扣款,此时佣金提成也会发生变化;另外,如用户离职,则也会产生相应的佣金调整。
在一实施例中,如图2所示,步骤S101包括:
S1011、生成与待计算原始数据对应的表名,根据表名在Hive数据库对应建立存储表格;
S1012、读取待计算原始数据的每一张数据表,生成与每一张数据表一一对应的Sqoop脚本;
S1013、通过与每一张数据表一一对应的Sqoop脚本,将待计算原始数据保存至Hive数据库中的存储表格。
在本实施例中,若待计算原始数据初始是存储在传统的数据库如mysql或
postgresql中,当其导入至Hive数据库时,先生成待导入的表名,保存在文件中,例如使用
“select table_name from dba_tables where Owner=user”语句将用户表筛选出来,保
存在文本里,然后人工检查,剔除不需要的表。然后再准备好oracle连接参数,读取待计算
原始数据,逐个生成Sqoop脚本,在默认hive表名与oracle一致的前提下,将通过与每一张
数据表一一对应的Sqoop脚本,将待计算原始数据保存至Hive数据库中的存储表格。通过
Sqoop脚本,实现了快速将待计算原始数据进行导入。
S102、获取Hive数据库中预先存储的计算模型。
在本实施例中,当Hive数据库中获取了所上传的待处理的待计算原始数据后,需要在Hive数据库中获取预先存储的计算模型(如佣金计算模型)。此时需要将待处理的待计算原始数据及计算模型均发送至Hadoop分布式计算框架中进行分布式运算。
S103、将待计算原始数据和计算模型输入至Hadoop分布式计算框架进行运算,得到运算结果。
在本实施例中,将将待计算原始数据和计算模型输入至Hadoop分布式计算框架进行运算,能有效的利用Hadoop分布式计算的并发性和高效性,得到运算结果。Hadoop分布式计算框架中具备自动的负载均衡能力,Hadoop能够根据服务器的负载情况,动态分配计算任务,确保更高效的利用计算资源,提供最高效的计算性能。
在一实施例中,如图3所示,步骤S103之前还包括:
S103a、将预先配置有相同主机名称、及Hadoop压缩包的终端进行联网并建立集群,得到Hadoop分布式计算框架。
在本实施例中,使用少量的独立部署的Hadoop服务器,再加上大量的APP应用服务器即可建立集群,得到Hadoop分布式计算框架,利用Hadoop有自动服务发现模式,实现了Hadoop集群的快速搭建,例如将预先配置有相同主机名称、及Hadoop压缩包的终端进行联网并建立集群。
在一实施例中,如图4所示,步骤S103包括:
S1031、将待计算原始数据输入至Hadoop分布式计算框架中的任务跟踪进程;
S1032、将待计算原始数据根据预设的分片数目进行分片,任务跟踪进程将分片后数据传输至Hadoop分布式计算框架中的任务处理进程;
S1033、任务处理进程对分片后数据对应进行map运算或reduce运算后,得到与分片后数据对应的运算结果。
在本实施例中,Hadoop分布式计算框架中通过MapReduce编程模型将大数据计算过程切分为map和reduce两个阶段,在map阶段为每个数据块分配一个map计算任务,然后将所有map输出的key进行合并,相同的key及其对应的value发送给同一个reduce任务去处理。
MapReduce运行过程涉及以下几类关键进程:
大数据应用进程:启动用户MapReduce程序的主入口,主要指定Map和Reduce类、输入输出文件路径等,并提交作业给Hadoop集群。
JobTracker进程(即任务跟踪进程):根据要处理的输入数据量启动相应数量的map和reduce进程任务,并管理整个作业生命周期的任务调度和监控。JobTracker进程在整个Hadoop集群全局唯一。
TaskTracker进程(即任务处理进程):负责启动和管理map进程以及reduce进程。因为需要每个数据块都有对应的map函数,TaskTracker进程通常和HDFS的DataNode进程(即数据节点进程)启动在同一个服务器,也就是说,Hadoop集群中绝大多数服务器同时运行DataNode进程和TaskTacker进程。
若将待处理的待计算原始数据中所包括的多笔数据,每一笔数据当做一个佣金计算任务(例如业务员签下一个保单,在保单上所产生的数据可理解为待计算原始数据,针对该待计算原始数据的计算则称为佣金计算任务),每一个佣金计算任务可以进行理解为一个用户作业,对该用户作业的具体处理过程如下:
31)大数据应用进程将用户作业jar包(即待计算原始数据的压缩包)存储在HDFS(即分布式文件系统)中,将来这些jar包会分发给Hadoop集群中的服务器执行MapReduce计算。
32)提交用户作业给JobTracker。
33)JobTacker根据作业调度策略创建JobInProcess树(JobInProcess即作业在处理进程),每个作业都会有一个自己的JobInProcess树。
34)JobInProcess根据输入数据分片数目(通常情况就是数据块的数目)和设置的reduce数目创建相应数量的TaskInProcess(askInProcess即任务在处理进程)。
35)TaskTracker进程和JobTracker进程进行定时通信。
36)如果TaskTracker有空闲的计算资源(空闲CPU核),JobTracker就会给他分配任务。
37)TaskRunner(TaskRunner即任务运行器)收到任务后根据任务类型(map还是reduce),任务参数(作业jar包路径,输入数据文件路径,要处理的数据在文件中的起始位置和偏移量,数据块多个备份的DataNode主机名等)启动相应的map或者reduce进程。
38)map或者reduce程序启动后,检查本地是否有要执行任务的jar包文件,如果没有,就去HDFS上下载,然后加载map或者reduce代码开始执行。
39)如果是map进程,从HDFS读取数据(通常要读取的数据块正好存储在本机)。如果是reduce进程,将结果数据写出到HDFS。
通过以上过程,MapReduce可以将大数据作业计算任务分布在整个Hadoop集群中运行,每个map计算任务要处理的数据通常都能从本地磁盘上读取到。而用户要做的仅仅是编写一个map函数和一个reduce函数就可以了,根本不用关心这两个函数是如何被分布启动到集群上的,数据块又是如何分配给计算任务的。这一切都由MapReduce计算框架完成。通过MapReduce编程模型实现了对佣金计算任务的分布式处理,提高了计算效率。
在一实施例中,如图5所示,步骤S1033之后还包括:
S1034、将运算结果存储在Hadoop分布式计算框架中的分布式文件系统数据库。
在本实施例中,将运算结果存储在Hadoop分布式计算框架中的分布式文件系统数据库(即HDFS),能防止运算结果的丢失,确保计算进程的完整性。
可见,该方法通过Hadoop分布式计算框架根据计算模型对海量的待计算原始数据进线分布式并发运算,计算系统的扩展性能得到优化,且提高了运算效率。
本申请实施例还提供一种分布式并行运算装置,该分布式并行运算装置用于执行前述分布式并行运算方法的任一实施例。具体地,请参阅图6,图6是本申请实施例提供的一种分布式并行运算装置的示意性框图。分布式并行运算装置100可以配置于服务器中。
如图6所示,分布式并行运算装置100包括数据保存单元101、计算模型获取单元102、及分布式运算单元103。
数据保存单元101,用于将待计算原始数据保存至Hive数据库。
在本实施例中,是在部署有Hadoop分布式计算框架的服务器端执行本申请中提供的并行运算方法。将待计算原始数据保存至服务器端本地的Hive数据库时,是通过Sqoop脚本(Sqoop脚本主要用于在Hadoop或Hive,与传统的数据库如mysql或postgresql间进行数据的传递)将待计算原始数据导入至Hive数据库进行保存。
待处理的待计算原始数据可以是通过接收关联系统(如承保系统)发送的变更信息,变更信息可以可进行后续识别以便于计算相应的业务员的佣金。
其中,变更信息可以包括数据变更信息以及属性变更信息。
所述数据变更信息可以包括新保单的生成、已有保单中的承保金额的变化以及退保等操作行为。具体的,新保单的生成可指产生了新的承保金额,此时用户的佣金提成应发生相应的变化;同理,若已有保单中的承保金额因客户减少承保金额或增加承保金额,此时用户的佣金提成也应发生相应的变化;另外,如若客户选择退保,此时也应相应地减少并调节用户的佣金提成。
所述属性变更信息可以包括用户的职级变化、考勤情况、服务品质以及是否离职等属性变化。具体的,用户的职级变化会造成相应的佣金提成的变化,如升职则会增加相应的佣金提成,而降职则会减少相应的佣金提成;同理,若用户存在考勤方面的问题,也会使得佣金提成产生相应的变化,如迟到扣款、请假扣款等;若用户被其客户投诉,每投诉一次也会产生相应的扣款,此时佣金提成也会发生变化;另外,如用户离职,则也会产生相应的佣金调整。
在一实施例中,如图7所示,数据保存单元101包括:
存储表格建立单元1011,用于生成与待计算原始数据对应的表名,根据表名在Hive数据库对应建立存储表格;
脚本生成单元1012,用于读取待计算原始数据的每一张数据表,生成与每一张数据表一一对应的Sqoop脚本;
数据迁移单元1013,用于通过与每一张数据表一一对应的Sqoop脚本,将待计算原始数据保存至Hive数据库中的存储表格。
在本实施例中,若待计算原始数据初始是存储在传统的数据库如mysql或
postgresql中,当其导入至Hive数据库时,先生成待导入的表名,保存在文件中,例如使用
“select table_name from dba_tables where Owner=user”语句将用户表筛选出来,保
存在文本里,然后人工检查,剔除不需要的表。然后再准备好oracle连接参数,读取待计算
原始数据,逐个生成Sqoop脚本,在默认hive表名与oracle一致的前提下,将通过与每一张
数据表一一对应的Sqoop脚本,将待计算原始数据保存至Hive数据库中的存储表格。通过
Sqoop脚本,实现了快速将待计算原始数据进行导入。
计算模型获取单元102,用于获取Hive数据库中预先存储的计算模型。
在本实施例中,当Hive数据库中获取了所上传的待处理的待计算原始数据后,需要在Hive数据库中获取预先存储的计算模型。此时需要将待处理的待计算原始数据及计算模型均发送至Hadoop分布式计算框架中进行分布式运算。
分布式运算单元103,用于将待计算原始数据和计算模型输入至Hadoop分布式计算框架进行运算,得到运算结果。
在本实施例中,将将待计算原始数据和计算模型输入至Hadoop分布式计算框架进行运算,能有效的利用Hadoop分布式计算的并发性和高效性,得到运算结果。Hadoop分布式计算框架中具备自动的负载均衡能力,Hadoop能够根据服务器的负载情况,动态分配计算任务,确保更高效的利用计算资源,提供最高效的计算性能。
在一实施例中,如图8所示,分布式并行运算装置100还包括:
集群建立单元103a,用于将预先配置有相同主机名称、及Hadoop压缩包的终端进行联网并建立集群,得到Hadoop分布式计算框架。
在本实施例中,使用少量的独立部署的Hadoop服务器,再加上大量的APP应用服务器即可建立集群,得到Hadoop分布式计算框架,利用Hadoop有自动服务发现模式,实现了Hadoop集群的快速搭建,例如将预先配置有相同主机名称、及Hadoop压缩包的终端进行联网并建立集群。
在一实施例中,如图9所示,分布式运算单元103包括:
任务分发单元1031,用于将待计算原始数据输入至Hadoop分布式计算框架中的任务跟踪进程;
数据分片单元1032,用于将待计算原始数据根据预设的分片数目进行分片,任务跟踪进程将分片后数据传输至Hadoop分布式计算框架中的任务处理进程;
分片运算单元1033,用于任务处理进程对分片后数据对应进行map运算或reduce运算后,得到与分片后数据对应的运算结果。
在本实施例中,Hadoop分布式计算框架中通过MapReduce编程模型将大数据计算过程切分为map和reduce两个阶段,在map阶段为每个数据块分配一个map计算任务,然后将所有map输出的key进行合并,相同的key及其对应的value发送给同一个reduce任务去处理。
MapReduce运行过程涉及以下几类关键进程:
大数据应用进程:启动用户MapReduce程序的主入口,主要指定Map和Reduce类、输入输出文件路径等,并提交作业给Hadoop集群。
JobTracker进程(即任务跟踪进程):根据要处理的输入数据量启动相应数量的map和reduce进程任务,并管理整个作业生命周期的任务调度和监控。JobTracker进程在整个Hadoop集群全局唯一。
TaskTracker进程(即任务处理进程):负责启动和管理map进程以及reduce进程。因为需要每个数据块都有对应的map函数,TaskTracker进程通常和HDFS的DataNode进程(即数据节点进程)启动在同一个服务器,也就是说,Hadoop集群中绝大多数服务器同时运行DataNode进程和TaskTacker进程。
若将待处理的待计算原始数据中所包括的多笔数据,每一笔数据当做一个佣金计算任务(例如业务员签下一个保单,在保单上所产生的数据可理解为待计算原始数据,针对该待计算原始数据的计算则称为佣金计算任务),每一个佣金计算任务可以进行理解为一个用户作业,对该用户作业的具体处理过程如下:
31)大数据应用进程将用户作业jar包(即待计算原始数据的压缩包)存储在HDFS(即分布式文件系统)中,将来这些jar包会分发给Hadoop集群中的服务器执行MapReduce计算。
32)提交用户作业给JobTracker。
33)JobTacker根据作业调度策略创建JobInProcess树(JobInProcess即作业在处理进程),每个作业都会有一个自己的JobInProcess树。
34)JobInProcess根据输入数据分片数目(通常情况就是数据块的数目)和设置的reduce数目创建相应数量的TaskInProcess(askInProcess即任务在处理进程)。
35)TaskTracker进程和JobTracker进程进行定时通信。
36)如果TaskTracker有空闲的计算资源(空闲CPU核),JobTracker就会给他分配任务。
37)TaskRunner(TaskRunner即任务运行器)收到任务后根据任务类型(map还是reduce),任务参数(作业jar包路径,输入数据文件路径,要处理的数据在文件中的起始位置和偏移量,数据块多个备份的DataNode主机名等)启动相应的map或者reduce进程。
38)map或者reduce程序启动后,检查本地是否有要执行任务的jar包文件,如果没有,就去HDFS上下载,然后加载map或者reduce代码开始执行。
39)如果是map进程,从HDFS读取数据(通常要读取的数据块正好存储在本机)。如果是reduce进程,将结果数据写出到HDFS。
通过以上过程,MapReduce可以将大数据作业计算任务分布在整个Hadoop集群中运行,每个map计算任务要处理的数据通常都能从本地磁盘上读取到。而用户要做的仅仅是编写一个map函数和一个reduce函数就可以了,根本不用关心这两个函数是如何被分布启动到集群上的,数据块又是如何分配给计算任务的。这一切都由MapReduce计算框架完成。通过MapReduce编程模型实现了对佣金计算任务的分布式处理,提高了计算效率。
在一实施例中,如图10所示,分布式运算单元103还包括:
结果存储单元1034,用于将运算结果存储在Hadoop分布式计算框架中的分布式文件系统数据库。
在本实施例中,将运算结果存储在Hadoop分布式计算框架中的分布式文件系统数据库(即HDFS),能防止运算结果的丢失,确保计算进程的完整性。
可见,该装置通过Hadoop分布式计算框架根据计算模型对海量的待计算原始数据进线分布式并发运算,计算系统的扩展性能得到优化,且提高了运算效率。
上述分布式并行运算装置可以实现为一种计算机程序的形式,该计算机程序可以在如图11所示的计算机设备上运行。
请参阅图11,图11是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500设备可以是服务器。
参阅图11,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种分布式并行运算方法。
该处理器502用于提供计算和控制能力,支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种分布式并行运算方法。
该网络接口505用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下功能:将待计算原始数据保存至Hive数据库;获取Hive数据库中预先存储的计算模型;将待计算原始数据和计算模型输入至Hadoop分布式计算框架进行运算,得到运算结果。
在一实施例中,处理器502还执行如下操作:生成与待计算原始数据对应的表名,根据表名在Hive数据库对应建立存储表格;读取待计算原始数据的每一张数据表,生成与每一张数据表一一对应的Sqoop脚本;通过与每一张数据表一一对应的Sqoop脚本,将待计算原始数据保存至Hive数据库中的存储表格。
在一实施例中,处理器502还执行如下操作:将预先配置有相同主机名称、及Hadoop压缩包的终端进行联网并建立集群,得到Hadoop分布式计算框架。
在一实施例中,处理器502还执行如下操作:将待计算原始数据输入至Hadoop分布式计算框架中的任务跟踪进程;将待计算原始数据根据预设的分片数目进行分片,任务跟踪进程将分片后数据传输至Hadoop分布式计算框架中的任务处理进程;任务处理进程对分片后数据对应进行map运算或reduce运算后,得到与分片后数据对应的运算结果。
在一实施例中,处理器502还执行如下操作:将运算结果存储在Hadoop分布式计算框架中的分布式文件系统数据库。
本领域技术人员可以理解,图11中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图11所示实施例一致,在此不再赘述。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在本申请的另一实施例中提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中计算机程序包括程序指令。该程序指令被处理器执行时实现:将待计算原始数据保存至Hive数据库;获取Hive数据库中预先存储的计算模型;将待计算原始数据和计算模型输入至Hadoop分布式计算框架进行运算,得到运算结果。
在一实施例中,该程序指令被处理器执行时实现:生成与待计算原始数据对应的表名,根据表名在Hive数据库对应建立存储表格;读取待计算原始数据的每一张数据表,生成与每一张数据表一一对应的Sqoop脚本;通过与每一张数据表一一对应的Sqoop脚本,将待计算原始数据保存至Hive数据库中的存储表格。
在一实施例中,该程序指令被处理器执行时实现:将预先配置有相同主机名称、及Hadoop压缩包的终端进行联网并建立集群,得到Hadoop分布式计算框架。
在一实施例中,该程序指令被处理器执行时实现:将待计算原始数据输入至Hadoop分布式计算框架中的任务跟踪进程;将待计算原始数据根据预设的分片数目进行分片,任务跟踪进程将分片后数据传输至Hadoop分布式计算框架中的任务处理进程;任务处理进程对分片后数据对应进行map运算或reduce运算后,得到与分片后数据对应的运算结果。
在一实施例中,该程序指令被处理器执行时实现:将运算结果存储在Hadoop分布式计算框架中的分布式文件系统数据库。
所述存储介质可以是前述设备的内部存储单元,例如设备的硬盘或内存。所述存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种分布式并行运算方法,其特征在于,包括:
将待计算原始数据保存至Hive数据库;
获取Hive数据库中预先存储的计算模型;
将待计算原始数据和计算模型输入至Hadoop分布式计算框架进行运算,得到运算结果。
2.根据权利要求1所述的分布式并行运算方法,其特征在于,所述将待计算原始数据保存至Hive数据库,包括:
生成与待计算原始数据对应的表名,根据表名在Hive数据库对应建立存储表格;
读取待计算原始数据的每一张数据表,生成与每一张数据表一一对应的Sqoop脚本;
通过与每一张数据表一一对应的Sqoop脚本,将待计算原始数据保存至Hive数据库中的存储表格。
3.根据权利要求1所述的分布式并行运算方法,其特征在于,所述将待计算原始数据和计算模型输入至Hadoop分布式计算框架进行运算之前,还包括:
将预先配置有相同主机名称、及Hadoop压缩包的终端进行联网并建立集群,得到Hadoop分布式计算框架。
4.根据权利要求1所述的分布式并行运算方法,其特征在于,所述获将待计算原始数据和计算模型输入至Hadoop分布式计算框架进行运算,得到运算结果,包括:
将待计算原始数据输入至Hadoop分布式计算框架中的任务跟踪进程;
将待计算原始数据根据预设的分片数目进行分片,任务跟踪进程将分片后数据传输至Hadoop分布式计算框架中的任务处理进程;
任务处理进程对分片后数据对应进行map运算或reduce运算后,得到与分片后数据对应的运算结果。
5.根据权利要求4所述的分布式并行运算方法,其特征在于,所述任务处理进程对分片后数据对应进行map运算或reduce运算后,得到与分片后数据对应的运算结果之后,还包括;
将运算结果存储在Hadoop分布式计算框架中的分布式文件系统数据库。
6.一种分布式并行运算装置,其特征在于,包括:
数据保存单元,用于将待计算原始数据保存至Hive数据库;
计算模型获取单元,用于获取Hive数据库中预先存储的计算模型;
分布式运算单元,用于将待计算原始数据和计算模型输入至Hadoop分布式计算框架进行运算,得到运算结果。
7.根据权利要求6所述的分布式并行运算装置,其特征在于,所述数据保存单元,包括:
存储表格建立单元,用于生成与待计算原始数据对应的表名,根据表名在Hive数据库对应建立存储表格;
脚本生成单元,用于读取待计算原始数据的每一张数据表,生成与每一张数据表一一对应的Sqoop脚本;
数据迁移单元,用于通过与每一张数据表一一对应的Sqoop脚本,将待计算原始数据保存至Hive数据库中的存储表格。
8.根据权利要求6所述的分布式并行运算装置,其特征在于,所述分布式运算单元,包括:
任务分发单元,用于将待计算原始数据输入至Hadoop分布式计算框架中的任务跟踪进程;
数据分片单元,用于将待计算原始数据根据预设的分片数目进行分片,任务跟踪进程将分片后数据传输至Hadoop分布式计算框架中的任务处理进程;
分片运算单元,用于任务处理进程对分片后数据对应进行map运算或reduce运算后,得到与分片后数据对应的运算结果。
9.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-5中任一项所述的分布式并行运算方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-5任一项所述的分布式并行运算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810570244.1A CN108874738A (zh) | 2018-06-05 | 2018-06-05 | 分布式并行运算方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810570244.1A CN108874738A (zh) | 2018-06-05 | 2018-06-05 | 分布式并行运算方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108874738A true CN108874738A (zh) | 2018-11-23 |
Family
ID=64336865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810570244.1A Pending CN108874738A (zh) | 2018-06-05 | 2018-06-05 | 分布式并行运算方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108874738A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109598632A (zh) * | 2018-12-13 | 2019-04-09 | 泰康保险集团股份有限公司 | 保险业务处理方法、装置、介质及电子设备 |
CN110134516A (zh) * | 2019-05-16 | 2019-08-16 | 深圳前海微众银行股份有限公司 | 金融数据处理方法、装置、设备及计算机可读存储介质 |
CN112860729A (zh) * | 2021-03-29 | 2021-05-28 | 中信银行股份有限公司 | 一种运算方法、装置、电子设备和可读存储介质 |
CN113128837A (zh) * | 2021-03-22 | 2021-07-16 | 中铁电气化勘测设计研究院有限公司 | 一种轨道交通供电系统的大数据分析系统 |
CN113656469A (zh) * | 2020-05-12 | 2021-11-16 | 北京市天元网络技术股份有限公司 | 大数据处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567312A (zh) * | 2011-12-30 | 2012-07-11 | 北京理工大学 | 一种基于分布式并行计算框架的机器翻译方法 |
CN103425762A (zh) * | 2013-08-05 | 2013-12-04 | 南京邮电大学 | 基于Hadoop平台的电信运营商海量数据处理方法 |
CN104391916A (zh) * | 2014-11-19 | 2015-03-04 | 广州杰赛科技股份有限公司 | 基于分布式计算平台的gpeh数据解析方法和装置 |
CN105139281A (zh) * | 2015-08-20 | 2015-12-09 | 北京中电普华信息技术有限公司 | 一种电力营销大数据的处理方法及系统 |
-
2018
- 2018-06-05 CN CN201810570244.1A patent/CN108874738A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567312A (zh) * | 2011-12-30 | 2012-07-11 | 北京理工大学 | 一种基于分布式并行计算框架的机器翻译方法 |
CN103425762A (zh) * | 2013-08-05 | 2013-12-04 | 南京邮电大学 | 基于Hadoop平台的电信运营商海量数据处理方法 |
CN104391916A (zh) * | 2014-11-19 | 2015-03-04 | 广州杰赛科技股份有限公司 | 基于分布式计算平台的gpeh数据解析方法和装置 |
CN105139281A (zh) * | 2015-08-20 | 2015-12-09 | 北京中电普华信息技术有限公司 | 一种电力营销大数据的处理方法及系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109598632A (zh) * | 2018-12-13 | 2019-04-09 | 泰康保险集团股份有限公司 | 保险业务处理方法、装置、介质及电子设备 |
CN110134516A (zh) * | 2019-05-16 | 2019-08-16 | 深圳前海微众银行股份有限公司 | 金融数据处理方法、装置、设备及计算机可读存储介质 |
CN113656469A (zh) * | 2020-05-12 | 2021-11-16 | 北京市天元网络技术股份有限公司 | 大数据处理方法及装置 |
CN113656469B (zh) * | 2020-05-12 | 2024-01-05 | 北京市天元网络技术股份有限公司 | 大数据处理方法及装置 |
CN113128837A (zh) * | 2021-03-22 | 2021-07-16 | 中铁电气化勘测设计研究院有限公司 | 一种轨道交通供电系统的大数据分析系统 |
CN112860729A (zh) * | 2021-03-29 | 2021-05-28 | 中信银行股份有限公司 | 一种运算方法、装置、电子设备和可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108874738A (zh) | 分布式并行运算方法、装置、计算机设备及存储介质 | |
CN107766132B (zh) | 多任务调度方法、应用服务器及计算机可读存储介质 | |
CN110113387A (zh) | 一种基于分布式批量处理系统的处理方法、装置及系统 | |
CN109144731A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN109558234A (zh) | 一种定时任务调度方法和装置 | |
CN110069353A (zh) | 业务异步处理方法及装置 | |
CN104216912A (zh) | 一种无侵入式的业务表单工作流化的实现方法与装置 | |
CN108510140A (zh) | 一种工作量分配方法、存储介质和服务器 | |
CN103873587B (zh) | 一种基于云平台实现调度的方法及装置 | |
CN107147724A (zh) | 一种消息推送方法、服务器及计算机可读存储介质 | |
US20190079848A1 (en) | Prescriptive analytics based activation timetable stack for cloud computing resource scheduling | |
US10628766B2 (en) | Method and system for enabling dynamic capacity planning | |
CN111932257B (zh) | 一种区块链并行化处理方法及装置 | |
CN105991737A (zh) | 分布式任务调度方法及系统 | |
CN106815254A (zh) | 一种数据处理方法和装置 | |
WO2021139778A1 (zh) | 系统调度工作流生成方法、系统、设备及计算机可读存储介质 | |
CN111160873A (zh) | 基于分布式架构的跑批处理装置及方法 | |
CN104636878A (zh) | 一种银行自动处理任务的调度方法及装置 | |
CN108874541A (zh) | 分布式运算方法、装置、计算机设备及存储介质 | |
CN109542593A (zh) | 一种基于nifi的数据处理流程设计方法 | |
CN103024791B (zh) | 一种通信测试系统中多业务处理模型及处理方法 | |
CN110162344A (zh) | 一种隔离限流的方法、装置、计算机设备及可读存储介质 | |
CN109840141A (zh) | 基于云监控的线程控制方法、装置、电子设备及存储介质 | |
CN108629014A (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN108415758A (zh) | 分布式事务协调方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181123 |