论文部分内容阅读
随着海量数据时代的来临,分布式数据处理系统己成为海量数据处理的解决方案。针对不同的应用场景,学术界和产业界推出了多个并行编程框架。通过对不同的并行编程框架研究分析,总结出编程模型是由处理逻辑、数据组织和传输模式三部分构成。随着应用逻辑的发展,现有的并行编程框架,很难实现处理逻辑、与应用相适应的数据组织和传输方式的快速定制。
根据实际生产集群下作业特征的分析,大部分作业为输入数据量较小、占有资源较少的小作业。因此,如何提高小作业的执行效率成为了并行编程框架面临的重要问题。目前,现有的并行编程框架,按需申请资源、进程级任务调度、数据存取和处理逻辑等方面,使得小作业处理效率较低。
本文针对并行作业逻辑表达、加快小作业执行效率两个方面对并行编程框架进行研究。针对小作业的特点,对任务调度机制、资源使用方式、数据存取和处理逻辑进行了优化,提出了一套通用的、编程可扩展的并行编程框架。总结一下,本文的主要贡献如下:
1.提出了可扩展的编程模型和作业逻辑表达模型。通过作业逻辑翻译器,实现不同作业逻辑到统一运行时环境的映射。通过定义隧道(Tunnel)的传输模式,可以快速实现编程模型与不同传输模型的灵活映射。
2.提出了面向小作业数据处理的分布式缓存和线程级任务调度机制。通过线程级任务的调度和部署,加快小作业的部署效率。通过以本地内存和消息队列为基础构建分布式缓存,提升了任务间数据共享和传输的效率。
3.提出了固定资源配置和动态资源可伸缩的资源使用策略。通过队列饱和度监控系统内的工作负载状况,并按照容忍区间的设置,动态调整分布式环境内工作节点的个数,提高资源按需伸缩的效率。通过测试,验证了该方案的有效性。
4.综合以上的研究和设计,实现了一套编程可扩展、资源可伸缩的分布式处理系统Binos,以及Binos-FileMR和Binos-HashMR两种MapReduce编程模型。通过数据存储、传输、处理逻辑等相关方面的优化,加速了小作业的处理效率。