基于跨机房Hadoop集群的数据存储的方法及装置制造方法及图纸

技术编号:14383494 阅读:72 留言:0更新日期:2017-01-10 10:51
本发明专利技术涉及数据处理技术领域,特别涉及基于跨机房Hadoop集群的数据存储的方法及装置,用以解决现有技术中存在的基于跨机房的Hadoop集群中数据在存储时产生的传输数据流量较大的问题。该方法包括:在接收到需要写入的数据表后,确定用于计算数据表中数据的任务类型;根据确定的任务类型,将数据表中满足同一预设条件的数据存储到同一机房中或将数据表中全部数据存储到同一机房中。这种技术方案由于能够将数据表中满足同一预设条件的数据存储到同一机房中或将数据表中全部数据存储到同一机房中,使得同一数据不会存储在多个机房中,从而避免了在存储过程中产生的跨机房数据流量。

【技术实现步骤摘要】

本专利技术涉及数据处理
,特别涉及一种基于跨机房Hadoop集群的数据存储的方法及装置
技术介绍
大数据时代诞生的Hadoop开源软件,普遍应用于PB(PetaByte,10的15次方字节)级、超千台节点规模数据存储和计算系统,从2005年诞生至今,得到了互联网、电信、金融等行业的广泛应用。其吞吐率、可靠性、易用性等方面已经得到了工业界的普遍认可。其中,Hadoop核心包括2个部分:HDFS(HadoopDistributedFileSystem,Hadoop分布式文件系统)和MapReduce(mapreduce,映射归约)。现有技术中,HDFS将多台物理主机上的磁盘聚合成一个“虚拟的文件系统”,并对每一个数据块都自动部署3个物理副本,来保证数据高可靠和高效的计算调度。如图1所示,文件被写入HDFS时,其数据会在3台机器之间拷贝,例如写入1TB文件,则实际上有3TB流量在节点间传输。而MapReduce作为通用的并行计算框架,会将原始计算任务拆分成多个计算进程,运行在各台机器之上;MapReduce分为Map和Reduce两个阶段,中间数据的拷贝过程称为shuffle(洗牌),如图2所示,当对1TB数据进行计算时,shuffle阶段在网络上传输的数据可能高达1~3TB。因此,从上述描述可以看出,每次HDFS数据存储、以及每次MapReduce任务执行时会产生大量的数据在节点间传输,这容易对网络带宽造成巨大压力。目前,Hadoop在部署时,一般是几十个节点起步,通常集群规模的节点数目为几百个至上千个。当集群规模超出单个机房容量时,就必须跨越两个或多个物理机房,甚至是跨地域的物理机房。而跨机房Hadoop集群中的分布式存储HDFS和MapReduce计算任务将带来巨大的节点间横向流量,由于机房之间交换机的带宽是有限的,因此网速和传输质量会大大降低,容易造成机房间交换机被拥塞,引发业务超时或数据不能被及时处理等问题,从而造成服务不可用的事故。综上所述,目前基于跨机房的Hadoop集群中数据在存储时产生的传输数据流量较大。
技术实现思路
本专利技术实施例提供的一种基于跨机房Hadoop集群的数据存储的方法,用以解决现有技术中存在的基于跨机房的Hadoop集群中数据在存储时产生的传输数据流量较大的问题。第一方面,提供一种基于跨机房Hadoop集群的数据存储的方法,包括:在接收到需要写入的数据表后,确定用于计算所述数据表中数据的任务类型;根据确定的所述任务类型,将所述数据表中满足同一预设条件的数据存储到同一机房中或将所述数据表中全部数据存储到同一机房中。结合第一方面,在第一方面的第一种可能的实现方式中,根据下列方式确定用于计算所述数据表中数据的任务类型:将预先设置的任务类型作为用于计算所述数据表中数据的任务类型;或根据计算和流量模型确定用于计算所述数据表中数据的任务类型。结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,根据计算和流量模型确定用于计算所述数据表中数据的任务类型,包括:在确定需要写入的数据表的原始数据量后,确定中间产生的传输的数据量;根据原始数据量与中间产生传输的数据量的比值,通过计算和流量模型确定用于计算所述数据表中数据的任务类型。结合第一方面的第一种实现方式或第二种实现方式,在第一方面的第三种可能的实现方式中,若所述任务类型为单表汇聚计算类型或多表关联计算类型,则将所述数据表中满足同一预设条件的数据存储到同一机房中;结合第一方面的第一种实现方式或第二种实现方式,在第一方面的第四种可能的实现方式中,若所述任务类型为非单表汇聚计算类型和非多表关联计算类型,则将所述数据表中的全部数据存储到同一机房中。结合第一方面的第三种实现方式,在第一方面的第五种可能的实现方式中,将所述数据表中满足同一预设条件的数据存储到同一机房中,包括:针对所述数据表中当前需要存储的一条数据,从数据表对应的预设条件中,确定所述数据满足的预设条件,并将所述数据存储到确定的预设条件对应的机房中,其中一个预设条件对应一个机房;或针对所述数据表对应的一个预设条件,确定所述数据表中满足所述预设条件的每条数据,并将确定的每条数据,存储到所述预设条件对应的机房中,其中一个预设条件对应一个机房;或针对所述数据表对应的一个预设条件,从数据表对应的预设条件中,确定所述数据表中满足所述预设条件的每条数据,根据确定数据的存储容量和机房的平均使用率,从能够存储所述数据的机房中确定一个机房,并将确定的每条数据存储到确定的机房中。结合第一方面的第五种实现方式,在第一方面的第六种可能的实现方式中,若所述任务类型为多表关联计算类型,则多个数据表对应相同的至少一个预设条件。结合第一方面的第五种实现方式,在第一方面的第七种可能的实现方式中,若所述任务类型为单表汇聚计算类型,则每个数据表对应不同的预设条件。结合第一方面的第四种实现方式,在第一方面的第八种可能的实现方式中,将所述数据表中的全部数据存储到同一机房中,包括:确定平均存储使用率最低的机房,并将数据表中的全部数据存储到所述平均存储使用率最低的机房中。结合第一方面,在第一方面的第九种可能实现的方式中,将所述数据表中满足同一预设条件的数据存储到同一机房中或将所述数据表中全部数据存储到同一机房中之后,还包括:在接收到计算任务时,确定所述计算任务需要处理的数据;根据所述计算任务需要处理的数据,确定存储所述计算任务需要处理的数据的机房;若存储需要处理的数据的机房是多个,确定在每个机房中需要处理的数据满足的预设条件,根据需要处理的数据满足的预设条件,将所述计算任务划分为至少两个计算子任务,并将计算子任务分别发送到存储需要处理的数据的机房;若存储需要处理的数据的机房是一个,将计算任务直接发送到所述机房。第二方面,本专利技术实施例提供了一种基于跨机房Hadoop集群的数据存储的装置,包括:存储器,用于存储需要写入的数据表;处理器,用于在所述存储器接收到需要写入的数据表后,确定用于计算所述数据表中数据的任务类型;以及根据确定的所述任务类型,将所述数据表中满足同一预设条件的数据存储到同一机房中或将所述数据表中全部数据存储到同一机房中。结合第二方面,在第二方面的第一种可能的实现方式中,所述处理器根据下列方式确定用于计算所述数据表中数据的任务类型:将预先设置的任务类型作为用于计算所述数据表中数据的任务类型;或根据计算和流量模型确定用于计算所述数据表中数据的任务类型。结合第二方面的第一种可能的实现方式,在第二方面第二种可能的实现方式中,所述处理器,具体用于:在确定需要写入的数据表的原始数据量后,确定中间产生的传输的数据量;根据原始数据量与中间产生传输的数据量的比值,通过计算和流量模型确定用于计算所述数据表中数据的任务类型。结合第二方面和第二方面的第一种可能的实现方式,在第二方面第三种可能的实现方式中,所述处理器,具体用于:若所述任务类型为单表汇聚计算类型或多表关联计算类型,将所述数据表中满足同一预设条件的数据存储到同一机房中。结合第二方面和第二方面的第一种可能的实现方式,在第二方面第四种可能的实现方式中,所述处理器,具体用于:若所述任务类型为非单表汇聚计算类型本文档来自技高网
...
基于跨机房Hadoop集群的数据存储的方法及装置

【技术保护点】
一种基于跨机房Hadoop集群的数据存储的方法,其特征在于,该方法包括:在接收到需要写入的数据表后,确定用于计算所述数据表中数据的任务类型;根据确定的所述任务类型,将所述数据表中满足同一预设条件的数据存储到同一机房中或将所述数据表中全部数据存储到同一机房中。

【技术特征摘要】
1.一种基于跨机房Hadoop集群的数据存储的方法,其特征在于,该方法包括:在接收到需要写入的数据表后,确定用于计算所述数据表中数据的任务类型;根据确定的所述任务类型,将所述数据表中满足同一预设条件的数据存储到同一机房中或将所述数据表中全部数据存储到同一机房中。2.如权利要求1所述的方法,其特征在于,根据下列方式确定用于计算所述数据表中数据的任务类型:将预先设置的任务类型作为用于计算所述数据表中数据的任务类型;或根据计算和流量模型确定用于计算所述数据表中数据的任务类型。3.如权利要求2所述的方法,其特征在于,根据计算和流量模型确定用于计算所述数据表中数据的任务类型,包括:在确定需要写入的数据表的原始数据量后,确定中间产生的传输的数据量;根据原始数据量与中间产生传输的数据量的比值,通过计算和流量模型确定用于计算所述数据表中数据的任务类型。4.如权利要求1或2所述的方法,其特征在于,若所述任务类型为单表汇聚计算类型或多表关联计算类型,则将所述数据表中满足同一预设条件的数据存储到同一机房中。5.如权利要求1或2所述的方法,其特征在于,若所述任务类型为非单表汇聚计算类型和非多表关联计算类型,则将所述数据表中的全部数据存储到同一机房中。6.如权利要求4所述的方法,其特征在于,将所述数据表中满足同一预设条件的数据存储到同一机房中,包括:针对所述数据表中当前需要存储的一条数据,从数据表对应的预设条件
\t中,确定所述数据满足的预设条件,并将所述数据存储到确定的预设条件对应的机房中,其中一个预设条件对应一个机房;针对所述数据表对应的一个预设条件,确定所述数据表中满足所述预设条件的每条数据,并将确定的每条数据,存储到所述预设条件对应的机房中,其中一个预设条件对应一个机房;或针对所述数据表对应的一个预设条件,从数据表对应的预设条件中,确定所述数据表中满足所述预设条件的每条数据,根据确定数据的存储容量和机房的平均使用率,从能够存储所述数据的机房中确定一个机房,并将确定的每条数据存储到确定的机房中。7.如权利要求6所述的方法,其特征在于,若所述任务类型为多表关联计算类型,则多个数据表对应相同的至少一个预设条件。8.如权利要求6所述的方法,其特征在于,若所述任务类型为单表汇聚计算类型,则每个数据表对应不同的预设条件。9.如权利要求5所述的方法,其特征在于,将所述数据表中的全部数据存储到同一机房中,包括:确定平均存储使用率最低的机房,并将数据表中的全部数据存储到所述平均存储使用率最低的机房中。10.如权利要求1所述的方法,其特征在于,将所述数据表中满足同一预设条件的数据存储到同一机房中或将所述数据表中全部数据存储到同一机房中之后,还包括:在接收到计算任务时,确定所述计算任务需要处理的数据;根据所述计算任务需要处理的数据,确定存储所述计算任务需要处理的数据的机房;若存储需要处理的数据的机房是多个,确定在每个机房中需要处理的数据满足的预设条件,根据需要处理的数据满足的预设条件,将所述计算任务划分为至少两个计算子任务,并将计算子任务分别发送到存储需要处理的数据的机
\t房;若存储需要处理的数据的机房是一个,将计算任务直接发送到所述机房。11.一种基于跨机房...

【专利技术属性】
技术研发人员:叶琪
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1