论文部分内容阅读
图是计算机科学中最常用的一类抽象数据结构,特别适合表达现实世界中各种复杂的关系。在图数据挖掘领域中,有很多算法需要多次迭代才能得到最终结果。针对这一需求,基于BSP模型的大规模图处理系统应运而生。现有的基于BSP模型的大数据处理平台中,Prege1、Giraph和Hama等系统虽然都能很好地处理大规模图数据,然而各平台在集群环境下都可能由于不稳定因素导致系统出现故障,而且它们的容错机制也不尽相同,很难得出高效统一的方案。另外,这些系统由于采用Master/Slave架构,将不可避免地会出现Master单点故障,而这些系统很少能够提出有效的解决方案。而且,这些系统还可能出现由于计算节点硬件问题或节点负载不均衡而导致的作业的“水桶效应”问题。因此,全面并规范实现基于BSP模型的大规模图处理系统的容错机制以及有效实现动态负载均衡机制是课题研究的重点和难点问题。针对上述问题,本文设计并实现了基于BC-BSP系统的容错和动态负载均衡机制。本文的主要贡献如下:第一,对于BC-BSP系统的容错机制,本文提出了异常处理模型。该异常处理模型对系统可能出现的异常制定了完善的侦测方案,同时,通过对异常进行规范编码可以结合相应的异常处理机制有效地处理系统中的各种异常;第二,本文还为BSPController节点提供了HA机制以解决BSPController节点单点故障的问题。本文实现的BSPController HA机制通过采用热备的方案实现,并将BSPController备份信息存储在HDFS上以便保持主备节点的信息同步。通过Zookeeper服务,BSPController HA机制有效地实现了BSPController节点故障侦测和主备节点自动切换;第三,本文设计并实现了动态负载均衡机制。通过收集任务的相关决策信息并按照本文设计的选择方案可以正确选择短板任务,然后根据相应的迁移策略实现短板任务迁移。通过该机制可以有效实现短板任务迁移并改变节点负载,从而提高作业的运行效率。经过实际部署和测试,基于BC-BSP系统的容错机制和动态负载均衡机制取得了预期的效果。通过BSPController HA机制,可以实现在BSPController故障后及时侦测并自动切换,然后快速恢复作业运行状态。同时,动态负载均衡机制也提高了作业的运行效率,解决了作业由于节点硬件问题或节点负载不均衡而产生的“水桶效应”问题。