论文部分内容阅读
为了在较短时间内尽可能充分挖掘海量数据中的价值信息,google公司在2006年发布了 MapReduce分布式计算框架,成功应对了海量数据的分析需求。其中Hadoop作为分布式计算框架实现之一,已被大量的公司和机构部署。然而随着数据量的不断增长,小规模集群渐渐力不从心,为解决此资源瓶颈问题,越来越多的机器被加入到集群中参与计算,集群中节点数量不断增多。但随着规模递增,Hadoop集群中的一些节点行为表现异常时,及时有效的定位该异常节点并分析出导致该问题的根本原因就变得相当困难。其中某些问题不会导致节点直接崩溃,只是降低运行时效率。因此越早发现集群中的此类问题,越能及早采取措施解决。为降低此类异常节点在实际生产中的影响,本文充分考虑了 map阶段与reduce阶段的执行特性,提出了一种针对Hadoop集群实时异常节点检测与诊断方法。该方法基于正常状态下节点行为的相似性,首先,本文从Hadoop运行作业时实时产生的系统日志中提取有关任务状态相关信息,并将reduce任务个数通过执行时间转化成map任务个数,然后通过统计学方法中T检验,分析该节点是否正常。当发现某个节点出现异常时,运用根原因定位方法,通过收集和分析操作系统级性能指标,根据二八定律找出该节点利用率高于80%集群节点或者低于20%集群节点的指标,定位引起该问题的根本原因,并输出其所有相关指标,为后续错误排查维护提供信息。且所使用的算法适用于多维数据中异常节点的检测,可同时对多个维度的性能数据进行分析,指导集群运维。基于以上两个方法,在spark streaming流数据分析工具之上,搭建了 Hadoop集群异常节点实时检测和分析系统,用来表明所提检测方法的精准性和高效性。且因为map任务的执行时间是随着task任务的大小而变化的,本文使用map任务完成度(即map任务完成百分比)来评估检测的实时性。最后通过一系列相关实验测试,表明了该方法和系统的实时性和有效性,针对该系统,本文进一步评估了其额外开销,整体在5%以下,充分说明了所提方法针对问题有一定的效用。