[发明专利]一种基于Flume的数据传输方法、系统、终端及存储介质在审
申请号: | 202010603030.7 | 申请日: | 2020-06-29 |
公开(公告)号: | CN111752911A | 公开(公告)日: | 2020-10-09 |
发明(设计)人: | 胡永泽 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F16/18 | 分类号: | G06F16/18 |
代理公司: | 济南舜源专利事务所有限公司 37205 | 代理人: | 刘雪萍 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 flume 数据传输 方法 系统 终端 存储 介质 | ||
本发明提供一种基于Flume的数据传输方法、系统、终端及存储介质,包括:S1、创建存放传输通道的队列,包括:待写入队列和写入成功队列;S2、获取所有需要写入事件的传输通道并放入待写入队列;S3、从待写入队列中顺序获取传输通道,逐一执行写入事件操作并进行监控操作结果:若写入成功,则将写入成功的传输通道转移到写入成功队列;若写入失败,则对当前操作的传输通道以及写入成功队列中的传输通道全部进行事务回滚操作;S4、判断待写入队列是否为空:若是,在写入成功队列中依次获取传输通道,并逐一进行事务提交操作。本发明实现其中的一个传输通道出现故障时,其他传输通道不会被写入到重复的数据。
技术领域
本发明属于分布式文件处理技术领域,具体涉及一种基于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、判断待写入队列是否为空:若是,在写入成功队列中依次获取传输通道,并逐一进行事务提交操作。
进一步的,所述方法还包括:
将进行事务回滚操作的所有传输通道重新放入待写入队列;
向数据源返回发送失败的结果,等待数据源重新向传输通道发送事件。
进一步的,所述存放传输通道事件的队列,还包括:提交成功队列。
进一步的,所述方法还包括:
将提交成功的传输通道放入提交成功队列中;
判断写入成功队列是否为空:若是,则向数据源返回提交成功的结果。
进一步的,在向数据源返回提交成功的结果之后,所述方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010603030.7/2.html,转载请声明来源钻瓜专利网。