如何评测一个大数据系统


    数据的爆炸式增长掀起了大数据的研究热潮,越来越多的应用领域涉及到大数据的处理和存储,其所蕴藏的科学价值和商业价值逐渐体现。为了挖掘大数据中隐藏的知识,各种大数据系统应运而生,例如Hadoop、MapReduce、Hive、Spark等。如何客观地评价众多的大数据系统以及从中选择适合自身需求的系统成为学术界和工业界普遍关心的问题,大数据工业界和研究社区迫切需要一套公认的大数据评测基准。
    
    Jim Gray认为:特定领域的评测基准应选择典型应用,并满足领域内应用的多样性。据此他进一步提出了一套成功的评测基准需要满足的4个条件:系统相关性、可移植性、可扩展性和简单。其中,系统相关性是指能够评测领域相关的系统性能,包括系统的峰值性能,性价比等;可移植性是指评测基准能够移植到不同的平台上,易于在不同的系统和架构上实现;可扩展性是指能够适应不同的系统规模;简单是指评测基准易于理解,评测结果具有可靠性。
    参考Gray提出的4条标准,并结合大数据海量、高速、多样的特性,我们提出了针对大数据领域的评测基准需要满足的需求。
    可代表性
    大数据领域具有非常广的覆盖范围,信息时代的来临使得越来越多的应用领域涉及到大数据的处理和存储,因此一个完整而全面的评测基准不可能一蹴而就。如何尽可能提高负载覆盖度又不失评测的简易性是很大的挑战,这也就要求评测基准具有领域代表性。
    我们认为大数据领域的代表性主要体现在3个方面:
    ①代表性负载。
    众所周知,目前应用领域极其繁多,领域之间有一定的共有特性,但每个领域有其独特性,因此应用领域和负载的代表性在一定程度上也就决定了评测基准的代表性;
    ②代表性数据。
    大数据领域与传统数据库等领域的一个显著区别即是数据类型多元化,传统的结构化数据不再占据主导地位,半结构化和非结构化数据爆炸性增长,因此评测基准不能忽略复杂而多样的数据类型;
    ③代表性软件栈。
    数据迅猛增长催生了众多的大数据处理和存储系统,然而不同的软件栈对大数据负载的行为特征具有很大的影响,因此大数据评测基准需要涵盖代表性软件栈。
    
    可移植性
    大数据评测基准不仅需要能够纵向地评测大数据系统,而且需要能够对不同的系统进行横向的对比。这就要求相同的负载能够提供不同的实现方式,评测基准能够便利地移植到其他平台。为了使不同的实现方式具有公平的可比性,针对不同平台的实现,需要具有相同的输入和输出,以及相同的算法处理逻辑。如今,一系列针对大数据处理和存储的开源产品被发布,例如MapReduce、Spark等,所以在评测基准的实现过程中需要考虑基于这些不同的软件栈的实现。
    
    可扩展性
    大数据评测基准需要提供可扩展的数据集和负载。大数据的一个显著特征即是数据量大,单一节点的存储已逐步转变成分布式存储,因此评测基准所提供的数据和负载需要适应不同规模的平台。然而如今大多数的大数据持有者视数据为重要的商业机密,因而能够提供符合真实数据特性的可扩展数据集是大数据评测基准重要而基本的需求。
    
    可理解性
    评测基准需要具有简易性,易于理解,并易于部署和评测,同时评测结果能够指导系统的评价、改进和优化。然而,大数据系统本身非常复杂。仅仅从简单性的角度来选择典型负载,可能会使基准程序丧失代表性。因此,我们用可理解性来取代原有的简单性需要。可理解性有3点含义:能从基本操作单元和负载模式的角度理解典型负载;评测结果需要简单直观,评测人员能够根据负载的特性分析结果的合理性并判断系统的瓶颈或者优劣;评测结果需要具有稳定性,其结果必须是可靠的并且可重现的。
    
    大数据系统的蓬勃发展催生了大数据基准测试的研究,如何公正地评价不同的大数据系统以及怎样根据需求选取合适的系统成为了热点问题。大家在使用的过程中,不妨也动脑筋想一想,为什么选择这些系统?按照评测的基准还有哪些系统也值得了解?这样你的编程之旅才不容易迷茫。