论文部分内容阅读
伴随着计算机信息技术的迅猛发展,分布式计算在行业内得到了大力发展,Spark作为目前非常流行的分布式计算框架,已经被开发者广泛运用于企业业务中。开发者希望了解Spark作业程序运行时集群底层的性能数据,从而掌握整个Spark集群的运行情况,找出系统瓶颈,从而进行性能调优工作,提高计算效率,减少任务运行时间。所以,开发一套Spark性能数据收集分析系统对于开发者进行性能优化显得尤为重要。本文对Spark性能数据收集分析系统的设计与实现做了详细介绍。本文首先对于用户需求进行了详细分析。之后根据功能性需求将系统的功能模块划分为配置与监控、数据收集、数据处理与数据分析四个方面。本文设计并实现了所有功能模块,最后设计了测试方案,给出了测试结论。本系统设计实现的Spark性能数据收集系统基于Akka架构,采用了主从节点的分布式设计思想,实现了分布式的性能数据收集处理功能。数据收集模块通过运行在子节点上的DSTAT监控工具来进行Spark性能数据的采集存储,保证了数据收集结果的正确性与实时性,同时这种设计模块便于开发新的系统服务,具有很高的扩展性。数据处理模块对于Spark运行日志与性能数据进行解析,并将两者的解析结果通过不同类型的统计图进行输出展示。数据分析算法对于集群进行状态划分,对资源空闲情况进行分析,计算出未利用资源所占比例,同时将不同服务器上性能数据的差异转化成欧氏距离计算出来,进行负载平衡分析,给出自动化的分析报告,为开发者进行性能调优提供了直接的参考。本文的主要成果是Spark性能数据收集分析系统软件。目前,本系统运行情况良好,取得了满意的效果,成功收集了性能数据信息,有效地帮助了开发者了解Spark集群底层运行情况,对于性能调优工作有一定的参考意义。