一种基于flume服务器的数据备份容错方法及系统与流程

文档序号:15262137发布日期:2018-08-24 21:56阅读:226来源:国知局

本发明涉及在大数据架构平台的数据收集处理领域,尤其涉及一种基于flume服务器的数据备份容错方法及系统。



背景技术:

在大数据架构平台的数据收集及实时处理过程中,经常会发生某台服务器处理异常或其他原因而停止工作等现象,经常会出现存储服务器故障或者存储服务器在flume服务器下挂载失效等问题,导致备份数据无法存储在存储服务器中,而直接填充在flume服务器本地,而flume服务器本地存储空间往往比较小,很快就会因为数据占满flume本地存储空间,导致flume不能正常工作的现象。如果不实施一定的容错机制或监控机制,很容易造成大量日志数据丢失,造成无法挽回的损失。



技术实现要素:

本发明提供了一种基于flume服务器的数据备份容错方法及系统,用以解决现有技术中大数据收集和处理过程中各种异常造成的大量数据丢失现象发生的技术问题,为异常的检测和处理提供缓冲时间。本发明的技术方案如下:

本发明公开了一种基于flume服务器的数据备份容错方法,包括:

s100设定每台flume服务器的本地存储大小;

s200将存储服务器挂载在所有flume服务器上;

s300通过flume服务器的接收层接收上游服务器分发的日志数据,并通过所述flume服务器的队列层将所述日志数据进行缓存;

s400判断挂载在所述flume服务器上的存储服务器是否异常,若是,进入步骤s500;否则进入步骤s600;

s500通过所述flume服务器的处理层将所述队列模块中的缓存数据存储在所述flume服务器的本地;

s600通过所述flume服务器的处理层将所述队列层中的缓存数据存储在挂载的所述存储服务器中。

优选地,在所述步骤s500之后,还包括步骤:s550当挂载在所述flume服务器上的存储服务器恢复正常时,将所述flume服务器本地存储的数据转移到所述存储服务器上进行存储。

优选地,所述步骤s100包括:

s110获取每天上行日志数据文件的历史数据量的记录;

s120根据每天上行日志数据文件的历史数据量的记录,获取所述历史数据量的最大值;

s130根据预设的计算规则及所述历史数据量的最大值,计算flume服务器的总的存储大小;

s140获取设定的flume服务器的数量;

s150根据所述flume服务器的总的存储大小及所述flume服务器的数量,分配设定每台flume服务器的存储大小。

优选地,所述步骤s130中预设的计算规则为:所述flume服务器的总的存储值=历史数据量的最大值*预设的修复天数+预设的余量存储值。

优选地,在所述步骤s200之后,所述步骤s300之前还包括:

s250获取所有flume服务器的工作状态及运行参数;

s260根据所述所有flume服务器的工作状态及运行参数,控制所述上游服务器均衡的分发所述日志数据至各flume服务器。

此外,本发明还公开了一种基于flume服务器的数据备份容错系统,包括:存储设定模块,用于设定每台flume服务器的本地存储大小;挂载配置模块,用于将存储服务器挂载在所有flume服务器上;数据接收模块,用于通过flume服务器的接收层接收上游服务器分发的日志数据;数据缓存模块,用于通过所述flume服务器的队列层将所述日志数据进行缓存;判断模块,用于判断挂载在所述flume服务器上的存储服务器是否异常;数据处理模块,用于当所述判断模块判定挂载在所述flume服务器上的存储服务器正常时,通过所述flume服务器的处理层将所述队列模块中的缓存数据存储在所述flume服务器的本地;当所述判断模块判定挂载在所述flume服务器上的存储服务器异常时,通过所述flume服务器的处理层将所述队列层中的缓存数据存储在挂载的所述存储服务器中。

优选地,所述基于flume服务器的数据备份容错系统还包括:数据转移模块,用于当所述判断模块判定挂载在所述flume服务器上存储服务器恢复正常时,将所述flume服务器本地存储的数据转移到所述存储服务器上进行存储。

优选地,所述存储设定模块包括:获取子模块,用于获取每天上行日志数据文件的历史数据量的记录;并根据每天上行日志数据文件的历史数据量的记录,获取所述历史数据量的最大值;计算子模块,用于根据预设的计算规则及所述获取子模块获取的历史数据量的最大值,计算flume服务器的总的存储大小;所述获取子模块,还用于获取设定的flume服务器的数量;设定处理子模块,用于根据所述计算子模块计算的flume服务器的总的存储大小及所述获取子模块获取的flume服务器的数量,分配设定每台flume服务器的存储大小。

优选地,所述预设的计算规则为:所述flume服务器的总的存储值=历史数据量的最大值*预设的天数+预设的余量存储值。

优选地,所述基于flume服务器的数据备份容错系统还包括:均衡模块,用于获取所有flume服务器的工作状态及运行参数;并根据所述所有flume服务器的工作状态及运行参数,控制所述上游服务器均衡的分发所述日志数据至各flume服务器。

本发明至少具备以下一项技术效果:

(1)本发明通过合理规划设定flume服务器的存储空间,预防由于各种原因导致flume挂载存储服务器失败,导致收集的上行文件撑爆flume本地存储而影响flume服务器数据分发处理功能等问题。

(2)本发明合理规划设定flume服务器的本地存储空间,为存储服务器挂载故障的侦测和修复,争取时间。同时,可预防flume本地存储空间占满而影响正常功能和防止数据丢失。

(3)本发明中并不是盲目扩大flume服务器的本地存储空间,而是根据实际情况合理规划设定,因而不会盲目增大flume服务器的存储空间,造成资源的浪费。

(4)本发明在上游服务器在分发日志数据给下面各个flume服务器之前,会获取各flume服务器的工作状态及运行参数,从而使得上游服务器可以均衡的分发日志数据给各个flume服务器。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明基于flume服务器的数据备份方法的实施例的流程图;

图2为本发明基于flume服务器的数据备份方法的另一实施例的流程图;

图3为本发明基于flume服务器的数据备份方法的另一实施例的流程图;

图4为本发明基于flume服务器的数据备份方法的另一实施例的流程图;

图5为本发明基于flume服务器的数据备份系统的实施例的框图;

图6为本发明基于flume服务器的数据备份方法的另一实施例的框图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

大数据架构平台的数据收集处理架构示例如图1所示,实现步骤主要如下:

步骤一、移动终端根据公网域名发送用户网络行为日志信息(即:上行文件)。

步骤二、当上行文件到达域名服务器,则域名服务器则根据dns解析策略,将该公网域名解析到对应的公网ip中的某一个ip所在的带宽进行数据网络接收和传输。

步骤三、然后公网ip则通过nat映射关系,将数据传输到对应的局域网ip所对应的内部服器,这里通过在两台nginx服务器上配置局域网ip(vip:192.168.***.***)参数设置,来实现互相备份容错,每次仅仅启动其中一台,若某台出现故障,则转换到另一台操作,即执行操作的nginx服务器状态为活跃状态(active),另一台则为等待被启动状态(back)。

步骤四、当nginx服务器接收到数据后,则采用负载均衡和容错的方法,均匀的将数据分发到多台flume服务器,并通过flume服务器将数据存储到对应的路径下,比如将存储在挂载在flume服务器的存储服务器上。。

而本发明则是基于flume的海量数据备份的处理架构容错机制,为流过flume的日志数据设置两个不同的存储路径和适当配置flume服务器存储大小这一容错措施来防止大数据收集和处理过程中各种异常造成的大量数据丢失现象发生,为异常的检测和处理提供缓冲时间。

具体地,本发明公开了一种基于flume服务器的数据备份容错方法,实施例如图2所示,包括:

s100设定每台flume服务器的本地存储大小;

s200将存储服务器挂载在所有flume服务器上;

s300通过flume服务器的接收层接收上游服务器分发的日志数据,并通过所述flume服务器的队列层将所述日志数据进行缓存;

s400判断挂载在所述flume服务器上的存储服务器是否异常,若是,进入步骤s500;否则进入步骤s600;

s500通过所述flume服务器的处理层将所述队列模块中的缓存数据存储在所述flume服务器的本地;

s600通过所述flume服务器的处理层将所述队列层中的缓存数据存储在挂载的所述存储服务器中。

上述实施例中,设定了flume服务器的本地存储空间,使得一旦出现存储服务器挂载异常等问题时,flume服务器可以将数据存储在本地空间。

本发明的flume服务器可包括source(接收)层、channel(队列)层和sink(处理)层。上游的服务器将日志数据发送至flume服务器之后,通过flume的文件file类型的channel(队列)层对日志数据进行队列缓存,这种缓存方式可有效避免使用内存类型队列而出现的服务器重启后数据丢失的情况,改善数据处理的可靠性。然后,通过flume的sink(处理)层将数据下发给挂载在该flume服务器上的存储服务器。

本实施例中,在大数据实时收集和处理过程中,在flume中设置适当大小的flume服务器存储容量,此时如果出现存储服务器在flume服务器挂载出现问题,则flume本地存储空间,可临时充当上行文件的临时备份库,为存储服务器挂载故障的侦测和修复,争取缓冲时间。从而防止实时数据处理过程中,由于大数据处理架构和所挂载存储服务器出现异常等问题,造成大量数据丢失现象,对大数据架构起到一定的容错机制,保障数据不丢失。

本发明的另一实施例,在方法实施例的基础上,在在所述步骤s500之后,还包括步骤:s550当挂载在所述flume服务器上的存储服务器恢复正常时,将所述flume服务器本地存储的数据转移到所述存储服务器上进行存储。

适当增大了flume服务器的存储空间后,为存储服务器异常检测及修复赢得了缓冲时间,一旦存储服务器恢复正常,那么便可将flume服务器本地存储的数据转移到存储服务器上,腾出本地存储空间,从而为下一次出现故障备用。

较佳的,本发明的基于flume服务器的数据备份方法,还可以同时采用在flume服务器中设置至少两条数据存储路径的方式,这样一旦其中一条存储路径发生异常时,flume服务器还可以将缓存的数据发送给另一备用的存储路径对应的备用存储设备上,如果这两条存储路径都出现了异常,那么再存储在flume服务器本地。

本发明的另一实施例,如图3所示,包括:

s110获取每天上行日志数据文件的历史数据量的记录;

s120根据每天上行日志数据文件的历史数据量的记录,获取所述历史数据量的最大值;

s130根据预设的计算规则及所述历史数据量的最大值,计算flume服务器的总的存储大小;

s140获取设定的flume服务器的数量;

s150根据所述flume服务器的总的存储大小及所述flume服务器的数量,分配设定每台flume服务器的存储大小。

s200将存储服务器挂载在所有flume服务器上;

s300通过flume服务器的接收层接收上游服务器分发的日志数据,并通过所述flume服务器的队列层将所述日志数据进行缓存;

s400判断挂载在所述flume服务器上的存储服务器是否异常,若是,进入步骤s500;否则进入步骤s600;

s500通过所述flume服务器的处理层将所述队列模块中的缓存数据存储在所述flume服务器的本地;

s600通过所述flume服务器的处理层将所述队列层中的缓存数据存储在挂载的所述存储服务器中。

本实施例中,具体包含了如何合理规划设定flume服务器的存储空间。具体地,比如,假如一旦出现挂载失效或者存储异常,我们最多需要多久的修复时间,那么我们需要考虑这段修复时间内我们最多会有多少日志数据需要收集处理。比如根据历史记录发现,上游服务器(比如nginx服务器)收到日志数据每天最多是3t的数据量,也就是说收集到的各客户端的上行日志文件每天最多的数据量为3t,两天的话最多有6t的数据,假如有6台flume服务器的话,那么至少每台需要1t的存储空间,加上我们需要考虑到一些余量,因此,可以设置5台flume服务器的存储空间均为1t,另一台flume服务器的存储空间为1.5t。当然,也可以平均分配每台flume的存储空间,比如将这6台flume服务器的存储空间均设置为1.2t。

较佳的,上述实施例中步骤s130中计算flume服务器的总的存储空间的预设的计算规则为:所述flume服务器的总的存储值=历史数据量的最大值*预设的修复天数+预设的余量存储值。同样以上述的数据量每天最多3t为例,修复天数最多为两天,预设的余量存储值为0.6t,则flume服务器的总存储值=3t*2+0.6t=6.6t。然后便可根据flume服务器的数量,将6.6t的总存储空间分配设定给各flume服务器。比如有6台flume服务器,可以给每一flume服务器分配设定1.1t的本地存储空间;当然,也可以给其中的5台flume服务器设定分配1t的存储空间,另一flume服务器设定为1.6t的存储空间。

本发明方法的另一实施例,如图4所示,包括:

s100设定每台flume服务器的本地存储大小;

s200将存储服务器挂载在所有flume服务器上;

s250获取所有flume服务器的工作状态及运行参数;

s260根据所述所有flume服务器的工作状态及运行参数,控制所述上游服务器均衡的分发所述日志数据至各flume服务器;

s300通过flume服务器的接收层接收上游服务器分发的日志数据,并通过所述flume服务器的队列层将所述日志数据进行缓存;

s400判断挂载在所述flume服务器上的存储服务器是否异常,若是,进入步骤s500;否则进入步骤s600;

s500通过所述flume服务器的处理层将所述队列模块中的缓存数据存储在所述flume服务器的本地;

s600通过所述flume服务器的处理层将所述队列层中的缓存数据存储在挂载的所述存储服务器中。

本实施例中,上游服务器分发日志数据给下面的flume服务器时,会根据flume服务器的工作状态及运行参数均衡的分发。flume服务器的工作状态包括忙碌和空闲;运行参数包括:负载、带宽、性能等之中的任意一个或组合。比如,当上游服务器监测到某台flume服务器忙碌,且负载较大,那么便可以将日志数据分发给其它flume服务器。又比如某台flume服务器不接收数据,那么也可以将数据日志分发到其它flume服务器中,从而防止实时数据处理过程中,由于大数据处理架构异常等问题,造成大量数据丢失,同时,通过均衡的方式可提高系统的数据吞吐量,提高实时数据收集处理的速度。

本发明方法的另一实施例,具体实现描述如下:

(1)根据每天上行文件的历史数据量的记录,取最大值,设定flume服务器的存储大小比该值略大;

例如:这里真实环境中,上行文件每日历史最高量是2.6t,因此这里设定flume服务器的本地存储容量为3t。假如有4台flume服务器,那么可以设定每台flume服务器的存储容量为900g。

(2)将存储服务器挂载在两台nginx服务器相同路径,同时将该存储服务器挂载在所有flume服务器;

(3)修改flume源码,同步备份数据到该存储服务器中特定目录

(4)同时,flume的source接收数据发生器的数据,并在channel暂时存储后,由sink出进行处理后直接存储到hdfs,此时如果出现存储服务器在flume服务器挂载出现问题,则flume本地存储空间,可临时充当上行文件的临时备份库,为存储服务器挂载故障的侦测和修复,争取时间。同时,可预防flume本地存储空间占满而影响正常功能和防止数据丢失。

(5)最后将数据压缩追加存储到对应hive分区表内。

本方法实施例通过合理规划设定flume服务器的存储空间,预防由于各种原因导致flume挂载存储服务器失败,导致收集的上行文件撑爆flume本地存储而影响flume服务器数据分发处理功能等问题。

此外,基于相同的技术构思,本发明还公开了一种基于flume服务器的数据备份容错系统,该系统可以采用本发明的基于flume服务器的数据备份容错方法,具体的,本发明的基于flume服务器的数据备份容错系统如图5所示,包括:存储设定模块10,用于设定每台flume服务器的本地存储大小;挂载配置模块20,用于将存储服务器挂载在所有flume服务器上;数据接收模块30,用于通过flume服务器的接收层接收上游服务器分发的日志数据;数据缓存模块40,用于通过所述flume服务器的队列层将所述日志数据进行缓存;判断模块50,用于判断挂载在所述flume服务器上的存储服务器是否异常;数据处理模块60,用于当所述判断模块50判定挂载在所述flume服务器上的存储服务器正常时,通过所述flume服务器的处理层将所述队列模块中的缓存数据存储在所述flume服务器的本地;当所述判断模块50判定挂载在所述flume服务器上的存储服务器异常时,通过所述flume服务器的处理层将所述队列层中的缓存数据存储在挂载的所述存储服务器中。

本系统实施例中,通过适当配置flume服务器存储大小这一容错措施,此时如果出现存储服务器在flume服务器挂载出现问题,则flume本地存储空间,可临时充当日志数据的临时备份库,为存储服务器挂载故障的侦测和修复争取时间。同时,可预防flume本地存储空间占满而影响正常功能和防止数据丢失。

较佳的,还可以在flume服务器上设置至少两条数据存储路径,便于其中一条数据存储路径发生故障时,还可以选择另一条备用存储路径,将日志数据存储在该备用存储路径对应的设备中;如果两条存储路径对应的设备均出现挂载等异常状况,则还可存储在flume服务器本地,为检测和修复挂载异常等问题提供缓冲修复时间,同时也保证了在这一修复时间内数据不会丢失。

本发明容错系统的另一实施例,在上述系统实施例的基础上,如图6所示,所述基于flume服务器的数据备份容错系统还包括:数据转移模块70,用于当所述判断模块50判定挂载在所述flume服务器上存储服务器恢复正常时,将所述flume服务器本地存储的数据转移到所述存储服务器上进行存储。

本发明系统的另一实施例,在上述任一实施例的基础上,所述存储设定模块10包括:获取子模块11,用于获取每天上行日志数据文件的历史数据量的记录;并根据每天上行日志数据文件的历史数据量的记录,获取所述历史数据量的最大值;计算子模块12,用于根据预设的计算规则及所述获取子模块11获取的历史数据量的最大值,计算flume服务器的总的存储大小;所述获取子模块11,还用于获取设定的flume服务器的数量;设定处理子模块13,用于根据所述计算子模块12计算的flume服务器的总的存储大小及所述获取子模块11获取的flume服务器的数量,分配设定每台flume服务器的存储大小。

较佳地,所述预设的计算规则为:所述flume服务器的总的存储值=历史数据量的最大值*预设的天数+预设的余量存储值。

本发明系统的另一实施例,在上述系统实施例的基础上,所述基于flume服务器的数据备份容错系统还包括:均衡模块80,用于获取所有flume服务器的工作状态及运行参数;并根据所述所有flume服务器的工作状态及运行参数,控制所述上游服务器均衡的分发所述日志数据至各flume服务器。

本发明的系统实施与本发明的方法实施例对应,本发明的方法实施例的技术细节可适用于本发明的系统实施例,为减少重复,不再赘述。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1