一种分布式数据处理方法及系统的制作方法

xiaoxiao2020-10-23  23

一种分布式数据处理方法及系统的制作方法
【技术领域】
[0001]本发明涉及计算机技术领域,具体说涉及一种分布式数据处理方法及系统。
【背景技术】
[0002]随着计算机系统的广泛应用以及计算机功能的完善,越来越多的工作被交予计算机处理。其中就包含一次性交予计算机处理大量数据的情况。
[0003]以网页(web)日志信息的处理为例。小型网站每天产生的web日志信息很少,在少量web日志信息数据量的情况下,依靠单一的计算机节点,使用Linux工具即可处理每天的web日志信息。
[0004]然而随着网站规模的成长,数据中心网站的访问量越来越大,产生的web日志信息也越来越多。一般的中型网站(10万的页面浏览量以上)每天会产生IGB以上的web日志文件,大型或超大型的网站,可能每个小时就会产生1GB的数据量的web日志文件。一旦数据量超过一定的大小,传统的依靠单一计算机节点的计算能力就不能满足计算处理需求。
[0005]现有技术中,通常采用分布式处理的方式来进行消耗大量计算资源的复杂计算。利用多台计算机构成计算机网络,通过网络将数据分布到多个节点上进行计算处理。这种方式将大量的数据分离成一个个小部分分别解决从而大大提高了处理效率,缩短了处理时间。但是,用于处理数据的分布式计算机系统的架构过程复杂且架构成本很高,实用性和推广度都不高。另外,架构好的分布式计算机系统不能方便的增减规模,灵活度不高。
[0006]因此,针对消耗大量计算资源的数据处理问题,需要一种新的更为灵活实用数据处理方法以实现更为低成本、高效率的数据处理。

【发明内容】

[0007]针对消耗大量计算资源的数据处理问题,本发明提供了一种分布式数据处理方法,所述方法包括以下步骤:
[0008]虚拟机构建步骤,构建多个包含特定分布式系统基础架构软件的虚拟机;
[0009]分布式系统构建步骤,基于所述虚拟机构建分布式系统;
[0010]数据处理步骤,利用所述分布式系统处理待处理数据以获取处理结果。
[0011]在一实施例中,所述虚拟机构建步骤包含以下步骤:
[0012]镜像构建步骤,构建包含所述特定分布式系统基础架构软件的虚拟机镜像;
[0013]上传步骤,将所述虚拟机镜像上传到云系统中以构建所述虚拟机。
[0014]在一实施例中,在所述镜像构建步骤中搭建私有云平台以在所述私有云平台上定制所述虚拟机镜像。
[0015]在一实施例中,在所述分布式系统构建步骤中,对所有所述虚拟机中的所述特定分布式系统基础架构软件进行配置以构建所述分布式系统。
[0016]在一实施例中,创建配置脚本以通过所述配置脚本对所有所述虚拟机中的所述特定分布式系统基础架构软件进行统一配置。
[0017]在一实施例中,在所述分布式系统构建步骤中,每个所述虚拟机对应所述分布式系统的一个节点。
[0018]在一实施例中,根据所述待处理数据的数据量确定所述分布式系统的节点数目从而根据所述节点数目确定在所述虚拟机构建步骤中需要构建的所述虚拟机的数目。
[0019]在一实施例中,针对构建完成的所述分布式系统,关闭/创建一个或多个所述虚拟机以减少/增加所述分布式系统的节点数目。
[0020]在一实施例中,所述数据处理步骤包含以下步骤:
[0021]将所述待处理数据分布式地存放在所述分布式系统的分布式文件系统中;
[0022]在所述分布式系统的节点间传递用于处理所述待处理数据的特定程序;
[0023]利用所述特定程序处理所述节点上的所述待处理数据以获取相应的处理结果;
[0024]将所有节点上获取到的所述处理结果合并到一个节点上。
[0025]本发明还提出了一种分布式数据处理系统,所述系统包含多个虚拟机,每台所述虚拟机包含用于构造分布式系统的特定分布式系统基础架构软件。
[0026]与现有技术相比,本发明具有如下优点:
[0027]本发明的分布式数据处理办法实行简单,系统架构成本低廉,实际推广难度很低;
[0028]基于本发明的方法构造的分布式处理系统不仅结构简单,并且可以根据实际需要灵活的增减其架构规模,从而实现针对不同数据量的数据进行针对性处理,大大提高了资源利用率。
[0029]本发明的其它特征或优点将在随后的说明书中阐述。并且,本发明的部分特征或优点将通过说明书而变得显而易见,或者通过实施本发明而被了解。本发明的目的和部分优点可通过在说明书、权利要求书以及附图中所特别指出的步骤来实现或获得。
【附图说明】
[0030]附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
[0031]图1是根据本发明一实施例执行流程图。
【具体实施方式】
[0032]以下将结合附图及实施例来详细说明本发明的实施方式,借此本发明的实施人员可以充分理解本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程并依据上述实现过程具体实施本发明。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
[0033]随着计算机系统的广泛应用以及计算机功能的完善,越来越多的工作被交予计算机处理。其中就包含一次性交予计算机处理大量数据的情况。
[0034]以网页(web)日志信息的处理为例。最初的小型网站每天产生的web日志信息很少,在少量web日志信息数据量的情况下,依靠单一的计算机节点,使用Linux工具如:awk,grep, sort,join配合peri,python正则表达式即可处理每天的web日志信息。
[0035]然而随着网站规模的成长,数据中心网站的访问量越来越大,产生的web日志信息也越来越多。一般的中型网站(10万的页面浏览量以上)每天会产生IGB以上的web日志文件,大型或超大型的网站,可能每个小时就会产生1GB的数据量。一旦数据量超过一定的大小,传统的依靠单一计算机节点的计算能力就不能满足计算处理需求。
[0036]现有技术中,通常采用分布式处理的方式来进行消耗大量计算资源的复杂计算。这种方式将大量的数据分离成一个个小部分分别解决从而大大提高了处理效率,缩短了处理时间。但是,用于处理数据的分布式计算机系统的架构过程复杂且架构成本很高,实用性和推广度都不高。另外,架构好的计算机系统不能方便的增减规模,灵活度不高。
[0037]针对现有技术中处理消耗大量计算资源的方法存在的问题,本发明提出了一种分布式数据处理方法。接下来基于流程图来详细描述本发明的方法的执行过程。附图的流程图中示出的步骤可以在包含诸如一组计算机可执行指令的计算机系统中执行。虽然在流程图中示出了各步骤的逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0038]本发明的方法基于分布式处理原理将大数据量的数据分割成小块分布到多个节点分别进行处理。为了实现分布式处理,首先要构建分布式系统。因此本发明还提出了一种分布式数据处理系统。
[0039]传统的模式下是利用多台计算机构成计算机网络进而构建多个节点的分布式系统。但是上述方法不仅构造过程繁琐而且构建成本也很高,为了解决传统分布式系统构建过程中存在的问题,本发明的方法基于云系统以及虚拟机构建分布式系统,从而利用云计算实现分布式数据处理。本发明的系统包含多个虚拟机,每台虚拟机包含用于构造分布式系统的特定分布式系统基础架构软件。这样多个虚拟机就可以构成一个分布式系统。基于虚拟机易构造、成本低的特点,本发明的分布式数据处理办法实行简单,系统架构成本低廉,实际推广难度很低。
[0040]为了实现云计算,需要云平台的支撑。开源的软件基础结构(Elastic UtilityComputing Architecture for Linking Your Programs To Useful Systems,Eucalyptus)是常用的一种实现云平台的软件基础结构。Eucalyptus云平台是基于基础设施即服务(IaaS)的开源云平台,是基于Linux的软件体系结构,其可以实现在现有信息技术(IT)基础设施上可扩展的私有云和混合云。本实施例的方法主要基于Eucalyptus云平台的支持实现云计算。
[0041]在本实施例中如图1所示,执行本发明的方法首先要执行步骤S110,虚拟机构建步骤,构建用于组成分布式系统的虚拟机。
[0042]由于Eucalyptus云平台允许通过自助服务接口使用本地的资源(硬件、存储、带宽)。并且Eucalyptus云平台通过可以通过开源的系统虚拟化模块(Kernel-basedVirtual Machine,kvm)虚拟化技术将底层资源虚拟化为虚拟机,同时通过定制镜像,仓1J建虚拟机为用户提供服务。
[0043]因此在本实施例中,构建虚拟机首先执行步骤S111,搭建Eucalyptus私有云平台。然后执行步骤S112,在Eucalyptus私有云平台上定制用于创建虚拟机的虚拟机镜像。所谓的镜像就是一个系统,Eucalyptus作为一个私有云平台,可以很方便的创建各种类型的虚拟机,定制各种需求的镜像,从而提供了一个很好的分布式环境。在本实施例中使用的是Linux镜像,对于Linux镜像的虚拟机用户可以用ssh远程登录来操作虚拟机。
[0044]在本实施例中,最终构建好的虚拟机是要构成分布式系统的。由于在Eucalyptus云平台环境下用户可以通过远程访问虚拟机的方式来使用Eucalyptus虚拟机的软件,而不需要在本地安装该软件。因此为了精 简操作流程,便于构造分布式系统,在本实施例中直接构造包含特定的分布式系统基础架构软件的虚拟机。即在步骤S112中需要定制包含特定的分布式系统基础架构软件的虚拟机镜像。
[0045]Hadoop是一个分布式系统基础架构。基于Hadoop,用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。本实施例中的分布式系统基础架构软件采用Hadoop软件。通过Hadoop软件生成Hadoop集群从而构建分布式系统。在步骤S112中,将Hadoop软件定制在Eucalyptus虚拟机镜像中。这样,当通过该Eucalyptus虚拟机镜像开启虚拟机的时候,得到的虚拟机就拥有了 Hadoop这个软件。
[0046]然后就可以执行步骤S113,上传步骤,将虚拟机镜像上传到Eucalyptus云系统中以构建所述虚拟机。这里,将包含Hadoop软件的Eucalyptus虚拟机镜像上传到Eucalyptus云系统,通过开启Eucalyptus实例,就可以得到一个装有Hadoop软件的虚拟机。利用装有Hadoop软件的虚拟机来构成Hadoop集群,每个虚拟机对应Hadoop集群中的一个节点,开启几个虚拟机就可以构建几个节点的Hadoop集群。
[0047]由于本实施例中是基于虚拟机镜像创建虚拟机,因此无论需要构建多少个节点的Hadoop集群,只需构造一个虚拟机镜像。利用同一个虚拟机镜像创建多个相同的虚拟机,这样大大简化了操作流程。
[0048]得到虚拟机之后就可以执行步骤S120,分布式系统构建步骤,基于虚拟机构建分布式系统。本实施例中利用Hadoop集群构造分布式系统。在利用多个包含Hadoop软件的虚拟机形成Hadoop集群时,首先要对每台虚拟机上的Hadoop软件配置文件作一些修改。在步骤S120中,需要执行步骤S122,对虚拟机上的Hadoop软件进行配置才可以得到Hadoop集群。
[0049]由于在步骤S122中,需要对多个虚拟机上的Hadoop软件进行配置,为简化流程,本实施例通过脚本的方式来对Hadoop软件进行配置。即首先执行步骤S121,创建配置脚本,脚本用于创建指定节点大小的Hadoop集群,并进行配置。
[0050]根据应用需求创建一个用于配置Hadoop软件的脚本(由于本实施例是基于Linux环境,这里采用shell脚本)。然后通过脚本对所有的虚拟机中的Hadoop软件进行统一配置。这样简单的运行脚本就得到所需的Hadoop集群,而不需要分别对每个虚拟机上的Hadoop软件进行配置,大大简化了操作流程
[0051]在本实施例构建的Hadoop集群中,每个虚拟机对应Hadoop集群(分布式系统)的一个节点。通过创建或是关闭虚拟机可以很方便的创建一个Hadoop集群或是关闭一个Hadoop集群。同时由于Hadoop集群的节点可以得到动态伸缩,因此本发明的分布式系统的规模(节点数)也能动态伸缩,只需要创建新的虚拟机或是关闭相应的虚拟机。
[0052]即,在本实施例中,可以在分布式系统建立之前根据待处理数据的数据量确定分布式系统的节点数目从而根据节点数目确定在虚拟机构建步骤中需要构建的虚拟机的数目;也可以在分布式系统建立完成之后关闭一个或多个虚拟机以减少所述分布式系统的节点数目;同时也可以创建一个或多个新的虚拟机并将其添加到Hadoop集群的节点中以增加分布式系统的节点数目。
[0053]因此,基于本发明的方法构造的分布式处理系统不仅结构简单,并且可以根据实际需要灵活的增减其架构规模,从而实现针对不同数据量的数据进行针对性处理,大大提高了资源利用率。
[0054]Hadoop集群(分布式系统)创建完毕后就可以执行步骤S130数据处理步骤,利用分布式系统处理待处理的数据以获取处理结果。
[0055]分布式处理的原理就是将大的任务分配成小的任务,让集群中的节点来处理小任务,然后将结果汇总起来。在步骤S130中,首先将待处理数据分布式地存放在Hadoop集群的分布式文件系统中,即将数据分成小块分别存放在各个节点上;然后分别针对每个节点上的数据进行处理以获取处理结果;最后将所有节点上获取到的处理结果合并到一个节点上输出。
[0056]由于相较于数据,特定的程序的数据量要小得多。因此为了减少传输耗时,在本实施例中,Hadoop集群的节点间相互传递的是用于处理数据的特定的程序而不是数据。利用特定的程序处理节点上所分配的待处理的数据以获取相应的处理结果。
[0057]由于并行处理程序(MapReduce)的数据量很小,本实施例利用了 MapReduce程序。为了获取适合的MapReduce程序,首先在Hadoop集群上面运行一个MapReduce程序(例如Hadoop自带的统计词频的MapReduce程序WordCount)。使用Hadoop命令来运行WordCount来了解Hadoop运行MapReduce的过程。之后就可以根据需求来编写特定的MapReduce程序以实现分布式的任务。
[0058]以网页日志文件为例,有了对分布式技术的了解和搭建好的分布式环境就可以利用分布式系统(Hadoop集群)来对大容量的网页日志进行分析处理。日志分析处理系统包含以下几个模块:日志数据的生成、日志数据的推送、日志数据的写入、日志数据的分析、日志数据的分析结果显示。日志数据通常由软件Apache或软件Nginx直接生成,分布着不同的前端机上。日志数据的推送可以通过Linux的shell脚本定时将日志文件数据推送到Hadoop集群。日志数据的写入是将日志数据写入到分布式文件系统(Hadoop DistributedFile System, HDFS)中,日志数据的分析我们可以通过编写MapReduce程序来对日志进行分析,Web日志的分析指标包括PV,UV,IP,用户来源,用户访问设备等。分析结果存入数据库中或是通过网页来展示。
[0059]综上,本发明的分布式数据处理办法实行简单,系统架构成本低廉,实际推广难度很低;并且基于本发明的方法构造的分布式处理系统不仅结构简单,并且可以根据实际需要灵活的增减其架构规模,从而实现针对不同数据量的数据进行针对性处理,大大提高了资源利用率。
[0060]虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。本发明所述的方法还可有其他多种实施例。在不背离本发明实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变或变形,但这些相应的改变或变形都应属于本发明的权利要求的保护范围。
【主权项】
1.一种分布式数据处理方法,其特征在于,所述方法包括以下步骤: 虚拟机构建步骤,构建多个包含特定分布式系统基础架构软件的虚拟机; 分布式系统构建步骤,基于所述虚拟机构建分布式系统; 数据处理步骤,利用所述分布式系统处理待处理数据以获取处理结果。2.根据权利要求1所述的方法,其特征在于,所述虚拟机构建步骤包含以下步骤: 镜像构建步骤,构建包含所述特定分布式系统基础架构软件的虚拟机镜像; 上传步骤,将所述虚拟机镜像上传到云系统中以构建所述虚拟机。3.根据权利要求2所述的方法,其特征在于,在所述镜像构建步骤中搭建私有云平台以在所述私有云平台上定制所述虚拟机镜像。4.根据权利要求1所述的方法,其特征在于,在所述分布式系统构建步骤中,对所有所述虚拟机中的所述特定分布式系统基础架构软件进行配置以构建所述分布式系统。5.根据权利要求4所述的方法,其特征在于,创建配置脚本以通过所述配置脚本对所有所述虚拟机中的所述特定分布式系统基础架构软件进行统一配置。6.根据权利要求1所述的方法,其特征在于,在所述分布式系统构建步骤中,每个所述虚拟机对应所述分布式系统的一个节点。7.根据权利要求6所述的方法,其特征在于,根据所述待处理数据的数据量确定所述分布式系统的节点数目从而根据所述节点数目确定在所述虚拟机构建步骤中需要构建的所述虚拟机的数目。8.根据权利要求6所述的方法,其特征在于,针对构建完成的所述分布式系统,关闭/创建一个或多个所述虚拟机以减少/增加所述分布式系统的节点数目。9.根据权利要求1-8中任一项所述的方法,其特征在于,所述数据处理步骤包含以下步骤: 将所述待处理数据分布式地存放在所述分布式系统的分布式文件系统中; 在所述分布式系统的节点间传递用于处理所述待处理数据的特定程序; 利用所述特定程序处理所述节点上的所述待处理数据以获取相应的处理结果; 将所有节点上获取到的所述处理结果合并到一个节点上。10.—种分布式数据处理系统,其特征在于,所述系统包含多个虚拟机,每台所述虚拟机包含用于构造分布式系统的特定分布式系统基础架构软件。
【专利摘要】本发明公开了一种分布式数据处理方法,所述方法包括以下步骤:虚拟机构建步骤,构建多个包含特定分布式系统基础架构软件的虚拟机;分布式系统构建步骤,基于所述虚拟机构建分布式系统;数据处理步骤,利用所述分布式系统处理待处理数据以获取处理结果。本发明还公开了一种分布式数据处理系统,所述系统包含多个虚拟机,每台所述虚拟机包含用于构造分布式系统的特定分布式系统基础架构软件。本发明的分布式数据处理办法实行简单,系统架构成本低廉,实际推广难度很低;并且基于本发明的方法构造的分布式处理系统不仅结构简单,并且可以根据实际需要灵活的增减其架构规模,从而实现针对不同数据量的数据进行针对性处理,大大提高了资源利用率。
【IPC分类】G06F9/455, G06F17/30
【公开号】CN104899073
【申请号】CN201510284446
【发明人】李小勇, 汪一平
【申请人】北京邮电大学
【公开日】2015年9月9日
【申请日】2015年5月28日

最新回复(0)