论文部分内容阅读
如今,大数据平台Hadoop相关的技术发展很快,与此同时,Hadoop平台相关组件(如MapReduce,HBase等)的性能测试需求日益增加。CDH是目前最流行的Hadoop发行版,由Cloudera公司定期发布,而Intel公司刚刚投资了Cloudera公司。为了尽早地发现并解决CDH在真实的多用户、多应用操作场景下可能出现的性能问题,Intel的大数据部门设计并研发了Soak测试工具。如何调度执行仿真的多种用户操作任务,并在此基础上收集运行时数据进行分析是Soak需要解决的重要问题。本论文设计并实现了任务管理模块和数据分析模块解决了Soak项目中存在的上述问题。任务管理模块主要关注模拟仿真任务的调度与执行。Hadoop平台下用户的真实操作,存在分布式执行、多应用操作、多用户操作以及用户数随着时间变化等特点。为此,Soak系统需要采用主从式架构。主节点负责分配任务,多个从节点执行任务。每个从节点都可以同时执行多种应用、多个用户的任务操作,通过这种方式来模拟用户在Hadoop平台上的真实操作。数据分析模块关注任务运行时相关数据的收集和分析,以此来发现Hadoop平台可能存在的性能问题。一类是应用本身的问题,例如并发情况下应用执行出错或者执行时间过长;另一类是应用执行过成中节点出现的性能问题,例如随着用户数目均匀变化,节点的CPU性能却出现抖动变化。因此,数据分析模块需要收集两类数据,首先是统计应用执行的时间、失败次数等,然后是收集应用执行的过程中,节点相应的CPU、IO等性能参数。对于收集到的数据,需要计算每个时间段内数据的最值、均值等。数据分析模块采用了统一的数据存储格式和分析算子来实现数据分析。Soak设计了虚拟用户的概念模拟多用户操作,并使用多线程管理调度,从而达到性能测试的要求。同时,Soak使用了Akka实现主从节点间的消息通信,并使用Dispatcher的方式处理消息。另外,项目中还使用Ganglia和JRRD来收集系统性能数据以及Spring, Gauva等其它框架和技术。