论文部分内容阅读
近几年,随着人们生活水平和计算机技术的飞速发展,产生了海量数据,如何存储和处理这些数据,成为各企业致力解决的热点问题,由此催生了大数据产业的出现。大数据产业盈利的关键在于对这些数据的加工处理所得到的有意义的结论。如此大体量数据的存储和计算工作必须借助云计算所提供的强大分布式计算能力。多租户场景是在云计算中很普遍的应用场景,它使得多个用户可使用同一服务实例。当集群中的多个租户向集群中提交作业时,如何在多租户场景下高效管理规模庞大的计算资源,使用有效的资源分配策略保证每个作业都能获得资源供给,并且尽可能避免作业之间的资源竞争,提高作业运行成功率成为研究的技术热点。本文通过对大数据处理平台Spark、Spark On Yarn和Spark On Mesos的学习研究,了解到这三种开源平台在当前的应用场景中的局限性,其次在对IBM企业级平台Spark-on-EGO的使用和研究过程中发现,资源管理与调度系统EGO自身对于用户所提交的Driver与Consumer之间的连接数有所限制,一旦超过此限制,EGO的性能就会下降,所以必须找到一种策略不仅能够提高作业运行的成功率以及作业的并发数,还能保证EGO的性能在正常范围内。所以基于上述的业务需求,本次论文设计了一种动态的资源分配策略DynamicTag以及使用该策略的资源调度器的实现,用户通过调度器所提供的REST接口,可动态修改资源的配置信息,调度器对配置进行解析,保证用户所提交的作业会按照指定的配置分配资源。此调度器通过资源配置获取模块、配置解析与计算模块、Delegator模块、Policy模块、Resource Allocator这五个模块的协调工作,共同完成作业从提交到运行结束释放资源的整个生命周期在调度器中的执行过程。调度器中的资源分配策略Dynamic Tag,可使得多租户场景中不同租户提交的不同资源需求的作业都能获取到相应的资源得以成功运行,提高了作业运行的成功率以及Spark-on-EGO集群的负载能力,而且使得对资源配置项的修改可以动态完成,而不需要重启集群使修改的配置项生效。最后通过搭建实验环境、设计实验方案验证了资源调度器的基本功能,包括作业在调度器中注册,调度器计算资源并分配资源,作业运行结束从调度器中移除作业,并释放资源这五个基本过程。最后设计实验方案验证了资源调度器的基本功能,实验结果表明了论文所实现的资源调度器可正常运行。