logo资料库

大数据的分析与测试工具.pdf

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
研究与开发 Research & Development43引言互联网的普及已经连接了全世界近30亿人口,目前,互联网上的网页数目已经突破10亿[1],大量的数据在网络中产生,而新的互联网技术和应用的结合形成了丰富的数据源,并带来数据量爆发式的增长。大数据在数据量、数据类型和处理时效性等方面带来了新的挑战,应运而生的大数据处理技术采用分布式文件系统、分布式并行计算框架等模型以低廉的价格解决大数据的挑战。新的计算框架和数据库系统层出不穷,大数据产品和系统不断推陈出新,催生出对这些产品和技术进行基准对比的需求。大数据基准测试从具体应用中抽象出有代表性的负载,根据真实数据的特征和分布生成可扩展的数据集,以相应的指标衡量负载处理数据集的效果,以此来比较大数据处理系统的性能。本文结合大数据处理系统的特点,阐述大数据基准测试的要素和构建流程,最后从数据、负载和软件栈等方面比较现有基准测试工具,并展望未来基准测试工具的发展方向。1 大数据起源和特点随着互联网技术的发展,产生了越来越多的数据来源。互联网应用记录着用户每天在网上的行为数据,用户的社交数据、搜索数据、购物数据都被一一记录下来。而线下的生活也处处与网络相关,通话记录、医疗数据、环境数据、财务数据也通过网络留存下来。工业互联网中的机器配备了传感器和网络传输装置,积累了大量机器数据。物联网连接地球上所有的人和物,感知并跟踪着物体和人的状态。据IDC预测,从2005年到2020年,全球数据量将会从130EB增长到40ZB[2]。随着数据源种类的激增,新的数据不仅在数据量上有了很大的体量,其数据结构也不同于以往的关系型数据结构,智能设备、传感器和各种应用的兴起,视频、图片、音频、文档、网页和日志等大量非结构化的数据蜂拥而来,为当前的数据处理带来新的挑战。互联网服务的进化,使得用户对数据处理的速度有了更高要求,数据量规模和数据类型复杂性的增加对大数据处理速度带来挑战。IBM从四个维度定义大数据,即数量(Volume)、种类(Variety)、速度(Velocity)、真实性(Veracity)[3]。大数据具备大体量、多样性、高时效性和真实性等特征。2 大数据处理平台的构成大数据的大体量、多样性和处理的时效性是传统单设备纵向扩展无法解决的,这种挑战首先在互联网搜索中体现出来,搜索引擎需要检索和存储的网站数量庞大数据基准测试流程与测试工具姜春宇1 孟苗苗21 工业和信息化部电信研究院标准所,云计算标准与测试验证北京市重点实验室 北京 1001912 中国联合网络通信有限公司 北京 100033摘 要 当前大数据产品和技术的发展非常迅速,市场中存在各种各样的商业版和开源的大数据软件,这些大数据系统解决了大数据大体量、多样性、时效性的挑战。随着大数据产品和技术成熟,如何去测试和评估这些大数据产品成为新的研究主题。文章简要介绍大数据兴起的背景,综述大数据处理系统的主要构成,并针对大数据处理系统的特点,提出构建大数据基准测试平台的要素和流程,最后介绍当前大数据基准测试工具和存在的问题,展望未来大数据基准测试工具的发展方向。关键词 大数据;大数据平台;大数据基准测试;数据;负载;指标
研究与开发 Research & Development44大,以非结构化数据为主,为此谷歌率先于2004年提出一套分布式数据处理的技术体系,即能够横向扩展的分布式文件系统(GFS)、分布式计算系统(MapReduce)和分布式数据库(BigTable)等技术,以较低成本很好地解决了大数据面临的困境,奠定了大数据技术的基础。受谷歌论文启发,Apache Hadoop实现了自己的分布式文件系统(HDFS)、分布式计算系统(MapReduce)和分布式数据库(Hbase),并将其开源,从而加速了大数据技术和应用的发展。大数据处理平台主要由分布式文件系统、分布式计算平台、分布式存储系统等构成。以Hadoop为例,其基本组件如图1所示。图1 Hadoop基本组件3 大数据基准测试要素基于Hadoop和Spark原理的大数据处理平台在工业界和学术界都得到了广泛应用,谷歌、Facebook、百度、阿里巴巴等互联网公司早已研发部署了大数据处理系统,越来越多的中级企业开始在大数据基础平台之上开发大数据应用,IDG调研了751家企业,其中49%的企业反馈已经或正在实现大数据项目[4]。尽管大数据的平台和应用发展迅速,但缺少基准来衡量大数据平台的性能,而且大数据系统的复杂性、多样性和变化性为评估带来很大困难。大数据基准测试能够评估和比较大数据系统和架构,其主要作用有三个方面。1)它能提升大数据领域的技术、理论和算法,并挖掘出大数据的潜在价值和知识。2)它能帮助系统开发人员设计系统功能、调优系统性能、提升部署方法[5]。3)它容许用户比较不同系统的性能,帮助选购产品。设计大数据基准测试通常包含以下考虑。1)选择数据和生成数据,确定数据集的大小、类型以及覆盖的应用场景,提供数据集或者数据生成的工具。2)确定测试负载,负载需要覆盖不同的应用场景,具有代表性,能够较全面地反应系统的特性。3)明确测试指标,大数据基准测试主要从性能、能效、性价比、可靠性等角度衡量大数据系统和架构。4)确定基准测试所针对的软件系统和框架,不同框架处适用的场景不同。4 测试流程大数据基准测试主要有三个流程,即数据生成、负载选择和指标选择。简要来说,数据生成主要生成不同的数据类型并满足大数据的四V特点;负载选择主要是选择合适的负载以运行数据产生结果;指标选择确定衡量的维度,以便从不同方面评估大数据框架。4.1 数据生成大数据基准测试通常要么采用现实数据,要么合成数据。使用现实数据存在两个困难,首先,大多数情况下数据都是企业比较敏感的部分,企业通常不愿意公开提供数据;其次,现实数据只适应于特定应用场景,有其局限性,无法适应所有负载;所以,用数据生成工具合成数据成为大数据基准测试通常采用的方法。数据生成分为数据筛选、数据处理、数据生成和格式转换四步。4.1.1 生成步骤1)数据筛选。在筛选数据时,①需要考虑数据和负载的匹配性,数据类型应该符合特定负载的要求,数据集需要来源于特定的大数据应用场景,如电子商务、搜索引擎、社交网络等,并符合真实数据的数据特征和分布特征;②根据测试机器的数量和应用的特点,评估数据量的大小。2)数据处理。待处理的数据是建立在能保持原始数据的特性并能消除其中敏感信息的基础上进行相关操作的。针对不同的数据类型,应该采用该类领域中有代表性的数据建模方法对真实数据进行建模,抽取出数据的特征,并将这些特征存储在模型文件中。3)数据生成。数据生成通常需要特定的生成工具来完成,生成工具依据不同类型的数据处理过程来设计。首先需要提出数据的模型特征,基于提取出的模型和所需的数据量生成测试数据。除了需要保证所选用建模方法的模型特性外,还要满足在数据生成过程中通过参数来控制数
研究与开发 Research & Development45据生成的并发量和大小,不同的参数可以模拟出不同的应用场景;不同的数据生成工具通过建模步骤,保证生成的测试数据保持原有数据的数据特征,并且可以缩放至大数据规模。4)数据格式转换。这个流程保证生成数据能通过格式转换工具生成符合特定应用的输入格式。4.1.2 示例例如,通过分析应用和负载需求,假设现在要生成1T左右的文本数据。首先选择网络上开放维基百科的数据源,以此数据源为样本,利用开源的数据生成工具并提取出数据的特征,数据生成工具根据数据特征和需要扩展的数据量(这里是1T)来生成数据集,这样就能得到基于实际应用中数据扩展的数据集。最后,根据负载需要的输入格式再对数据集的格式进行转化。4.2 负载选择负载是大数据基准需要执行的具体任务,用来处理数据并产生结果,负载将大数据平台的应用抽象成一些基本操作。由于行业和领域的不同,其应用有很多不同的特点,从系统资源消耗方面负载可分为计算密集型、I/O密集型和混合密集型的任务。例如运营商的话单查询需要多次调用数据库,是典型的I/O密集型任务;而互联网的聚类过程需要大量的迭代计算,是典型的计算密集型任务;搜索引擎中的PageRank算法既需要数据交换又要不断地迭代计算,属于混合型任务。选择负载有两种策略。第一种是从企业应用的场景出发,模拟企业应用流程,采用应用中的真实数据进行测试。例如一家从事搜索的企业,其应用场景可以基本抽象为Nutch、Index和PageRank三种负载;银行的典型应用主要是账单查询、帐目的更改等,可以抽象为对数据库表的查询和更改。第二种是从通用的角度来考量,从测试整个大数据平台的角度出发,选择负载时需要覆盖大数据处理平台主要组件即分布式计算框架、分布式文件系统和分布式存储的能力。以Hadoop平台为例,负载主要需要测试Hadoop(包括HDFS和MapReduce)、数据仓库(Hive)和NoSQL数据库的能力。测试负载需要覆盖多种应用类型和任务的资源特点。如表1所示,选取TeraSort、PageRank和Naïve Bayes来测试Hadoop,这三个算法分别属于I/O资源密集、混合和计算资源密集的任务;选取Join Query来测试Hive组件,Read/Write/Scan负载来测试HBase组件,它们分别属于计算密集和I/O密集负载。表1 测试负载示例负载应用领域资源特点测试组件TeraSort文本排序I/O密集HadoopPageRank社交图谱计算网页排名混合HadoopNave Bayes分类算法计算密集HadoopJoin Query表连接计算密集HiveRead/Write/ScanNoSQL数据操作I/O密集HBase4.3 指标测试指标主要分为两类,一类是从用户角度出发的指标,这类指标注重于直观化,让用户容易理解[6];第二类指标是从架构的角度出发的,主要考量系统架构的能力。第一类的指标主要有每秒执行的请求数,请求延迟和每秒执行的操作数;第二类指标注重比较系统性能间的差异,主要有每秒浮点计算速度和每秒数据吞吐量等。在实际测试中,为比较不同平台之间的差异,可以从以下四个维度来评估大数据平台:性能、能耗、性价和可靠性,具体介绍和计算方式见表2。表2 测试指标指标描述衡量单位性能指标测试系统计算和I/O传输的速度衡量系统的稳定性、抗压性和扩展能力吞吐率=数据量大小/处理时间响应时间能耗指标测试系统在单位能耗下的处理的数据量数据能耗比=数据量大小/焦耳性价指标衡量系统在单位处理速度下的价格性价比=总价格/吞吐率可用性指标测试系统节点故障和故障恢复的能力评估系统在节点故障下,任务是否中断,修复后任务是否能继续执行5 大数据测试工具当前大数据基准工具有很多,主要分为三种类型。一类属于微型负载,这类负载测试只测试大数据平台的某个特定组件或应用,例如GridMix是面向Hadoop集群的测试基准;TeraSort只针对文本数据的排序;雅虎开发的YCSB对比NoSQL数据库的性能,其目的是评估键值和云数据库[7];Facebook的LinkBench专门用于
研究与开发 Research & Development46测试存储社交图谱和网络服务的数据库[8]。第二类是综合类的测试工具,模拟几类典型应用,覆盖大数据软件平台的多个功能组件,比如英特尔的Hibench是针对Hadoop和Hive平台的基准测试工具,其负载按照业务能分为微型负载、搜索业务、机器学习和分析请求等四类[9];BigDataBench是中科院计算所提出的大数据测试工具,覆盖了结构数据、半结构数据和非结构数据,其负载模拟了搜索引擎、社交网络和电子商务等业务模型[6]。第三类测试工具是具体应用领域端到端的大数据测试工具,这类的测试工具主要有BigBench,是基于TPC-DS开发的端到端大数据测试工具,面向零售业务,模拟电子商务的整个流程,主要测试MapReduce和并行DBMS[10],其优点是应用场景结合非常紧密,行业针对性很强。这三类测试工具各有其应用场景,微型测试工具测试的应用较单一,效率高、成本低,但无法通体衡量大数据平台的性能,综合类测试工具覆盖面比较广,考虑到应用类型和不同平台组件,能够较全面考量大数据平台执行不同类型任务的性能,通用性好。端到端的大数据测试工具满足了对企业特定业务的模拟,与企业应用场景结合紧密,覆盖了企业大数据业务全流程的模拟和测试,是未来大数据测试工具发展的趋势。6 总结大数据基准测试负载、数据、指标的选择都应该基于企业具体业务场景和应用需求,对于业务种类较多、覆盖多个平台组件的企业应该考虑抽象一些共性的负载,选择通用性的测试工具。对于行业领域比较明确,业务种类比较集中的企业,应该多考虑抽象出特定的场景的负载,选用实际数据进行扩展,最好定制端到端的测试工具。目前来看,大数据测试工具都属于微型工具,其负载均模拟真实业务中的一些简单操作,主要从性能角度衡量大数据基础平台(Hadoop或者Spark平台),目前比较缺少端到端的面向具体业务场景的测试负载和测试数据。随着企业的大数据应用的逐步发展,企业更加了解自身需求,未来大数据基准测试的发展将注重以下两点。1)面向具体行业的应用场景,模拟典型的应用类型,针对特定行业端到端的测试工具,比如模拟搜索引擎、社交网络、上网流量查询、银行账单查询等业务的负载。2)简化测试部署、执行的复杂性,提供更好的可视化工具。参考文献[1] Total Number of Websites.Internetlivestats[EB/OL].[2014-10-11].http://www.internetlivestats.com/total-number-of-websites/[2] John Gantz,David Reinsel.The Digital Universe In 2020: Big Data,Bigger Digital Shadows,and Biggest Growth in the Far East[R/OL].[2014-10-11].http://www.emc.com/leadership/digital-universe/2014iview/executive-summary.htm[3] The Four V's of Big Data[EB/OL].[2014-10-11].http://www.ibmbigdatahub.com/infographic/four-vs-big-data[4] The 2014 IDG Enterprise Big Data research[R/OL].[2014-10-11].http://www.idgenterprise.com/report/big-data-2[5] Rui Han,Xiaoyi Lu.On Big Data Benchmarking[C]//The Fourth workshop on Big Data Benchmarks, Performance Optimization,and Emerging Hardware. Salt Lake City,Utah,USA,2014:3-18[6] Wang L,Zhan J,Luo C,et al.BigDataBench:a Big Data Benchmark Suit from Internet Services[C]//The 20th IEEE International Symposium On High Performance Computer Architecture.Orlando,USA,2014[7] Brian F.Cooper,Adam Silberstein,Erwin Tam,et al. Benchmarking Cloud Serving Systems with YCSB[C]//The 1st ACM symposium on Cloud computing,SoCC'10.Indianapolis,Indiana, USA,2010:143-153[8] Timothy G.Armstrong,VamsiPonnekanti, DhrubaBorthaku.LinkBench:a Database Benchmark Based on the Facebook Social Graph[C]//SIGMOD, ACM,USA,2013:1185-1196(下转51页)
分享到:
收藏