CN111752911A - 一种基于Flume的数据传输方法、系统、终端及存储介质 - Google Patents

一种基于Flume的数据传输方法、系统、终端及存储介质 Download PDF

Info

Publication number
CN111752911A
CN111752911A CN202010603030.7A CN202010603030A CN111752911A CN 111752911 A CN111752911 A CN 111752911A CN 202010603030 A CN202010603030 A CN 202010603030A CN 111752911 A CN111752911 A CN 111752911A
Authority
CN
China
Prior art keywords
queue
written
transmission channels
writing
transmission
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
Application number
CN202010603030.7A
Other languages
English (en)
Inventor
胡永泽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202010603030.7A priority Critical patent/CN111752911A/zh
Publication of CN111752911A publication Critical patent/CN111752911A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本发明提供一种基于Flume的数据传输方法、系统、终端及存储介质,包括:S1、创建存放传输通道的队列,包括:待写入队列和写入成功队列;S2、获取所有需要写入事件的传输通道并放入待写入队列;S3、从待写入队列中顺序获取传输通道,逐一执行写入事件操作并进行监控操作结果:若写入成功,则将写入成功的传输通道转移到写入成功队列;若写入失败,则对当前操作的传输通道以及写入成功队列中的传输通道全部进行事务回滚操作;S4、判断待写入队列是否为空:若是,在写入成功队列中依次获取传输通道,并逐一进行事务提交操作。本发明实现其中的一个传输通道出现故障时,其他传输通道不会被写入到重复的数据。

Description

一种基于Flume的数据传输方法、系统、终端及存储介质
技术领域
本发明属于分布式文件处理技术领域,具体涉及一种基于Flume的数据传输方法、系统、终端及存储介质。
背景技术
在大数据时代,Flume作为一个优秀的采集工具,应用于多个场景,采集分发日志是一个十分重要的功能。如图1所示的Flume分发日志的架构,数据源将采集的数据封装为事件后会通过传输通道选择器将其复制分发到各个传输通道中,传输通道后面的Sink从传输通道中获取数据,从而将日志信息写入目的地。
在现有的Flume架构中,传输通道选择器(channel Selector)通过事件的方式,向每一个传输通道(channel)发送事件,确保数据不会在数据源发向传输通道(channel)的过程中丢失,保证数据的至少一次语义。如图1所示,由于多个传输通道(channel)之间的事件没有关联,在一个数据源(Source)需要将事件分发到多个传输通道(channel)中时,在一个传输通道(channel)出现失败时,而之前的传输通道(channel)为成功时,选择器(channelSelector)让发送失败的传输通道进行事件回滚,之后向数据源(Source)返回发送失败的结果。数据源(Source)进行休眠后重新发送上次发送失败的事件,而其他的传输通道(channel)的事件已经提交,无法回滚,将会导致上次发送失败的事件重复发送到已经发送成功的传输通道(channel)中,被接收器(Sink)消费,写入目的地。最终导致出现大量的重复数据,对后面的数据清洗与计算产生很大干扰。
发明内容
针对现有技术的上述不足,本发明提供一种基于Flume的数据传输方法、系统、终端及存储介质,以解决上述技术问题。
本发明提供一种基于Flume的数据传输方法,包括:
S1、创建存放传输通道的队列,包括:待写入队列和写入成功队列;
S2、获取所有需要写入事件的传输通道并放入待写入队列;
S3、从待写入队列中顺序获取传输通道,逐一执行写入事件操作并进行监控操作结果:
若写入成功,则将写入成功的传输通道转移到写入成功队列;
若写入失败,则对当前操作的传输通道以及写入成功队列中的传输通道全部进行事务回滚操作;
S4、判断待写入队列是否为空:若是,在写入成功队列中依次获取传输通道,并逐一进行事务提交操作。
进一步的,所述方法还包括:
将进行事务回滚操作的所有传输通道重新放入待写入队列;
向数据源返回发送失败的结果,等待数据源重新向传输通道发送事件。
进一步的,所述存放传输通道事件的队列,还包括:提交成功队列。
进一步的,所述方法还包括:
将提交成功的传输通道放入提交成功队列中;
判断写入成功队列是否为空:若是,则向数据源返回提交成功的结果。
进一步的,在向数据源返回提交成功的结果之后,所述方法还包括:
数据源接收提交成功的结果;
数据源发送下一个事件到Flume,再次进行步骤S2。
第二方面,本发明提供一种基于Flume的数据传输系统,包括:
队列创建单元,配置用于创建存放传输通道的队列,包括:待写入队列和写入成功队列;
通道获取单元,配置用于获取所有需要写入事件的传输通道并放入待写入队列;
事件写入单元,配置用于从待写入队列中顺序获取传输通道,逐一执行写入事件操作并进行监控操作结果:若写入成功,则将写入成功的传输通道转移到写入成功队列;若写入失败,则对当前操作的传输通道以及写入成功队列中的传输通道全部进行事务回滚操作;
事件提交单元,配置用于判断待写入队列是否为空:若是,在写入成功队列中依次获取传输通道,并逐一进行事务提交操作。
第三方面,提供一种终端,包括:
处理器、存储器,其中,
该存储器用于存储计算机程序,
该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本发明的有益效果在于,
本发明提供的一种基于Flume的数据传输方法、系统、终端及存储介质,统一管理该Flume的所有传输通道,实现其中的一个传输通道出现故障时,其他传输通道不会被重复写入事件,提高Flume采集数据的质量与采集数据的可靠性,降低数据清洗与计算的压力。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明Flume系统的数据传递示意图;
图2是本发明方法的示意性流程图;
图3是本发明出现故障时的一种实施例的流程图;
图4是本发明一个实施例的阶段一的示意性流程图;
图5是本发明一个实施例的阶段二的示意性流程图;
图6是本发明一个实施例的系统的结构示意图;
图7是本发明一种终端的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
下面对本发明中出现的关键术语进行解释:
Channel:传输通道,Flume架构内的对事件进行暂存的存储器;
Source:将Flume架构内的传输以事件的形式发送到传输通道;
Channel Selector:传输通道选择器,Flume架构内的对channel进行选择的工具;
Sink:从Channels消费事件并将其传递给目标地,目标地可能是另一个Source,也可能HDFS,HBase等系统。
回滚(Rollback):指的是程序或数据处理错误,将程序或数据恢复到上一次正确状态的行为。
如图2所示,该方法包括:
S1、创建存放传输通道的队列,包括:待写入队列和写入成功队列;
S2、获取所有需要写入事件的传输通道并放入待写入队列;
S3、从待写入队列中顺序获取传输通道,逐一执行写入事件操作并进行监控操作结果:
若写入成功,则将写入成功的传输通道转移到写入成功队列;
若写入失败,则对当前操作的传输通道以及写入成功队列中的传输通道全部进行事务回滚操作;
S4、判断待写入队列是否为空:若是,在写入成功队列中依次获取传输通道,并逐一进行事务提交操作。
可选地,作为本发明一个实施例,所述方法还包括:
将进行事务回滚操作的所有传输通道重新放入待写入队列;
向数据源返回发送失败的结果,等待数据源重新向传输通道发送事件。
可选地,作为本发明一个实施,所述存放传输通道事件的队列,还包括:提交成功队列。
可选地,作为本发明一个实施例,所述方法还包括:
将提交成功的传输通道放入提交成功队列中;
判断写入成功队列是否为空:若是,则向数据源返回提交成功的结果。
可选地,作为本发明一个实施例,在向数据源返回提交成功的结果之后,所述方法还包括:
数据源接收提交成功的结果;
数据源发送下一个事件到Flume,再次进行步骤S2。
为了便于对本发明的理解,下面以本发明一种基于Flume的数据传输方法的原理,结合实施例中对Flume工作的过程,对本发明提供的一种基于Flume的数据传输方法做进一步的描述。
具体的,所述一种基于Flume的数据传输方法包括:
本方法将往多个Channel发送数据的过程拆分为两个阶段,在整个过程中存在三个存放Channel信息的队列,分别为待写入队列、写入成功队列和提交成功队列。如图4所示,阶段一的流程如下:
一、当传输通道写入未发生故障时,阶段一的正常流程(110)为:
步骤111、获取到所有需要写入事件Channel,放入待写入队列;
步骤112、从待写入队列中获取到一个Channel,作为当前处理Channel,对其进行事件写入操作;
步骤113、如果当前处理Channel事件写入成功,将该Channel放入到写入成功队列中,并判断待写入队列是否为空;
步骤114、如果待写入队列不为空,则再次执行步骤2;
步骤115、如果待写入队列为空,直到待写入队列为空,即所有事件均写入成功,阶段一结束,开始第二阶段。
二、当Channel写入存在故障发生时,如图3所示,阶段一的异常流程(120)为:
步骤121、获取到所有需要写入事件Channel,放入待写入队列;
步骤122、从待写入队列中获取到一个Channel,作为当前处理Channel,对其进行事件写入操作;
步骤123、如果当前处理Channel写入失败,则对该Channel进行事务回滚操作;
步骤124、遍历所有写入成功队列,对写入成功队列的Channel进行事务回滚操作;
步骤125、向Source返回发送失败的结果,等待Source重新发送数据。
二、阶段二(200)为传输通道的提交过程,阶段二(200)只有在阶段一执行成功后才可以执行,如图5所示,具体过程如下:
步骤210、从写入成功队列中获取Channel;
步骤220、对该Channel进行事务提交操作,并将该Channel放入事件提交队列中;
步骤230、判断写入成功队列是否为空,如果不为空,则再次执行步骤210,如果为空,则进入下一步。
步骤240、向Source返回提交成功的结果,结束阶段二。
此外,在Channel进行事务提交操作成功后,Flume中的Sink取出Channel中的数据,提交到远程服务器、存储文件系统或数据库等。
如图6示,该系统400包括:
队列创建单元410,配置用于创建存放传输通道的队列,包括:待写入队列和写入成功队列;
通道获取单元420,配置用于获取所有需要写入事件的传输通道并放入待写入队列;
事件写入单元430,配置用于从待写入队列中顺序获取传输通道,逐一执行写入事件操作并进行监控操作结果:若写入成功,则将写入成功的传输通道转移到写入成功队列;若写入失败,则对当前操作的传输通道以及写入成功队列中的传输通道全部进行事务回滚操作;
事件提交单元440,配置用于判断待写入队列是否为空:若是,在写入成功队列中依次获取传输通道,并逐一进行事务提交操作。
图7为本发明实施例提供的一种终端系统300的结构示意图,该终端系统300可以用于执行本发明实施例提供的方法替换。
其中,该终端系统300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。
处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(Integrated Circuit,简称IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器310可以仅包括中央处理器(Central Processing Unit,简称CPU)。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
因此,本发明实现统一管理该Flume的所有传输通道,当其中的一个传输通道出现故障时,其他传输通道不会被写入到重复事件,提高Flume采集数据的质量与采集数据的可靠性,降低数据清洗与计算的压力。,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (8)

1.一种基于Flume的数据传输方法,其特征在于,包括:
S1、创建存放传输通道的队列,包括:待写入队列和写入成功队列;
S2、获取所有需要写入事件的传输通道并放入待写入队列;
S3、从待写入队列中顺序获取传输通道,逐一执行写入事件操作并进行监控操作结果:
若写入成功,则将写入成功的传输通道转移到写入成功队列;
若写入失败,则对当前操作的传输通道以及写入成功队列中的传输通道全部进行事务回滚操作;
S4、判断待写入队列是否为空:若是,在写入成功队列中依次获取传输通道,并逐一进行事务提交操作。
2.根据权利要求1所述的一种基于Flume的数据传输方法,其特征在于,所述方法还包括:
将进行事务回滚操作的所有传输通道重新放入待写入队列;
向数据源返回发送失败的结果,等待数据源重新向传输通道发送事件。
3.根据权利要求1所述的一种基于Flume的数据传输方法,其特征在于,所述存放传输通道事件的队列,还包括:提交成功队列。
4.根据权利要求3所述的一种基于Flume的数据传输方法,其特征在于,所述方法还包括:
将提交成功的传输通道放入提交成功队列中;
判断写入成功队列是否为空:若是,则向数据源返回提交成功的结果。
5.根据权利要求4所述的一种基于Flume的数据传输方法,其特征在于,在向数据源返回提交成功的结果之后,所述方法还包括:
数据源接收提交成功的结果;
数据源发送下一个事件到Flume,再次进行步骤S2。
6.一种基于Flume的数据传输系统,其特征在于,包括
队列创建单元,配置用于创建存放传输通道的队列,包括:待写入队列和写入成功队列;
通道获取单元,配置用于获取所有需要写入事件的传输通道并放入待写入队列;
事件写入单元,配置用于从待写入队列中顺序获取传输通道,逐一执行写入事件操作并进行监控操作结果:若写入成功,则将写入成功的传输通道转移到写入成功队列;若写入失败,则对当前操作的传输通道以及写入成功队列中的传输通道全部进行事务回滚操作;
事件提交单元,配置用于判断待写入队列是否为空:若是,在写入成功队列中依次获取传输通道,并逐一进行事务提交操作。
7.一种终端,其特征在于,包括:
处理器;
用于存储处理器的执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-5任一项所述的方法。
8.一种存储有计算机程序的计算机可读存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一项所述的方法。
CN202010603030.7A 2020-06-29 2020-06-29 一种基于Flume的数据传输方法、系统、终端及存储介质 Pending CN111752911A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010603030.7A CN111752911A (zh) 2020-06-29 2020-06-29 一种基于Flume的数据传输方法、系统、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010603030.7A CN111752911A (zh) 2020-06-29 2020-06-29 一种基于Flume的数据传输方法、系统、终端及存储介质

Publications (1)

Publication Number Publication Date
CN111752911A true CN111752911A (zh) 2020-10-09

Family

ID=72677939

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010603030.7A Pending CN111752911A (zh) 2020-06-29 2020-06-29 一种基于Flume的数据传输方法、系统、终端及存储介质

Country Status (1)

Country Link
CN (1) CN111752911A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113067883A (zh) * 2021-03-31 2021-07-02 建信金融科技有限责任公司 数据传输方法、装置、计算机设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040148283A1 (en) * 2003-01-27 2004-07-29 Jason Harris Event driven transaction state management with single cache for persistant framework
CN106201666A (zh) * 2016-06-24 2016-12-07 浪潮软件股份有限公司 一种分布式事务实现方法
CN110502317A (zh) * 2018-05-16 2019-11-26 北京京东尚科信息技术有限公司 一种事务管理的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040148283A1 (en) * 2003-01-27 2004-07-29 Jason Harris Event driven transaction state management with single cache for persistant framework
CN106201666A (zh) * 2016-06-24 2016-12-07 浪潮软件股份有限公司 一种分布式事务实现方法
CN110502317A (zh) * 2018-05-16 2019-11-26 北京京东尚科信息技术有限公司 一种事务管理的方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113067883A (zh) * 2021-03-31 2021-07-02 建信金融科技有限责任公司 数据传输方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
CN103201724B (zh) 在高可用性虚拟机环境中提供高可用性应用程序
CN107220142B (zh) 执行数据恢复操作的方法及装置
CN110807064B (zh) Rac分布式数据库集群系统中的数据恢复装置
CN106445644A (zh) 基于改进的一阶段提交的分布式事务的处理方法和装置
CN106503974B (zh) 交易数据处理方法及装置
CN103370694A (zh) 重启数据处理系统
CN111784329A (zh) 业务数据的处理方法和装置、存储介质、电子装置
CN109241186A (zh) 分布式事务的管理方法、系统、计算机设备及存储介质
CN113064744A (zh) 任务处理方法、装置、计算机可读介质及电子设备
CN108958984A (zh) 基于ceph的双活同步在线热备方法
CN108418859B (zh) 写数据的方法和装置
CN110121694B (zh) 一种日志管理方法、服务器和数据库系统
CN113076304A (zh) 一种分布式版本管理方法、装置和系统
CN111049913B (zh) 数据文件的传输方法及装置、存储介质、电子设备
CN115617908A (zh) 一种MySQL数据同步方法、装置、数据库终端、介质及系统
CN112181723A (zh) 一种金融灾备方法、装置、存储介质及电子设备
CN111722946A (zh) 分布式事务处理方法、装置、计算机设备及可读存储介质
CN111752911A (zh) 一种基于Flume的数据传输方法、系统、终端及存储介质
CN108241616B (zh) 消息推送方法和装置
CN112632093A (zh) 工单处理方法、设备、系统、存储介质及程序产品
CN110827001A (zh) 一种会计事件记账方法、系统、设备和存储介质
CN114218303B (zh) 一种交易数据的处理系统、处理方法、介质和设备
CN111666132B (zh) 分布式事务实现方法、装置、计算机系统及可读存储介质
CN112463887A (zh) 一种数据处理方法、装置、设备及存储介质
CN114356970A (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

Application publication date: 20201009

RJ01 Rejection of invention patent application after publication