论文部分内容阅读
随着分布式技术的发展,以及各种分布式计算框架在多个领域得到广泛的使用,数据处理模式开始从离线数据处理转向实时数据处理,从而根据数据变化快速做出决策。因此,实时计算系统逐渐成为企业实时数据处理必不可少的工具,对企业未来的发展也有着不可替代的作用。传统实时数据处理模式,是通过使用实时计算框架内部提供的程序调用接口,针对某一特定业务场景编写程序,并通过主动上传程序包的方式将该程序提交到已有的集群资源中。这种数据处理模式有很多弊端,首先编写实时计算程序对开发人员的技能要求比较高,开发人员需要具备一定的分布式计算相关的开发经验,显然在很多传统企业中很少有相关技能人员储备。其次,程序的部署和作业监控很不便捷,开发人员需要主动上传并启动任务,同时通过集群命令跟踪程序的执行情况。因此,本文提出使用Flink实时计算框架构建实时计算平台,从而简化复杂的实时计算任务的开发及繁琐的任务部署、监控。本文主要围绕以下四个方面来展开:第一,扩展Flink实时计算框架功能,并将其作为实时数据处理的底层引擎。Flink提供了 SQL语法可以对实时数据进行DML(data manipulation language)操作,但不支持DDL(data definition language)操作以及和外部维表数据源直接关联的功能。因此,本文基于Flink框架构建的底层引擎支持创建表、创建视图语句,同时使用Flink提供的异步函数实现了实时数据和外部数据源维表进行关联的SQL语法。第二,为部署实时计算任务搭建上层分布式调度系统,用来进行任务提交、跟踪任务的执行状态。调度系统被部署在多个节点,并且支持水平扩展,提交的任务会均匀分配给子节点进行管理,在集群资源充足的情况下进行任务提交,在任务执行过程中会跟踪任务的执行状态,并将运行日志链接返回给上层交互系统。第三,为实时计算任务的创建、任务监控搭建可视化页面,简化用户操作流程。实时计算任务通过页面进行数据源配置,进而方便用户为任务配置数据源信息。同时,可视化页面能够展示任务调度所处的状态信息,任务执行时实时展示内部监控指标以及运行日志信息。第四,对本文设计的实时计算平台进行系统实现,对主要功能模块进行页面截图展示。同时,对系统搭建过程中使用的软件、硬件配置进行说明,并对使用的主要表结构进行字段属性说明。