论文部分内容阅读
互联网上各系统以前所未有的速度持续产生着海量的日志数据,如何对海量的文本日志数据进行信息提取已经成为了日志处理领域日益严峻的课题。由于Web应用日益复杂,通常按照功能将应用拆分为多个子服务,使得日志内容被分割成多个日志文件。在对日志信息进行提取时,通常需要将多个日志文件中的数据进行拼接,进而获取完整的日志信息。分布式计算引擎具有优秀的水平拓展能力,相比于传统的信息提取技术更加适用于海量文本日志信息提取的业务场景。Flink作为新一代分布式计算引擎,为实时流数据分析和批量数据处理提供了统一的编程模型和执行引擎。但是Flink在执行多表连接计算时存在一些不足,不能对多表连接作业进行有效优化,导致多表连接作业性能较差。在分布式计算中,虽然已有相关工作用于优化多表连接计算,但是大部分都是基于MapReduce,无法直接应用于Flink。因此有必要深入研究并优化Flink的多表连接作业,提高Flink多表连接作业的执行效率。本文依托现有的研究背景,对平台中的多表连接作业进行了优化,从而可以高效的提取海量日志信息。本文的具体工作内容如下:1.详细介绍了基于Flink的高效日志信息提取平台中涉及到的关键技术。包括Flink分布式计算引擎、分布式表连接算法和已有的多表连接优化算法。2.基于已有的连接顺序优化算法,提出了可以优化Flink多表连接作业执行效率的Multi Bushy Tree算法和用于优化星型连接的Star Semi Join 算法。3.在前面研究的基础上,设计并实现了一个基于Flink的高效日志信息提取平台。