论文部分内容阅读
随着互联网与信息技术的不断发展,信息系统规模变得越来越庞大,如何对系统运行时的性能、业务数据、网络负载等情况进行监控分析成为了当前迫切需要解决的问题。而计算机日志作为系统的真实写照,记录了系统运行过程中发生的各种事件以及其对应的时间和产生的结果,因此,通过对日志进行分析,可以挖掘日志中蕴含的关键信息,为用户提供各方面的数据服务。日志分析系统作为日志分析的一整套解决方案由多台服务器构成,通过网络的协调同步共同完成日志分析。其面向海量的日志信息,通过实时的对日志进行分析为用户提供服务。日志分析系统周期性的产生众多日志分析任务,它们在系统的调度下分派到适合的计算节点执行。日志分析任务具有计算量大、时效性强、准确性高等特点,其性能决定着整个系统的成败。本文通过日志分析系统的模块结构介绍,明确了任务调度模块在整个系统中的核心作用,并提出完成一个高效任务调度模块需要实现的目标。本文从任务调度理论与作者亲身参与开发的一款日志分析系统出发,总结了现阶段系统任务调度模块存在的缺陷,并在此基础上提出一种改进型的日志分析系统任务调度方案。方案分别从架构和算法两方面展开设计,其中架构方面借鉴集中式调度思想,创新性提出在Master-Slave架构中增加任务收集层,形成Collector-Master-Slave三层次调度架构,新方案在降低Master负载同时也增强了系统的可扩展性;同时为Slave添加的监控子模块为计算节点提供了更完善的负载均衡策略。算法方面,本文将传统调度系统中采用的蚁群算法进行了适当的改进和完善,增加了负信息素、动态启动、参数自适应等功能使其更加适应日志分析任务特征。在实现方面,本文采用了JAVA高级程序设计语言,并利用现有的成熟产品,如Zookeeper、MINA等实现了调度的主体框架,并通过模拟日志分析场景验证了此方案的可行性。本文的设计方案提高了日志分析系统执行效率,降低了系统硬件成本,增强了系统稳定性,有较强的实践指导意义和应用价值。