CN117931756B - 一种基于Flink的FTP文件实时监控分析系统及方法 - Google Patents
一种基于Flink的FTP文件实时监控分析系统及方法 Download PDFInfo
- Publication number
- CN117931756B CN117931756B CN202410338600.2A CN202410338600A CN117931756B CN 117931756 B CN117931756 B CN 117931756B CN 202410338600 A CN202410338600 A CN 202410338600A CN 117931756 B CN117931756 B CN 117931756B
- Authority
- CN
- China
- Prior art keywords
- file
- processing
- ftp
- processed
- information
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000012544 monitoring process Methods 0.000 title claims abstract description 38
- 238000012545 processing Methods 0.000 claims abstract description 363
- 238000006073 displacement reaction Methods 0.000 claims abstract description 82
- 230000002159 abnormal effect Effects 0.000 claims abstract description 28
- 238000011084 recovery Methods 0.000 claims abstract description 11
- 230000005540 biological transmission Effects 0.000 claims description 37
- 230000008569 process Effects 0.000 claims description 31
- 230000007246 mechanism Effects 0.000 claims description 19
- 238000005111 flow chemistry technique Methods 0.000 claims description 16
- 238000000638 solvent extraction Methods 0.000 claims description 14
- 238000004458 analytical method Methods 0.000 claims description 9
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000012546 transfer Methods 0.000 abstract description 9
- 230000009286 beneficial effect Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000005856 abnormality Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 210000001072 colon Anatomy 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1858—Parallel file systems, i.e. file systems supporting multiple processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及文件处理技术领域,并具体公开了一种基于Flink的FTP文件实时监控分析系统及方法,其系统包括:状态信息获取模块,获取FTP路径中的第一状态信息和第二状态信息;正常处理模块,用于基于第一状态信息和第二状态信息及Flink的分布式处理模式执行当前FTP文件处理任务;消息位移信息获取模块、新任务生成模块及异常恢复执行模块,用于当监测到FTP文件的当前处理系统存在异常终止情况并恢复启动时,则基于最新获取的第二状态信息中的文件列表信息集合中每个文件的消息位移信息,生成新的FTP文件处理任务并执行;用以提供一种兼具实时性、监控功能稳定性以及流批统一兼容性的FTP文件的监控处理方式。
Description
技术领域
本发明涉及文件处理技术领域,特别涉及一种基于Flink的FTP文件实时监控分析系统及方法。
背景技术
目前,随着互联网技术的飞速发展,FTP(File Transfer Protocol)作为一种经典的文件传输协议,已经成为了网络应用中不可或缺的一部分。FTP协议具有跨平台、大文件传输、高可靠性及高安全性等优点,为用户提供便捷的文件上传下载服务。但是,FTP 本身并没有提供任何实时监控和分析功能,因此需要结合其他技术和工具来实现对 FTP文件的实时监控和分析。当前常见的文件监控处理方式有轮询扫描和监听机制,轮询扫描通过定时任务,轮训查询文件的最后修改时间,与上一次进行对比,如果发生变化,则说明文件已经修改,进行重新加载或对应的业务逻辑处理,轮训扫描优点是逻辑简单、容易实现,但伴随着实时性差、性能低下等问题。而监听机制例如在Java 7中新增了java.nio.file.WatchService,通过它可以实现文件变动的监听,WatchService是基于操作系统的文件系统监控器,可以监控系统所有文件的变化,无需遍历、无需比较,是一种基于信号收发的监控,效率高。监听机制虽然具备实时性较好、效率高的优点,但其有效范围受程序运行时约束,当程序异常、崩溃发生时,随之可能会出现监听失效的情况,导致数据完整性难以保证,同时也不容易做到流批统一兼容性等问题。
以上两种现有的对FTP文件的监控处理方式难以兼具实时性、监控功能稳定性以及流批统一兼容性。Flink 是一个开源的流处理框架,可以在分布式环境下进行实时数据处理和分析。在这种场景下,可以考虑使用 Flink 来构建一个FTP文件实时监控分析系统。
因此,本发明提出一种基于Flink的FTP文件实时监控分析系统及方法。
发明内容
本发明提供一种基于Flink的FTP文件实时监控分析系统及方法,用以无论在FTP文件的当前处理系统是否发生异常终止时都可以实时监控到FTP文件的处理状态,确保用户可以及时获取最新的文件信息,并利用Flink的流处理模式和分布式处理节点执行完毕FTP文件处理任务,通过Flink的实时流处理能力,系统能够在文件发生更改时迅速做出反应,减少了延迟时间。即提供一种兼具实时性、处理功能稳定性以及流批统一兼容性的FTP文件的监控处理方式。
本发明提供一种基于Flink的FTP文件实时监控分析系统,包括:
状态信息获取模块,用于基于Flink的内置机制,获取FTP路径中最新处理的时间戳信息作为第一状态信息,并获取FTP路径中最新处理的时间戳信息对应的文件列表信息集合作为第二状态信息,其中,文件列表信息集合至少包括最新处理的时间戳对应的文件列表中的每个文件的消息位移信息;
正常处理模块,用于当未检测到FTP文件的当前处理系统存在异常终止情况时,则基于最新获取的第一状态信息和第二状态信息以及Flink的分布式处理模式执行当前的FTP文件处理任务,直至完成当前FTP文件处理周期;
消息位移信息获取模块,用于当监测到FTP文件的当前处理系统存在异常终止情况并恢复启动时,则获取最新的第二状态信息中的文件列表信息集合中每个文件的消息位移信息;
新任务生成模块,用于基于最新获取的第二状态信息中的文件列表信息集合中每个文件的消息位移信息,生成新的FTP文件处理任务;
异常恢复执行模块,用于基于Flink的流处理模式执行新的FTP文件处理任务,直至完成当前FTP文件处理周期。
优选的,状态信息获取模块,包括:
文件信息扫描子模块,用于基于Flink的内置机制,扫描预定义规则的FTP路径中的所有文件和对应的文件信息,获得文件列表;
时间戳信息生成子模块,用于基于预定义规则的FTP路径中的所有文件的被扫描时间,生成FTP路径中最新处理的时间戳信息,作为第一状态信息;
处理顺序获取子模块,用于获取预定义规则中的标准处理顺序;
文件信息排序子模块,用于基于预定义规则中的标准处理顺序,对文件列表中的所有文件和对应的文件信息进行组合排序,获得FTP路径中最新处理的时间戳信息对应的文件列表信息集合作为第二状态信息。
优选的,正常处理模块,包括:
当前任务生成子模块,用于当未检测到FTP文件的当前处理系统存在异常终止情况时,则基于预定义规则中的标准处理顺序,生成当前的FTP文件处理任务;
节点分配子模块,用于基于预设节点分配原则,为当前的FTP文件处理任务分配分布式处理节点,获得节点分配结果;
文件处理子模块,用于控制节点分配结果中的所有分布式处理节点以按块读取的方式处理当前的FTP文件处理任务,同时,在每次处理完一个数据块之后,同步更新对应文件在最新获取的第一状态信息中的时间戳信息和最新获取的第二状态信息中的消息位移信息,直至最新获得的所有文件的消息位移信息中的偏移量达到当前的FTP文件处理任务的块数量时,判定完成当前FTP文件处理周期。
优选的,节点分配子模块,包括:
文件数量确定单元,用于确定出当前的FTP文件处理任务中的所有需处理文件的文件数量;
文件及节点排序单元,用于当文件数量不超出Flink中的所有分布式处理节点的总数时,则按照文件大小从大到小的顺序对所有需处理文件进行排序,获得文件序列,同时,按照运行速度从大到小的顺序对Flink中的所有分布式处理节点进行排序,获得节点序列;
第一节点分配单元,用于将文件序列中的每个需处理文件的子处理任务,分配至节点序列中序数与对应需处理文件在文件序列中的序数相同的分布式处理节点,获得节点分配结果;
第二节点分配单元,用于当文件数量超出Flink中的所有分布式处理节点的总数时,则基于当前的FTP文件处理任务中的所有需处理文件的文件大小和Flink中的所有分布式处理节点的运行速度,获得节点分配结果。
优选的,第二节点分配单元,包括:
多次划分子单元,用于对当前的FTP文件处理任务中的所有需处理文件进行预设次数的划分,获得每个划分过程的多个文件簇,其中,文件簇的总数等于Flink中的所有分布式处理节点的总数;
数据量计算子单元,用于计算出每个划分过程的每个文件簇中所有需处理文件的文件大小之和,作为簇需处理数据量;
文件簇排序子单元,用于按照簇需处理数据量从大到小的顺序,对每个划分过程的所有文件簇进行排序,获得文件簇序列;
处理时间确定子单元,用于将文件簇序列中的每个文件簇的簇需处理数据量,与节点序列中序数与对应文件簇在文件簇序列中的序数相同的分布式节点的运行速度之商,当作每个文件簇的簇需处理时间,将每个划分过程的最大簇需处理时间作为每个划分过程的总处理时间;
节点分配子单元,用于将最小总处理时间对应的划分过程中的文件簇序列中的每个文件簇,分配至节点序列中序数与对应需处理文件在文件序列中的序数相同的分布式处理节点,获得节点分配结果,其中,文件簇中每个文件在对应分布式处理节点中的被处理先后顺序与文件簇中每个文件在标准处理顺序中的先后顺序一致。
优选的,新任务生成模块,包括:
第一新任务生成子模块,用于判断出最新获取的第二状态信息中的文件列表信息集合中是否存在消息位移信息为空的第一待处理文件,若是,则判断出最新获取的第二状态信息中的文件列表信息集合中的所有消息位移信息是否都为空,若是,则基于最新获取的第二状态信息中的文件列表信息集合生成新的批处理任务,作为新的FTP文件处理任务;
第二新任务生成子模块,用于当最新获取的第二状态信息中的文件列表信息集合中的所有消息位移信息不是都为空时,则生成两个部分新的FTP文件处理任务;
处理周期完成提示子模块,用于当最新获取的第二状态信息中的文件列表信息集合中不存在消息位移信息为空的待处理文件时,则判定完成当前FTP文件处理周期。
优选的,第二新任务生成子模块,包括:
第一新任务生成单元,用于当最新获取的第二状态信息中的文件列表信息集合中的所有消息位移信息不是都为空时,则基于最新获取的第二状态信息中的文件列表信息集合中当前存在的所有第一待处理文件和Flink中的所有可分配分布式处理节点,生成第一部分新的FTP文件处理任务;
消息位移信息获取单元,用于当最新获取的第二状态信息中的文件列表信息集合中的所有消息位移信息不是都为空时,则获取最新的第二状态信息中的文件列表信息集合中消息位移信息不为空的第二待处理文件的消息位移信息;
第二新任务生成单元,用于基于最新获取的第二状态信息中的文件列表信息集合中的所有第二待处理文件的消息位移信息,生成断点续传任务,作为第二部分新的FTP文件处理任务。
优选的,异常恢复执行模块,包括:
块数量确定子模块,用于获取第二部分新的FTP文件处理任务中的每个第二待处理文件的子续传任务的需处理文件大小,并基于每个子续传任务的需处理文件大小确定出每个子续传任务的块数量;
断点续传执行子模块,用于基于Flink的流处理模式,对第二部分新的FTP文件处理任务中的所有第二待处理文件进行断点续传,直至最新获得的所有第二待处理文件的所有消息位移信息中的偏移量达到对应第二待处理文件的子续传任务的块数量,且最新获得的所有第一待处理文件的所有消息位移信息中的偏移量达到对应第一待处理文件的块数量时,则判定完成当前FTP文件处理周期。
优选的,异常恢复执行模块,包括:
节点重分配子模块,用于基于预设节点分配原则,将最新获取的第二状态信息中的文件列表信息集合中当前存在的所有第一待处理文件分发至Flink中的可分配分布式处理节点进行处理,获得每个可分配分布式处理节点的需处理任务;
任务流处理子模块,用于基于Flink的流处理模式控制每个可分配分布式处理节点执行对应的需处理任务,直至最新获得的所有第一待处理文件的所有消息位移信息中的偏移量达到对应第一待处理文件的块数量,且最新获得的所有第二待处理文件的所有消息位移信息中的偏移量达到对应第二待处理文件的子续传任务的块数量时,则判定完成当前FTP文件处理周期。
本发明提供一种基于Flink的FTP文件实时监控分析方法,包括:
S1:基于Flink的内置机制,获取FTP路径中最新处理的时间戳信息作为第一状态信息,并获取FTP路径中最新处理的时间戳信息对应的文件列表信息集合作为第二状态信息,其中,文件列表信息集合至少包括最新处理的时间戳对应的文件列表中的每个文件的消息位移信息;
S2:当未检测到FTP文件的当前处理系统存在异常终止情况时,则基于最新获取的第一状态信息和第二状态信息以及Flink的分布式处理模式执行当前的FTP文件处理任务,直至完成当前FTP文件处理周期;
S3:当监测到FTP文件的当前处理系统存在异常终止情况并恢复启动时,则获取最新的第二状态信息中的文件列表信息集合中每个文件的消息位移信息;
S4:基于最新获取的第二状态信息中的文件列表信息集合中每个文件的消息位移信息,生成新的FTP文件处理任务;
S5:基于Flink的流处理模式执行新的FTP文件处理任务,直至完成当前FTP文件处理周期。
本发明相对于现有技术产生的有益效果为:无论在FTP文件的当前处理系统是否发生异常终止时都可以实时监控到FTP文件的处理状态,确保用户可以及时获取最新的文件信息,并利用Flink的流处理模式和分布式处理节点执行完毕FTP文件处理任务,通过Flink的实时流处理能力,系统能够在文件发生更改时迅速做出反应,减少了延迟时间。即提供一种兼具实时性、处理功能稳定性以及流批统一兼容性的FTP文件的监控处理方式。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在本申请文件中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中的基于Flink的FTP文件实时监控分析系统的内部功能模块示意图;
图2为本发明实施例中的状态信息获取模块的内部功能子模块示意图;
图3为本发明实施例中的基于Flink的FTP文件实时监控分析方法流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1:
本发明提供了一种基于Flink的FTP文件实时监控分析系统,参考图1,包括:
状态信息获取模块,用于基于Flink的内置机制,获取FTP路径中最新处理的时间戳信息作为第一状态信息,并获取FTP路径中最新处理的时间戳信息对应的文件列表信息集合作为第二状态信息,其中,文件列表信息集合至少包括最新处理的时间戳对应的文件列表中的每个文件的消息位移信息;
正常处理模块,用于当未检测到FTP文件的当前处理系统存在异常终止情况时,则基于最新获取的第一状态信息和第二状态信息以及Flink的分布式处理模式执行当前的FTP文件处理任务,直至完成当前FTP文件处理周期;
消息位移信息获取模块,用于当监测到FTP文件的当前处理系统存在异常终止情况并恢复启动时,则获取最新的第二状态信息中的文件列表信息集合中每个文件的消息位移信息;
新任务生成模块,用于基于最新获取的第二状态信息中的文件列表信息集合中每个文件的消息位移信息,生成新的FTP文件处理任务;
异常恢复执行模块,用于基于Flink的流处理模式执行新的FTP文件处理任务,直至完成当前FTP文件处理周期。
该实施例中,Flink的内置机制为flink中checkpoint机制。
该实施例中,FTP路径为FTP路径(File Transfer Protocol Path)是在FTP协议中用来指定文件或目录的特定部分的路径表示法,在FTP中,用户通过路径来访问FTP服务器上的文件和目录;
FTP路径是由一系列的子路径组成的,每个子路径都以冒号(:)分隔。最常用的部分是根路径,表示FTP服务器上最上级目录。其他常见的部分包括:
用户主目录:用户的个人工作区,用于存储用户创建的文件和文件夹。
共享目录:服务器管理员用于存放公共文件和文件夹的目录。
站点目录:由服务器管理员用于存放代理服务器配置和其他管理信息的目录。
该实施例中,最新处理的时间戳信息表示文件最近一次被处理的日期和时间。
该实施例中,最新处理的时间戳信息对应的文件列表信息集合是由最新处理的时间戳信息中涉及的所有文件及其对应的文件信息构成的信息集合列表。
该实施例中,消息位移信息为offset位置信息,是指从文件系统块开始的位置,用于指示特定的二进制块的内容。这些内容通常是有关文件或目录信息的,如创建者、所有者和权限等。Offset位置信息可以通过使用FTP客户端的"OPTS"命令设置"binary type"来获取。它告诉FTP客户端以二进制形式发送请求。然后是目标文件路径。
请求返回的结果将是一个二进制块,其中包含了与指定文件相关的Offset位置信息。这个二进制块的大小取决于文件大小和FTP服务器设置。
在使用FTP协议时,需要确保正确解析和处理这些Offset位置信息,以便能够有效地管理和操作文件和目录。
Offset位置信息是用于计算文件系统块大小的关键信息。当我们使用FTP客户端下载文件时,例如,从一个远程FTP服务器上下载一个文件。为了确定文件系统的位置,客户端必须知道文件系统块的大小。该大小取决于文件的尺寸以及使用的文件系统类型。然后,客户端可以通过比较Offset位置信息和文件系统块大小的概念来计算文件系统块的数量。这使得可以准确地将文件下载到内存中并确保它完全下载。指的是一个存储器中的偏移地址。这意味着它是距离指定位址(也称为基址或起始地址)的量。Offset位置信息通常在二进制文件系统中找到,这些文件系统主要用于磁盘驱动器和虚拟内存管理中。当处理文件系统时,需要知道Offset的位置以便正确计算文件的实际位置。
该实施例中,异常终止情况例如由处理系统的运行硬件设备的工作中断引起的处理程序异常终止。
该实施例中,Flink的分布式处理模式即为利用Flink框架中的分布式处理节点对需处理任务(例如文件的读取获取下载)进行并行处理的工作模式。
该实施例中,当前FTP文件处理周期为处理当前关于FTP文件的一个批任务所需的处理时间周期。
该实施例中,FTP文件处理任务为与FTP文件相关的处理任务,例如,对FTP文件的读取下载,其中,FTP文件即为采用FTP协议实现该文件在两台计算机之间的传输共享的文件,其形式可以是文本、图像、音频、视频等。
该实施例中, Flink提供了一系列内置的流处理模式,以支持各种常见的大数据处理任务。这些模式允许用户以简单的API调用方式来定义复杂的处理逻辑。主要的流处理模式如下: Flink提供了多种流处理模式,用于处理各种不同的数据处理任务。以下是其中一些主要的模式:顺序(Sequential)、并行(Parallel)、窗口(Window)、状态(Stateful)、迭代(Iteration)、错误处理(Error Handling)、中断(Interruptable)等,这些模式可以用作构建更复杂处理管道的基础,例如,可以先进行简单的序列化处理,然后将其放入一个有界窗口中,最后仅在需要时从窗口中获取数据。
该实施例中,我们采用类似flink中checkpoint机制记录当前最新的状态信息,状态信息是基于FTP服务的IP+Port+Path为key的数据结构中,状态数据可以放在外置存储中比如数据库、redis等。其中包括两组状态信息;
状态一(即第一状态信息):FTP路径中处理的最新的时间戳位置信息;
状态二(即第二状态信息):FTP路径中对应上述时间段的文件列表信息集合;
充分利用以上两组状态信息,可以解决前面的提到的诸多问题。
在正常处理流程中,程序以下面的逻辑推进可以实现FTP文件的实时监控和处理;这里以redis状态存储为例说明;
首次运行时,redis中无状态,则可以根据初始化的规则进行首次处理(规则可以预定义,例如:earliest/latest/custom 等)。这里假设采用earliest规则,这是程序会扫描所有文件信息,按文件时间排序把最新的文件时间戳信息记录到“状态一”中,文件列表信息记录到“状态二”中,包括文件名、文件大小以及文件被处理的offset位置信息;
然后系统开始按文件顺序处理文件,可以结合Flink的分布式处理能力,把文件分发到集群中并行处理。为提高数据的读取与下载能力,这里采用按块读取文件的方式(假设按Block=16MB),当处理完一个Block之后更新一下“状态二”中对应的文件offset信息;
当一个文件处理完成以后,则把文件信息从“状态二”文件列表中移除,然后继续接收下一个文件处理,重复以上步骤直至完成这一次扫描获取的所有文件集合;
下一次扫描操作,基于“状态一”中记录的时间戳信息,通过Ftp的listFiles结合FileFilter功能,获取FTP上时间戳之后的新文件集合,进入一个新的处理周期;
正常情况下的再次运行时,在批处理模式下,再次运行同上述流程中的下一次扫描操作一致;
异常情况下的再次运行时,当系统异常终止,可能存在上一批文件没有处理完成,甚至有可能存在某些文件只处理了一部分等非正常情况因此,在系统启动时,首先检查“状态二”中的文件列表信息;如果有则优先加载这些数据进行处理;同样按标准的处理流程进行,如果文件的offset信息为空则表示还未进行处理该文件,直接分发到处理模块处理;如果文件的offset信息不为空,则表示该文件已经被处理了一部分,则处理模块需要根据记录的offset信息继续后续内容处理,这样就相当于实现了类似断点续传的能力;
把上述遗留的文件列表处理完成以后,再按正常流程一样进行下一次处理周期,流程与之前的一致。
本方案能够解决传统模式下大部分痛点;
结合FTP的listFiles和FileFilter能实现高效的文件获取,可以避免大量文件的比较与缓存等问题;
通过状态数据记录,可以实现在多FTP服务、多路径、多文件信息记录等复杂的环境下,结合Flink的并行处理能力能够轻松实现高效的多文件高效处理;
能够解决诸多现实中经常发生的系统异常、宕机所导致的数据完整性问题,以及可以支持文件继的断点续传能力;
能够完美契合流处理和批处理模式的统一。
以上技术的有益效果为:无论在FTP文件的当前处理系统是否发生异常终止时都可以实时监控到FTP文件的处理状态,确保用户可以及时获取最新的文件信息,并利用Flink的流处理模式和分布式处理节点执行完毕FTP文件处理任务,通过Flink的实时流处理能力,系统能够在文件发生更改时迅速做出反应,减少了延迟时间。即提供一种兼具实时性、处理功能稳定性以及流批统一兼容性的FTP文件的监控处理方式。
实施例2:
在实施例1的基础上,状态信息获取模块,参考图2,包括:
文件信息扫描子模块,用于基于Flink的内置机制,扫描预定义规则的FTP路径中的所有文件和对应的文件信息,获得文件列表;
时间戳信息生成子模块,用于基于预定义规则的FTP路径中的所有文件的被扫描时间,生成FTP路径中最新处理的时间戳信息,作为第一状态信息;
处理顺序获取子模块,用于获取预定义规则中的标准处理顺序;
文件信息排序子模块,用于基于预定义规则中的标准处理顺序,对文件列表中的所有文件和对应的文件信息进行组合排序,获得FTP路径中最新处理的时间戳信息对应的文件列表信息集合作为第二状态信息。
该实施例中,预定义规则为当前对FTP处理时用户选择或定义的对FTP文件所应用的规则,例如:earliest/latest/custom 等。
该实施例中,FTP路径中的所有文件为最新处理的时间戳信息中涉及的所有文件。
该实施例中,文件信息包括文件名、文件大小以及文件被处理的offset位置信息。
该实施例中,文件列表为包含FTP路径中的所有文件的列表。
该实施例中,预定义规则中的标准处理顺序,具体是指:
Earliest Deadline First (EDF): 最早到期的任务先执行,这种方法的基本思想是,将所有任务的到期时间作为任务的优先级,最早到期的时间最短,所以它应该最先被执行;
Latest Deadline First (LDF): 最晚到期的任务先执行,这种方法的基本思想是,将所有任务的到期时间作为任务的优先级,最晚到期的时间最长,所以它应该最后被执行;
Custom Priority: 自定义优先级,在这种方法中,我们可以人为地将任务的优先级设定为固定的值,例如,将所有紧急任务的优先级设为“高”,将所有非紧急任务的优先级设为“低”。
在实际应用中,需要根据实际情况选择合适的任务优先级规则。对于某些任务,客户可能希望尽快完成它们,因此选择EDF规则;对于另一些任务,客户可能更关心它们的截止时间,因此选择LDF规则;而对于一些特殊的任务,可能需要人为地进行优先级的设定。
该实施例中,基于预定义规则中的标准处理顺序,对文件列表中的所有文件和对应的文件信息进行组合排序,获得FTP路径中最新处理的时间戳信息对应的文件列表信息集合为:
基于预定义规则中的优先级依据特征,确定出的文件排序顺序(例如到期时间早晚,采用Latest Deadline First (LDF): 最晚到期的任务先执行,则按照到期时间从晚到早的顺序对所有文件进行排序),将文件列表中的所有文件及其文件信息进行组合后排序,获得文件列表信息集合。
以上技术的有益效果为:实现对FTP文件的时间戳信息的获取以及涉及的所有文件的文件信息的获取和排序。
实施例3:
在实施例1的基础上,正常处理模块,包括:
当前任务生成子模块,用于当未检测到FTP文件的当前处理系统存在异常终止情况时,则基于预定义规则中的标准处理顺序,生成当前的FTP文件处理任务;
节点分配子模块,用于基于预设节点分配原则,为当前的FTP文件处理任务分配分布式处理节点,获得节点分配结果;
文件处理子模块,用于控制节点分配结果中的所有分布式处理节点以按块读取的方式处理当前的FTP文件处理任务,同时,在每次处理完一个数据块之后,同步更新对应文件在最新获取的第一状态信息中的时间戳信息和最新获取的第二状态信息中的消息位移信息,直至最新获得的所有文件的消息位移信息中的偏移量达到当前的FTP文件处理任务的块数量时,判定完成当前FTP文件处理周期。
该实施例中,预设节点分配原则为实施例4和5中涉及的具体实施方案。
该实施例中,分布式处理节点为Flink框架中的用于对文件进行并行处理的节点,分布式处理节点可以同时运行并执行一个或多个任务。
该实施例中,节点分配结果包含每个分布式处理节点的需执行任务(包含文件名和文件大小以及文件处理顺序)。
该实施例中,按块读取的方式是指将文件的数据以固定大小的块(block)为单位进行读取操作,假设按Block=16MB读取。
该实施例中,在Flink中,offset位置信息表示了离输入记录的起始偏移量(例如为100)的相对块数量偏移量(假设当前偏移量数值为150,则对应的相对块数量偏移量为50),根据当前的offset位置信息中的相对块数量偏移量可以确定出文件处理进度或文件已处理大小(根据预设的块大小和相对块数量偏移量确定,例如块大小为Block=16MB,则相对块数量偏移量为50时对应的文件已处理大小为800MB)。
该实施例中,当前的FTP文件处理任务的块数量为当前需要被处理的所有完整FTP文件的文件大小与预设的块大小之商向上取整后的数值之和。
以上技术的有益效果为:当未检测到FTP文件的当前处理系统存在异常终止情况时,基于预定义规则和Flink中的所有分布式处理节点,实现对FTP文件的批任务的流模式处理。
实施例4:
在实施例3的基础上,节点分配子模块,包括:
文件数量确定单元,用于确定出当前的FTP文件处理任务中的所有需处理文件的文件数量;
文件及节点排序单元,用于当文件数量不超出Flink中的所有分布式处理节点的总数时,则按照文件大小从大到小的顺序对所有需处理文件进行排序,获得文件序列,同时,按照运行速度从大到小的顺序对Flink中的所有分布式处理节点进行排序,获得节点序列;
第一节点分配单元,用于将文件序列中的每个需处理文件的子处理任务,分配至节点序列中序数与对应需处理文件在文件序列中的序数相同的分布式处理节点,获得节点分配结果;
第二节点分配单元,用于当文件数量超出Flink中的所有分布式处理节点的总数时,则基于当前的FTP文件处理任务中的所有需处理文件的文件大小和Flink中的所有分布式处理节点的运行速度,获得节点分配结果。
该实施例中,需处理文件为当前的FTP文件处理任务中包含的需要被处理的FTP文件。
该实施例中,分布式处理节点的运行速度与其资源分配有关(例如网络带宽或可使用运行内存等),这里分布式处理节点的运行速度为预先基于其资源分配情况确定的。
该实施例中,将文件序列中的每个需处理文件的子处理任务,分配至节点序列中序数与对应需处理文件在文件序列中的序数相同的分布式处理节点,获得节点分配结果,例如为:
将文件序列中序数为1的需处理文件的子处理任务,分配至节点序列中序数序数为1的分布式处理节点;
将文件序列中序数为2的需处理文件的子处理任务,分配至节点序列中序数序数为2的分布式处理节点;
以此类推,获得节点分配结果。
以上技术的有益效果为:提供了一种当当前的FTP文件处理任务中的所有需处理文件的文件数量不超出Flink中的所有分布式处理节点的总数时,为当前的FTP文件处理任务分配分布式处理节点的预设节点分配原则(或机制),保证了当前的FTP文件处理任务被Flink中的所有分布式处理节点并行处理的效率。
实施例5:
在实施例4的基础上,第二节点分配单元,包括:
多次划分子单元,用于对当前的FTP文件处理任务中的所有需处理文件进行预设次数的划分,获得每个划分过程的多个文件簇,其中,文件簇的总数等于Flink中的所有分布式处理节点的总数;
数据量计算子单元,用于计算出每个划分过程的每个文件簇中所有需处理文件的文件大小之和,作为簇需处理数据量;
文件簇排序子单元,用于按照簇需处理数据量从大到小的顺序,对每个划分过程的所有文件簇进行排序,获得文件簇序列;
处理时间确定子单元,用于将文件簇序列中的每个文件簇的簇需处理数据量,与节点序列中序数与对应文件簇在文件簇序列中的序数相同的分布式节点的运行速度之商,当作每个文件簇的簇需处理时间,将每个划分过程的最大簇需处理时间作为每个划分过程的总处理时间;
节点分配子单元,用于将最小总处理时间对应的划分过程中的文件簇序列中的每个文件簇,分配至节点序列中序数与对应需处理文件在文件序列中的序数相同的分布式处理节点,获得节点分配结果,其中,文件簇中每个文件在对应分布式处理节点中的被处理先后顺序与文件簇中每个文件在标准处理顺序中的先后顺序一致。
该实施例中,在满足单次划分过程的文件簇的总数等于Flink中的所有分布式处理节点的总数的前提下,预设次数取对当前的FTP文件处理任务中的所有需处理文件所有可能划分情况的总数的百分之八十以上,每次划分对应一个划分过程,即划分过程的总数等于预设次数的数值。
该实施例中,每个划分过程的多个文件簇的文件簇总数等于Flink中的所有分布式处理节点的总数。
该实施例中,文件大小即文件数据量(以字节为单位)或占用内存(以内存单位为单位,例如MB)。
该实施例中,将文件簇序列中的每个文件簇的簇需处理数据量,与节点序列中序数与对应文件簇在文件簇序列中的序数相同的分布式节点的运行速度之商,当作每个文件簇的簇需处理时间,例如为:
将文件簇序列中序数为1的文件簇的簇需处理数据量,与节点序列中序数为1的分布式节点的运行速度之商,当作文件簇序列中序数为1的文件簇的簇需处理时间;
将文件簇序列中序数为2的文件簇的簇需处理数据量,与节点序列中序数为2的分布式节点的运行速度之商,当作文件簇序列中序数为2的文件簇的簇需处理时间;
以此类推,确定出每个文件簇的簇需处理时间。
该实施例中,簇需处理时间的含义是利用对应分布式节点处理对应文件簇中的所有文件时所需的总时间。
该实施例中,将最小总处理时间对应的划分过程中的文件簇序列中的每个文件簇,分配至节点序列中序数与对应需处理文件在文件序列中的序数相同的分布式处理节点,获得节点分配结果,例如:
将最小总处理时间对应的划分过程的文件簇序列中序数为1的文件簇中的所有文件的需处理任务,分配至节点序列中序数为1的分布式处理节点中(其中,序数为1的文件簇中的所有文件在序数为1的分布式处理节点的被处理顺序与文件簇中每个文件在标准处理顺序中的先后顺序一致);
将最小总处理时间对应的划分过程的文件簇序列中序数为2的文件簇中的所有文件的需处理任务,分配至节点序列中序数为2的分布式处理节点中(其中,序数为2的文件簇中的所有文件在序数为2的分布式处理节点的被处理顺序与文件簇中每个文件在标准处理顺序中的先后顺序一致);
以此类推,获得节点分配结果。
以上技术的有益效果为:将聚类分析算法与预设的以处理速度为原则的节点分配原则相结合,提供了一种当当前的FTP文件处理任务中的所有需处理文件的文件数量不超出Flink中的所有分布式处理节点的总数时,为当前的FTP文件处理任务分配分布式处理节点的预设节点分配原则(或机制),将大量需处理文件合理分配至有限的分布式处理节点中,保证了当前的FTP文件处理任务被Flink中的所有分布式处理节点并行处理的效率。
实施例6:
在实施例1的基础上,新任务生成模块,包括:
第一新任务生成子模块,用于判断出最新获取的第二状态信息中的文件列表信息集合中是否存在消息位移信息为空的第一待处理文件,若是,则判断出最新获取的第二状态信息中的文件列表信息集合中的所有消息位移信息是否都为空,若是,则基于最新获取的第二状态信息中的文件列表信息集合生成新的批处理任务,作为新的FTP文件处理任务;
第二新任务生成子模块,用于当最新获取的第二状态信息中的文件列表信息集合中的所有消息位移信息不是都为空时,则生成两个部分新的FTP文件处理任务;
处理周期完成提示子模块,用于当最新获取的第二状态信息中的文件列表信息集合中不存在消息位移信息为空的待处理文件时,则判定完成当前FTP文件处理周期。
该实施例中,消息位移信息为空的含义为当前偏移量等于输入记录的起始偏移量。
该实施例中,第一待处理文件消息位移信息为空的待处理的FTP文件。
该实施例中,基于最新获取的第二状态信息中的文件列表信息集合生成新的批处理任务,即为将所有(完全未被处理的)第一待处理文件的处理任务集合成一个批任务。
该实施例中,两个部分新的FTP文件处理任务中的部分新的FTP文件处理任务以FTP文件是否被部分处理为划分条件划分出的。
以上技术的有益效果为:在监测到FTP文件的当前处理系统存在异常终止情况并恢复启动时,根据所有待处理的FTP文件是否全部未被处理划分出的两种情况,提供了两种情况对应的新任务生成机制。
实施例7:
在实施例6的基础上,第二新任务生成子模块,包括:
第一新任务生成单元,用于当最新获取的第二状态信息中的文件列表信息集合中的所有消息位移信息不是都为空时,则基于最新获取的第二状态信息中的文件列表信息集合中当前存在的所有第一待处理文件和Flink中的所有可分配分布式处理节点,生成第一部分新的FTP文件处理任务;
消息位移信息获取单元,用于当最新获取的第二状态信息中的文件列表信息集合中的所有消息位移信息不是都为空时,则获取最新的第二状态信息中的文件列表信息集合中消息位移信息不为空的第二待处理文件的消息位移信息;
第二新任务生成单元,用于基于最新获取的第二状态信息中的文件列表信息集合中的所有第二待处理文件的消息位移信息,生成断点续传任务,作为第二部分新的FTP文件处理任务。
该实施例中,基于最新获取的第二状态信息中的文件列表信息集合中当前存在的所有第一待处理文件和Flink中的所有可分配分布式处理节点,生成第一部分新的FTP文件处理任务,即为:生成包含最新获取的第二状态信息中的文件列表信息集合中当前存在的所有第一待处理文件的完整处理任务的批任务,并指定Flink中的所有可分配分布式处理节点(即为当前未被占用或未被分配有任务的分布式处理节点)去执行。
该实施例中,第二待处理文件为消息位移信息不为空(含义为当前偏移量不等于输入记录的起始偏移量)的待处理的FTP文件。
该实施例中,基于最新获取的第二状态信息中的文件列表信息集合中的所有第二待处理文件的消息位移信息,生成断点续传任务,为:
基于最新获取的第二状态信息中的文件列表信息集合中的所有第二待处理文件的消息位移信息,确定出相对块数量偏移量,基于相对块数量偏移量确定出已处理文件大小,并进一步在对应文件中确定出断点续传的开始位置,并将对应文件的完整文件大小与已处理文件大小之差与预设块大小之商向上取整后的数值,当作断点续传任务的需处理块数量,利用断点续传的开始位置和对应时间戳的偏移量(作为断点续传的起始偏移量)和断点续传任务的需处理块数量,确定出断点续传任务。
以上技术的有益效果为:在最新获取的第二状态信息中的文件列表信息集合中的所有消息位移信息不是都为空时,以文件是否被处理过为划分条件划分为两种文件和对应的两个部分新的FTP文件处理任务,提供了在最新获取的第二状态信息中的文件列表信息集合中的所有消息位移信息不是都为空时对应的新任务生成机制。
实施例8:
在实施例7的基础上,异常恢复执行模块,包括:
块数量确定子模块,用于获取第二部分新的FTP文件处理任务中的每个第二待处理文件的子续传任务的需处理文件大小,并基于每个子续传任务的需处理文件大小确定出每个子续传任务的块数量;
断点续传执行子模块,用于基于Flink的流处理模式,对第二部分新的FTP文件处理任务中的所有第二待处理文件进行断点续传,直至最新获得的所有第二待处理文件的所有消息位移信息中的偏移量达到对应第二待处理文件的子续传任务的块数量,且最新获得的所有第一待处理文件的所有消息位移信息中的偏移量达到对应第一待处理文件的块数量时,则判定完成当前FTP文件处理周期。
该实施例中,子续传任务为处理单个第二待处理文件的任务。
该实施例中,子续传任务的需处理文件大小为文件的完整文件大小与已处理文件大小之差。
该实施例中,基于每个子续传任务的需处理文件大小确定出每个子续传任务的块数量为:每个子续传任务的需处理文件大小与预设块大小之商向上取整后的数值。
该实施例中,基于Flink的流处理模式,对第二部分新的FTP文件处理任务中的所有第二待处理文件进行断点续传为:基于Flink的流处理模式,对第二部分新的FTP文件处理任务中的所有第二待处理文件的子续传任务进行执行。
以上技术的有益效果为:提供了一种对由消息位移信息不为空的第二待处理文件构成的部分新的FTP文件处理任务的执行方法。
实施例9:
在实施例7的基础上,异常恢复执行模块,包括:
节点重分配子模块,用于基于预设节点分配原则,将最新获取的第二状态信息中的文件列表信息集合中当前存在的所有第一待处理文件分发至Flink中的可分配分布式处理节点进行处理,获得每个可分配分布式处理节点的需处理任务;
任务流处理子模块,用于基于Flink的流处理模式控制每个可分配分布式处理节点执行对应的需处理任务,直至最新获得的所有第一待处理文件的所有消息位移信息中的偏移量达到对应第一待处理文件的块数量,且最新获得的所有第二待处理文件的所有消息位移信息中的偏移量达到对应第二待处理文件的子续传任务的块数量时,则判定完成当前FTP文件处理周期。
该实施例中,基于预设节点分配原则,将最新获取的第二状态信息中的文件列表信息集合中当前存在的所有第一待处理文件分发至Flink中的可分配分布式处理节点进行处理,其预设节点分配原则与实施例4和5中涉及的具体实施方案的执行原理相同。
该实施例中,每个可分配分布式处理节点的需处理任务包含一个或多个第一待处理文件的完整处理任务。
以上技术的有益效果为:提供了一种对由消息位移信息为空的第一待处理文件构成的部分新的FTP文件处理任务的执行方法。
实施例10:
本发明提供了一种基于Flink的FTP文件实时监控分析方法,参考图3,包括:
S1:基于Flink的内置机制,获取FTP路径中最新处理的时间戳信息作为第一状态信息,并获取FTP路径中最新处理的时间戳信息对应的文件列表信息集合作为第二状态信息,其中,文件列表信息集合至少包括最新处理的时间戳对应的文件列表中的每个文件的消息位移信息;
S2:当未检测到FTP文件的当前处理系统存在异常终止情况时,则基于最新获取的第一状态信息和第二状态信息以及Flink的分布式处理模式执行当前的FTP文件处理任务,直至完成当前FTP文件处理周期;
S3:当监测到FTP文件的当前处理系统存在异常终止情况并恢复启动时,则获取最新的第二状态信息中的文件列表信息集合中每个文件的消息位移信息;
S4:基于最新获取的第二状态信息中的文件列表信息集合中每个文件的消息位移信息,生成新的FTP文件处理任务;
S5:基于Flink的流处理模式执行新的FTP文件处理任务,直至完成当前FTP文件处理周期。
以上技术的有益效果为:无论在FTP文件的当前处理系统是否发生异常终止时都可以实时监控到FTP文件的处理状态,确保用户可以及时获取最新的文件信息,并利用Flink的流处理模式和分布式处理节点执行完毕FTP文件处理任务,通过Flink的实时流处理能力,系统能够在文件发生更改时迅速做出反应,减少了延迟时间。即提供一种兼具实时性、处理功能稳定性以及流批统一兼容性的FTP文件的监控处理方式。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (7)
1.一种基于Flink的FTP文件实时监控分析系统,其特征在于,包括:
状态信息获取模块,用于基于Flink的内置机制,获取FTP路径中最新处理的时间戳信息作为第一状态信息,并获取FTP路径中最新处理的时间戳信息对应的文件列表信息集合作为第二状态信息,其中,文件列表信息集合至少包括最新处理的时间戳对应的文件列表中的每个文件的消息位移信息;
正常处理模块,用于当未检测到FTP文件的当前处理系统存在异常终止情况时,则基于最新获取的第一状态信息和第二状态信息以及Flink的分布式处理模式执行当前的FTP文件处理任务,直至完成当前FTP文件处理周期;
消息位移信息获取模块,用于当监测到FTP文件的当前处理系统存在异常终止情况并恢复启动时,则获取最新的第二状态信息中的文件列表信息集合中每个文件的消息位移信息;
新任务生成模块,用于基于最新获取的第二状态信息中的文件列表信息集合中每个文件的消息位移信息,生成新的FTP文件处理任务;
异常恢复执行模块,用于基于Flink的流处理模式执行新的FTP文件处理任务,直至完成当前FTP文件处理周期;
其中,正常处理模块,包括:
当前任务生成子模块,用于当未检测到FTP文件的当前处理系统存在异常终止情况时,则基于预定义规则中的标准处理顺序,生成当前的FTP文件处理任务;
节点分配子模块,用于基于预设节点分配原则,为当前的FTP文件处理任务分配分布式处理节点,获得节点分配结果;
文件处理子模块,用于控制节点分配结果中的所有分布式处理节点以按块读取的方式处理当前的FTP文件处理任务,同时,在每次处理完一个数据块之后,同步更新对应文件在最新获取的第一状态信息中的时间戳信息和最新获取的第二状态信息中的消息位移信息,直至最新获得的所有文件的消息位移信息中的偏移量达到当前的FTP文件处理任务的块数量时,判定完成当前FTP文件处理周期;
其中,新任务生成模块,包括:
第一新任务生成子模块,用于判断出最新获取的第二状态信息中的文件列表信息集合中是否存在消息位移信息为空的第一待处理文件,若是,则判断出最新获取的第二状态信息中的文件列表信息集合中的所有消息位移信息是否都为空,若是,则基于最新获取的第二状态信息中的文件列表信息集合生成新的批处理任务,作为新的FTP文件处理任务;
第二新任务生成子模块,用于当最新获取的第二状态信息中的文件列表信息集合中的所有消息位移信息不是都为空时,则生成两个部分新的FTP文件处理任务;
处理周期完成提示子模块,用于当最新获取的第二状态信息中的文件列表信息集合中不存在消息位移信息为空的待处理文件时,则判定完成当前FTP文件处理周期;
其中,第二新任务生成子模块,包括:
第一新任务生成单元,用于当最新获取的第二状态信息中的文件列表信息集合中的所有消息位移信息不是都为空时,则基于最新获取的第二状态信息中的文件列表信息集合中当前存在的所有第一待处理文件和Flink中的所有可分配分布式处理节点,生成第一部分新的FTP文件处理任务;
消息位移信息获取单元,用于当最新获取的第二状态信息中的文件列表信息集合中的所有消息位移信息不是都为空时,则获取最新的第二状态信息中的文件列表信息集合中消息位移信息不为空的第二待处理文件的消息位移信息;
第二新任务生成单元,用于基于最新获取的第二状态信息中的文件列表信息集合中的所有第二待处理文件的消息位移信息,生成断点续传任务,作为第二部分新的FTP文件处理任务。
2.根据权利要求1所述的基于Flink的FTP文件实时监控分析系统,其特征在于,状态信息获取模块,包括:
文件信息扫描子模块,用于基于Flink的内置机制,扫描预定义规则的FTP路径中的所有文件和对应的文件信息,获得文件列表;
时间戳信息生成子模块,用于基于预定义规则的FTP路径中的所有文件的被扫描时间,生成FTP路径中最新处理的时间戳信息,作为第一状态信息;
处理顺序获取子模块,用于获取预定义规则中的标准处理顺序;
文件信息排序子模块,用于基于预定义规则中的标准处理顺序,对文件列表中的所有文件和对应的文件信息进行组合排序,获得FTP路径中最新处理的时间戳信息对应的文件列表信息集合作为第二状态信息。
3.根据权利要求1所述的基于Flink的FTP文件实时监控分析系统,其特征在于,节点分配子模块,包括:
文件数量确定单元,用于确定出当前的FTP文件处理任务中的所有需处理文件的文件数量;
文件及节点排序单元,用于当文件数量不超出Flink中的所有分布式处理节点的总数时,则按照文件大小从大到小的顺序对所有需处理文件进行排序,获得文件序列,同时,按照运行速度从大到小的顺序对Flink中的所有分布式处理节点进行排序,获得节点序列;
第一节点分配单元,用于将文件序列中的每个需处理文件的子处理任务,分配至节点序列中序数与对应需处理文件在文件序列中的序数相同的分布式处理节点,获得节点分配结果;
第二节点分配单元,用于当文件数量超出Flink中的所有分布式处理节点的总数时,则基于当前的FTP文件处理任务中的所有需处理文件的文件大小和Flink中的所有分布式处理节点的运行速度,获得节点分配结果。
4.根据权利要求3所述的基于Flink的FTP文件实时监控分析系统,其特征在于,第二节点分配单元,包括:
多次划分子单元,用于对当前的FTP文件处理任务中的所有需处理文件进行预设次数的划分,获得每个划分过程的多个文件簇,其中,文件簇的总数等于Flink中的所有分布式处理节点的总数;
数据量计算子单元,用于计算出每个划分过程的每个文件簇中所有需处理文件的文件大小之和,作为簇需处理数据量;
文件簇排序子单元,用于按照簇需处理数据量从大到小的顺序,对每个划分过程的所有文件簇进行排序,获得文件簇序列;
处理时间确定子单元,用于将文件簇序列中的每个文件簇的簇需处理数据量,与节点序列中序数与对应文件簇在文件簇序列中的序数相同的分布式节点的运行速度之商,当作每个文件簇的簇需处理时间,将每个划分过程的最大簇需处理时间作为每个划分过程的总处理时间;
节点分配子单元,用于将最小总处理时间对应的划分过程中的文件簇序列中的每个文件簇,分配至节点序列中序数与对应需处理文件在文件序列中的序数相同的分布式处理节点,获得节点分配结果,其中,文件簇中每个文件在对应分布式处理节点中的被处理先后顺序与文件簇中每个文件在标准处理顺序中的先后顺序一致。
5.根据权利要求1所述的基于Flink的FTP文件实时监控分析系统,其特征在于,异常恢复执行模块,包括:
块数量确定子模块,用于获取第二部分新的FTP文件处理任务中的每个第二待处理文件的子续传任务的需处理文件大小,并基于每个子续传任务的需处理文件大小确定出每个子续传任务的块数量;
断点续传执行子模块,用于基于Flink的流处理模式,对第二部分新的FTP文件处理任务中的所有第二待处理文件进行断点续传,直至最新获得的所有第二待处理文件的所有消息位移信息中的偏移量达到对应第二待处理文件的子续传任务的块数量,且最新获得的所有第一待处理文件的所有消息位移信息中的偏移量达到对应第一待处理文件的块数量时,则判定完成当前FTP文件处理周期。
6.根据权利要求1所述的基于Flink的FTP文件实时监控分析系统,其特征在于,异常恢复执行模块,包括:
节点重分配子模块,用于基于预设节点分配原则,将最新获取的第二状态信息中的文件列表信息集合中当前存在的所有第一待处理文件分发至Flink中的可分配分布式处理节点进行处理,获得每个可分配分布式处理节点的需处理任务;
任务流处理子模块,用于基于Flink的流处理模式控制每个可分配分布式处理节点执行对应的需处理任务,直至最新获得的所有第一待处理文件的所有消息位移信息中的偏移量达到对应第一待处理文件的块数量,且最新获得的所有第二待处理文件的所有消息位移信息中的偏移量达到对应第二待处理文件的子续传任务的块数量时,则判定完成当前FTP文件处理周期。
7.一种基于Flink的FTP文件实时监控分析方法,其特征在于,应用于权利要求1至6中任一一种所述的基于Flink的FTP文件实时监控分析系统,包括:
S1:基于Flink的内置机制,获取FTP路径中最新处理的时间戳信息作为第一状态信息,并获取FTP路径中最新处理的时间戳信息对应的文件列表信息集合作为第二状态信息,其中,文件列表信息集合至少包括最新处理的时间戳对应的文件列表中的每个文件的消息位移信息;
S2:当未检测到FTP文件的当前处理系统存在异常终止情况时,则基于最新获取的第一状态信息和第二状态信息以及Flink的分布式处理模式执行当前的FTP文件处理任务,直至完成当前FTP文件处理周期;
S3:当监测到FTP文件的当前处理系统存在异常终止情况并恢复启动时,则获取最新的第二状态信息中的文件列表信息集合中每个文件的消息位移信息;
S4:基于最新获取的第二状态信息中的文件列表信息集合中每个文件的消息位移信息,生成新的FTP文件处理任务;
S5:基于Flink的流处理模式执行新的FTP文件处理任务,直至完成当前FTP文件处理周期。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410338600.2A CN117931756B (zh) | 2024-03-25 | 2024-03-25 | 一种基于Flink的FTP文件实时监控分析系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410338600.2A CN117931756B (zh) | 2024-03-25 | 2024-03-25 | 一种基于Flink的FTP文件实时监控分析系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117931756A CN117931756A (zh) | 2024-04-26 |
CN117931756B true CN117931756B (zh) | 2024-06-04 |
Family
ID=90765134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410338600.2A Active CN117931756B (zh) | 2024-03-25 | 2024-03-25 | 一种基于Flink的FTP文件实时监控分析系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117931756B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118573673B (zh) * | 2024-07-31 | 2024-10-01 | 北京科杰科技有限公司 | 基于flink技术api同步加速方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104618948A (zh) * | 2015-02-12 | 2015-05-13 | 中国联合网络通信集团有限公司 | 一种监控上传文件的方法和系统 |
CN109150626A (zh) * | 2018-09-26 | 2019-01-04 | 郑州云海信息技术有限公司 | Ftp服务监测方法、装置、终端及计算机可读存储介质 |
CN115964392A (zh) * | 2022-12-05 | 2023-04-14 | 中信银行股份有限公司 | 基于flink的实时监控方法、装置、设备及可读存储介质 |
CN116126906A (zh) * | 2022-10-13 | 2023-05-16 | 厦门安胜网络科技有限公司 | 一种基于Flink的流式数据质量监控方法及其系统 |
WO2023231398A1 (zh) * | 2022-05-31 | 2023-12-07 | 杭州数梦工场科技有限公司 | 分布式处理系统的监控方法及装置 |
CN117389825A (zh) * | 2023-10-08 | 2024-01-12 | 浪潮软件科技有限公司 | 一种Flink作业日志实时监控方法、系统及装置 |
CN117472517A (zh) * | 2023-12-28 | 2024-01-30 | 广州睿帆科技有限公司 | 一种基于Flink分布式处理FTP文件的方法 |
CN117472682A (zh) * | 2023-10-23 | 2024-01-30 | 浪潮软件科技有限公司 | 一种ftp持久化数据处理方法及系统 |
-
2024
- 2024-03-25 CN CN202410338600.2A patent/CN117931756B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104618948A (zh) * | 2015-02-12 | 2015-05-13 | 中国联合网络通信集团有限公司 | 一种监控上传文件的方法和系统 |
CN109150626A (zh) * | 2018-09-26 | 2019-01-04 | 郑州云海信息技术有限公司 | Ftp服务监测方法、装置、终端及计算机可读存储介质 |
WO2023231398A1 (zh) * | 2022-05-31 | 2023-12-07 | 杭州数梦工场科技有限公司 | 分布式处理系统的监控方法及装置 |
CN116126906A (zh) * | 2022-10-13 | 2023-05-16 | 厦门安胜网络科技有限公司 | 一种基于Flink的流式数据质量监控方法及其系统 |
CN115964392A (zh) * | 2022-12-05 | 2023-04-14 | 中信银行股份有限公司 | 基于flink的实时监控方法、装置、设备及可读存储介质 |
CN117389825A (zh) * | 2023-10-08 | 2024-01-12 | 浪潮软件科技有限公司 | 一种Flink作业日志实时监控方法、系统及装置 |
CN117472682A (zh) * | 2023-10-23 | 2024-01-30 | 浪潮软件科技有限公司 | 一种ftp持久化数据处理方法及系统 |
CN117472517A (zh) * | 2023-12-28 | 2024-01-30 | 广州睿帆科技有限公司 | 一种基于Flink分布式处理FTP文件的方法 |
Non-Patent Citations (1)
Title |
---|
"基于流式计算的实时流量监测系统的设计与实现";李荣;《中国优秀硕士学位论文全文数据库》;20220115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117931756A (zh) | 2024-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117931756B (zh) | 一种基于Flink的FTP文件实时监控分析系统及方法 | |
US9304815B1 (en) | Dynamic replica failure detection and healing | |
US9276959B2 (en) | Client-configurable security options for data streams | |
US9794135B2 (en) | Managed service for acquisition, storage and consumption of large-scale data streams | |
US9858322B2 (en) | Data stream ingestion and persistence techniques | |
WO2020253079A1 (zh) | 基于Jmeter的分布式性能测试方法、装置、设备及存储介质 | |
CN113296792B (zh) | 存储方法、装置、设备、存储介质和系统 | |
US11553014B2 (en) | Downloading of server-based content through peer-to-peer networks | |
US20100138540A1 (en) | Method of managing organization of a computer system, computer system, and program for managing organization | |
US11132274B2 (en) | Establishing and monitoring programming environments | |
CN109992373B (zh) | 资源调度方法、信息管理方法和装置及任务部署系统 | |
CN107368260A (zh) | 基于分布式系统的存储空间整理方法、装置及系统 | |
US20200042392A1 (en) | Implementing Affinity And Anti-Affinity Constraints In A Bundled Application | |
CN113312161A (zh) | 一种应用调度方法、平台及存储介质 | |
CN102255866A (zh) | 一种数据下载方法及装置 | |
CN113760847A (zh) | 日志数据处理方法、装置、设备及存储介质 | |
CN111930716A (zh) | 一种数据库扩容方法、装置及系统 | |
CN111431951B (zh) | 一种数据处理方法、节点设备、系统及存储介质 | |
CN111147226A (zh) | 数据存储方法、装置及存储介质 | |
CN115756549A (zh) | 一种大数据中台数据的下载方法、装置及存储介质 | |
CN110677497B (zh) | 一种网络介质分发方法及装置 | |
CN114675954A (zh) | 任务调度方法及装置 | |
CN110119389A (zh) | 虚拟机块设备的写操作方法、快照创建方法及装置 | |
JP2019525311A (ja) | ネットワークアクセス可能なデータボリューム変更 | |
WO2022007645A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |