首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

基于Alluxio的数据处理方法及系统 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司

摘要:本发明公开了一种基于Alluxio的数据处理方法及系统、电子设备、存储介质。所述数据处理方法应用于分布式系统,所述分布式系统包括:map模块和Reduce模块;所述数据处理方法包括以下步骤:预设Alluxio文件系统;获取所述map模块生成的任务数据并写入所述Alluxio文件系统;将所述Alluxio文件系统中的所述任务数据输出至所述Reduce模块。

主权项:1.一种基于Alluxio的数据处理方法,其特征在于,所述数据处理方法应用于分布式系统,所述分布式系统包括:map模块和Reduce模块;所述数据处理方法包括以下步骤:预设Alluxio文件系统;获取所述map模块生成的任务数据并写入所述Alluxio文件系统;将所述Alluxio文件系统中的所述任务数据输出至所述Reduce模块。

全文数据:基于Alluxio的数据处理方法及系统技术领域本发明涉及互联网技术领域,特别涉及一种基于Alluxio分布式文件系统的数据处理方法及系统、电子设备、存储介质。背景技术目前,针对分布式大数据的处理一般使用MapReduce一种分布式计算系统、Spark一种大数据处理引擎等计算框架。大数据处理分为两个阶段,第一阶段是在Map模块,Map模块执行Map函数以根据需求对数据进行相应的处理,处理过程中如果内存放不下会将数据临时写到本地磁盘上;Map函数处理后的数据通过中间传输过程英文:Shuffle传输到Reduce端;第二阶段在Reduce模块,在这个阶段Reduce模块执行Reduce函数以根据相应需求对数据进行合并存储。现有技术中,所有临时数据和中间计算结果会存储在每个计算节点的本地磁盘上,计算服务与存储服务存在资源竞争,有些时候由于Shuffle时数据倾斜或其他的一些原因导致本地磁盘没有足够的空间来存储大量的Shuffle临时数据,会导致数据处理效率会大大下降并且变得不稳定。发明内容本发明要解决的技术问题是为了克服现有技术中由于Shuffle时数据倾斜或其他的一些原因导致本地磁盘没有足够的空间来存储大量的Shuffle临时数据,会导致数据处理效率会大大下降并且变得不稳定的缺陷,提供一种基于Alluxio的数据处理方法及系统、电子设备、存储介质。本发明是通过下述技术方案来解决上述技术问题:一种基于Alluxio的数据处理方法,所述数据处理方法应用于分布式系统,所述分布式系统包括:map模块和Reduce模块;所述数据处理方法包括以下步骤:预设Alluxio文件系统;获取所述map模块生成的任务数据并写入所述Alluxio文件系统;将所述Alluxio文件系统中的所述任务数据输出至所述Reduce模块。较佳地,将所述任务数据写入所述Alluxio文件系统的步骤之前,还包括:判断所述Alluxio文件系统是否启用;在判断为是时,建立所述Alluxio文件系统与所述map模块的连接,并执行将所述任务数据写入所述Alluxio文件系统的步骤。较佳地,在判断所述Alluxio文件系统未启用时,将所述任务数据写入所述map模块的本地磁盘。较佳地,在判断所述Alluxio文件系统未启用时,所述Reduce模块从所述本地磁盘读取所述任务数据。较佳地,当将所述任务数据写入所述Alluxio文件系统失败时,所述数据处理方法还包括:标识写入失败的任务数据;根据标识将所述写入失败的任务数据重新写入所述Alluxio文件系统的步骤;或,当所述Reduce模块从所述Alluxio文件系统获取所述任务数据失败时,所述数据处理方法还包括:标识获取失败的任务数据;根据标识将所述获取失败的任务数据重新输出至所述Reduce模块的步骤。较佳地,所述数据处理方法还包括:删除所述Alluxio文件系统中已输出至所述Reduce模块的任务数据;或,按照预设时间间隔删除所述Alluxio文件系统中的任务数据。一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的数据处理方法。一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的数据处理方法的步骤。一种基于Alluxio的数据处理系统,所述数据处理系统应用于分布式系统,所述分布式系统包括:map模块和Reduce模块;所述数据处理系统包括:Alluxio文件系统、写模块和输出模块;所述写模块用于获取所述map模块生成的任务数据并写入所述Alluxio文件系统;所述输出模块用于将所述Alluxio文件系统中的所述任务数据输出至所述Reduce模块。较佳地,所述数据处理系统还包括:判断模块和连接模块;所述判断模块用于判断所述Alluxio文件系统是否启用,并在判断为是时,调用所述连接模块;所述连接模块用于建立所述Alluxio文件系统与所述map模块的连接,并调用所述写模块以将所述任务数据写入所述Alluxio文件系统。较佳地,在所述判断模块判断所述Alluxio文件系统未启用时,所述写模块将所述任务数据写入所述map模块的本地磁盘。较佳地,在所述判断模块判断所述Alluxio文件系统未启用时,所述Reduce模块从所述本地磁盘读取所述任务数据。较佳地,所述数据处理系统还包括:标识模块;所述写模块还用于将所述任务数据写入所述Alluxio文件系统失败时,调用所述标识模块;所述标识模块用于标识写入失败的任务数据,以供所述写模块根据标识将所述写入失败的任务数据重新写入所述Alluxio文件系统;或,所述Reduce模块从所述Alluxio文件系统获取所述任务数据失败时,调用所述标识模块;所述标识模块用于标识获取失败的任务数据,以供所述输出模块根据标识将所述获取失败的任务数据重新输出至所述Reduce模块。较佳地,所述数据处理系统还包括:删除模块;所述删除模块用于删除所述Alluxio文件系统中已输出至所述Reduce模块的任务数据;或,按照预设时间间隔删除所述Alluxio文件系统中的任务数据。本发明的积极进步效果在于:本发明使用Alluxio文件系统实现Shuffle,避免了因存储空间不足导致的资源竞争情形,提高了系统的稳定性。本发明使用Alluxio文件系统实现Shuffle,避免了因存储空间不足导致的资源竞争情形,提高了系统的稳定性。附图说明图1为本发明实施例1的基于Alluxio的数据处理方法的第一流程图。图2为本发明实施例1的基于Alluxio的数据处理方法的第二流程图。图3为本发明实施例2的电子设备的结构示意图。图4为本发明实施例4的基于Alluxio的数据处理系统的模块示意图。具体实施方式下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。实施例1本实施例提供一种基于Alluxio的数据处理方法,该数据处理方法用于实现分布式系统中map模块和Reduce模块之间的Shuffle,该分布式系统布置于Hadoop一种分布式系统集群上。Hadoop集群还包括YARNHadoop的一个组件,负责资源管理与作业调度和HDFS分布式存储系统。如图1所示,本实施例的数据处理方法包括以下步骤:步骤110、预设Alluxio文件系统。该Alluxio文件系统布置于Alluxio集群上。步骤120、获取map模块生成的任务数据。用户提交Spark作业到YARN的ResourceManagerHadoop集群的资源管理服务上,ResourceManager服务找一个计算节点分配计算资源Container,并在这个Container中启动Spark的AppMasterAppMaster内部提供了互联网服务,用户可以直接使用浏览器访问AppMaster查看深度学习程序运行时信息。Spark的AppMaster启动后会负责请求计算资源。当计算资源请求成功后,根据返回的资源信息在对应该的节点上启动SparkExecutor执行器节点服务。当SparkExecutor启动成功后,Spark的Driver驱动器节点将会在Executor启动Map模块,以根据需求对数据进行相应的计算处理生成任务数据。步骤130、将获取的任务数据写入Alluxio文件系统。其中,Alluxio文件系统包括主节点AlluxioMaster和从节点AlluxioWorker,步骤130也即启动Map任务并根据配置信息将任务数据写入到远程Alluxio集群的主节点,主节点再将数据分配至相应的从节点。本实施例中,如图2所示,步骤130之前,还包括:步骤121、判断Alluxio文件系统是否启用。本实施例中,用户可自行选择是否利用Alluxio文件系统管理Shuffle数据。若判断为是,说明分布式系统使用Alluxio文件系统存储Map模块计算的任务数据,则初始化存储目录并执行步骤122。若判断为否,说明Alluxio文件系统未启用,则执行步骤122’。步骤122’、将任务数据写入map模块的本地磁盘。然后执行步骤123’。步骤123’、Reduce模块从本地磁盘读取任务数据。步骤122、建立Alluxio文件系统与map模块的连接。然后依次执行步骤130、步骤140。步骤140、Alluxio文件系统输出任务数据给Reduce模块。Reduce模块得到任务数据后,以根据相应需求对数据进行合并处理,并将处理后的任务数据存储到HDFS中。需要说明的是,Reduce模块从Alluxio文件系统读取任务数据之前,也可先执行判断是否使用了Alluxio文件系统做Shuffle存储的步骤,若判断为是,则Reduce模块与Alluxio文件系统建立连接,并从Alluxio文件系统直接读取任务数据。若判断为否,则Reduce模块从本地磁盘或map模块读取任务数据。本实施例中,当将任务数据写入Alluxio文件失败时,数据处理方法还包括:标识写入失败的任务数据;并根据标识将写入失败的任务数据重新写入Alluxio文件系统。同样,当Reduce模块从Alluxio文件获取任务数据失败时,数据处理方法还包括:标识获取失败的任务数据;并根据标识将获取失败的任务数据重新输出给Reduce模块。从而,实现了自动化容错,当任务中断,不用重新调度,中间任务数据不会丢失,无需重新计算这部分数据,提升了错误重试的效率。本实施例中,数据处理方法还包括:删除Alluxio文件中已输出至Reduce模块的任务数据;或,按照预设时间间隔也即TTL,生存时间删除Alluxio文件中的任务数据。通过TTL的策略,实现定时清理过期的垃圾数据。本实施例中使用Alluxio文件系统实现Shuffle,避免了因存储空间不足导致的资源竞争情形,提高了系统的稳定性。Shuffle过程中,会生成日志,以便于支持深度学习任务的历史信息查询,方便用户对比。实施例2图3为本发明实施例提供的一种电子设备的结构示意图,示出了适于用来实现本发明实施方式的示例性电子设备90的框图。图3显示的电子设备90仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图3所示,电子设备90可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备90的组件可以包括但不限于:上述至少一个处理器91、上述至少一个存储器92、连接不同系统组件包括存储器92和处理器91的总线93。总线93包括数据总线、地址总线和控制总线。存储器92可以包括易失性存储器,例如随机存取存储器RAM921和或高速缓存存储器922,还可以进一步包括只读存储器ROM923。存储器92还可以包括具有一组至少一个程序模块924的程序工具925或实用工具,这样的程序模块924包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。处理器91通过运行存储在存储器92中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1所提供的基于Alluxio的数据处理方法。电子设备90也可以与一个或多个外部设备94例如键盘、指向设备等通信。这种通信可以通过输入输出IO接口95进行。并且,模型生成的电子设备90还可以通过网络适配器96与一个或者多个网络例如局域网LAN,广域网WAN和或公共网络,例如因特网通信。如图所示,网络适配器96通过总线93与模型生成的电子设备90的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的电子设备90使用其它硬件和或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID磁盘阵列系统、磁带驱动器以及数据备份存储系统等。应当注意,尽管在上文详细描述中提及了电子设备的若干单元模块或子单元模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元模块的特征和功能可以在一个单元模块中具体化。反之,上文描述的一个单元模块的特征和功能可以进一步划分为由多个单元模块来具体化。实施例3本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现实施例1所提供的基于Alluxio的数据处理方法的步骤。其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1所述的基于Alluxio的数据处理方法中的步骤。其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。实施例4本实施例提供一种基于Alluxio的数据处理系统,该数据处理系统用于实现分布式系统中map模块和Reduce模块之间的Shuffle,该分布式系统布置于Hadoop集群上。Hadoop集群还包括YARN和HDFS。如图4所示,本实施例的数据处理系统包括:Alluxio文件系统1、写模块2和输出模块3。其中,Alluxio文件系统布置于Alluxio集群上。写模块2用于获取map模块生成的任务数据并写入Alluxio文件系统1。其中,Alluxio文件系统包括主节点AlluxioMaster和从节点AlluxioWorker。具体的,写模块2启动Map任务并根据配置信息将任务数据写入到远程Alluxio集群的主节点,主节点再将数据分配至相应的从节点。输出模块3用于将Alluxio文件系统中的任务数据输出至Reduce模块。本实施例中,用户可自行选择是否利用Alluxio文件系统管理Shuffle数据,从而数据处理系统还包括:判断模块4和连接模块5。判断模块4用于判断Alluxio文件系统是否启用。若判断为是,说明分布式系统使用Alluxio文件系统存储Map模块计算的任务数据,判断模块4则调用连接模块5,以建立Alluxio文件系统1与map模块的连接,并调用写模块2以将任务数据写入Alluxio文件系统。此时,输出模块3用于将Alluxio文件系统1中的任务数据输出至Reduce模块,也即Reduce模块从Alluxio文件系统获取任务数据,并根据相应需求对数据进行合并处理,并将处理后的任务数据存储到HDFS中。若判断为否,说明Alluxio文件系统未启用,判断模块4则调用写模块2,将任务数据写入map模块的本地磁盘。此时,Reduce模块从本地磁盘读取任务数据。需要说明的是,Reduce模块从Alluxio文件系统读取任务数据之前,也可先判断是否使用了Alluxio文件系统做Shuffle存储,若判断为是,则Reduce模块与Alluxio文件系统建立连接,并从Alluxio文件系统直接读取任务数据。若判断为否,则Reduce模块从Map模块的本地磁盘读取任务数据。本实施例中,数据处理系统还包括:标识模块6。写模块2还用于将任务数据写入Alluxio文件系统1失败时,调用标识模块6,以标识写入失败的任务数据,从而写模块2根据标识将写入失败的任务数据重新写入Alluxio文件系统。同样,当Reduce模块从Alluxio文件系统1获取任务数据失败时,调用标识模块6,以标识获取失败的任务数据,从而输出模块3根据标识将获取失败的任务数据重新输出给Reduce模块。进而,实现了自动化容错,当任务中断,不用重新调度,中间任务数据不会丢失,无需重新计算这部分数据,提升了错误重试的效率。本实施例中,数据处理系统还包括:删除模块7。删除模块7用于删除Alluxio文件系统中已输出至Reduce模块的任务数据;或,按照预设时间间隔也即TTL,生存时间删除Alluxio文件系统中的任务数据。通过TTL的策略,实现定时清理过期的垃圾数据。本实施例中使用Alluxio文件系统实现Shuffle,避免了因存储空间不足导致的资源竞争情形,提高了系统的稳定性。Shuffle过程中,会生成日志,以便于支持深度学习任务的历史信息查询,方便用户对比。虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

权利要求:1.一种基于Alluxio的数据处理方法,其特征在于,所述数据处理方法应用于分布式系统,所述分布式系统包括:map模块和Reduce模块;所述数据处理方法包括以下步骤:预设Alluxio文件系统;获取所述map模块生成的任务数据并写入所述Alluxio文件系统;将所述Alluxio文件系统中的所述任务数据输出至所述Reduce模块。2.如权利要求1所述的基于Alluxio的数据处理方法,其特征在于,将所述任务数据写入所述Alluxio文件系统的步骤之前,还包括:判断所述Alluxio文件系统是否启用;在判断为是时,建立所述Alluxio文件系统与所述map模块的连接,并执行将所述任务数据写入所述Alluxio文件系统的步骤。3.如权利要求2所述的基于Alluxio的数据处理方法,其特征在于,在判断所述Alluxio文件系统未启用时,将所述任务数据写入所述map模块的本地磁盘。4.如权利要求3所述的基于Alluxio的数据处理方法,其特征在于,在判断所述Alluxio文件系统未启用时,所述Reduce模块从所述本地磁盘读取所述任务数据。5.如权利要求1所述的基于Alluxio的数据处理方法,其特征在于,当将所述任务数据写入所述Alluxio文件系统失败时,所述数据处理方法还包括:标识写入失败的任务数据;根据标识将所述写入失败的任务数据重新写入所述Alluxio文件系统的步骤;或,当所述Reduce模块从所述Alluxio文件系统获取所述任务数据失败时,所述数据处理方法还包括:标识获取失败的任务数据;根据标识将所述获取失败的任务数据重新输出至所述Reduce模块的步骤。6.如权利要求1所述的基于Alluxio的数据处理方法,其特征在于,所述数据处理方法还包括:删除所述Alluxio文件系统中已输出至所述Reduce模块的任务数据;或,按照预设时间间隔删除所述Alluxio文件系统中的任务数据。7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述的数据处理方法。8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6任一项所述的数据处理方法的步骤。9.一种基于Alluxio的数据处理系统,其特征在于,所述数据处理系统应用于分布式系统,所述分布式系统包括:map模块和Reduce模块;所述数据处理系统包括:Alluxio文件系统、写模块和输出模块;所述写模块用于获取所述map模块生成的任务数据并写入所述Alluxio文件系统;所述输出模块用于将所述Alluxio文件系统中的所述任务数据输出至所述Reduce模块。10.如权利要求9所述的基于Alluxio的数据处理系统,其特征在于,所述数据处理系统还包括:判断模块和连接模块;所述判断模块用于判断所述Alluxio文件系统是否启用,并在判断为是时,调用所述连接模块;所述连接模块用于建立所述Alluxio文件系统与所述map模块的连接,并调用所述写模块以将所述任务数据写入所述Alluxio文件系统。11.如权利要求10所述的基于Alluxio的数据处理系统,其特征在于,在所述判断模块判断所述Alluxio文件系统未启用时,所述写模块将所述任务数据写入所述map模块的本地磁盘。12.如权利要求11所述的基于Alluxio的数据处理系统,其特征在于,在所述判断模块判断所述Alluxio文件系统未启用时,所述Reduce模块从所述本地磁盘读取所述任务数据。13.如权利要求9所述的基于Alluxio的数据处理系统,其特征在于,所述数据处理系统还包括:标识模块;所述写模块还用于将所述任务数据写入所述Alluxio文件系统失败时,调用所述标识模块;所述标识模块用于标识写入失败的任务数据,以供所述写模块根据标识将所述写入失败的任务数据重新写入所述Alluxio文件系统;或,所述Reduce模块从所述Alluxio文件系统获取所述任务数据失败时,调用所述标识模块;所述标识模块用于标识获取失败的任务数据,以供所述输出模块根据标识将所述获取失败的任务数据重新输出至所述Reduce模块。14.如权利要求9所述的基于Alluxio的数据处理系统,其特征在于,所述数据处理系统还包括:删除模块;所述删除模块用于删除所述Alluxio文件系统中已输出至所述Reduce模块的任务数据;或,按照预设时间间隔删除所述Alluxio文件系统中的任务数据。

百度查询: 北京京东尚科信息技术有限公司 北京京东世纪贸易有限公司 基于Alluxio的数据处理方法及系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。