大数据平台基准测试流程(测试工具)解析
基准测试解决方案

基准测试解决方案一、概述基准测试是一种评估和比较计算机系统性能的方法。
基准测试解决方案旨在提供一套标准化的测试流程和工具,以便客观地评估计算机系统的性能,并为性能优化提供指导。
本文将详细介绍基准测试解决方案的组成部分、测试流程和常见的基准测试工具。
二、组成部分1. 测试目标:明确基准测试的目的,例如评估服务器的处理能力、测试数据库的读写性能等。
2. 测试环境:搭建合适的测试环境,包括硬件设备、操作系统、网络环境等。
确保测试环境与实际生产环境尽可能接近,以提高测试结果的可靠性。
3. 测试数据:准备具有代表性的测试数据,以模拟真实场景的负载。
测试数据的规模和特征应与实际使用情况相匹配。
4. 测试工具:选择适合的基准测试工具,根据测试目标和测试环境的需求,例如性能测试工具JMeter、数据库基准测试工具HammerDB等。
5. 测试指标:定义合适的性能指标,如响应时间、吞吐量、并发用户数等。
这些指标将用于评估系统的性能表现。
三、测试流程1. 确定测试目标:明确要测试的系统和性能指标,例如测试Web服务器的并发处理能力,目标是达到每秒处理1000个请求。
2. 搭建测试环境:配置合适的硬件设备、操作系统和网络环境。
确保测试环境的稳定性和可靠性。
3. 准备测试数据:根据测试目标和测试环境的需求,准备合适的测试数据。
例如,如果要测试数据库的读写性能,可以准备包含大量记录的数据库表。
4. 配置测试工具:根据测试目标和测试环境的需求,配置基准测试工具。
设置测试工具的参数,如并发用户数、请求类型、测试持续时间等。
5. 执行测试:运行基准测试工具,模拟实际负载并记录测试结果。
根据测试指标评估系统的性能表现。
6. 分析结果:分析测试结果,找出性能瓶颈和优化空间。
可以通过查看系统日志、性能监控工具等方式进行分析。
7. 优化系统:根据测试结果和分析,进行系统的性能优化。
可以通过调整硬件配置、优化代码、增加缓存等方式提升系统性能。
深入了解服务器负载测试的流程及工具

深入了解服务器负载测试的流程及工具服务器负载测试是指通过模拟多种负载条件,评估服务器在不同负载下的性能表现,以确保服务器在实际应用中能够稳定运行并满足用户需求。
深入了解服务器负载测试的流程及工具对于保障服务器性能至关重要。
本文将介绍服务器负载测试的流程和常用工具,帮助读者更好地了解和应用服务器负载测试。
一、服务器负载测试的流程1. 确定测试目标:在进行服务器负载测试之前,首先需要明确测试的目标。
测试目标可以包括服务器的性能评估、负载承受能力测试、性能优化等。
根据不同的测试目标,可以确定测试的范围和重点。
2. 制定测试计划:制定详细的测试计划是服务器负载测试的关键步骤。
测试计划应包括测试的时间安排、测试的负载类型、测试的工具选择、测试的指标评估等内容。
通过制定测试计划,可以确保测试的顺利进行和结果的准确性。
3. 准备测试环境:在进行服务器负载测试之前,需要准备好测试环境。
测试环境包括服务器硬件配置、网络环境、操作系统版本等。
确保测试环境的稳定性和一致性对于测试结果的准确性至关重要。
4. 选择测试工具:选择合适的测试工具是服务器负载测试的关键。
常用的服务器负载测试工具包括Apache JMeter、LoadRunner、Gatling等。
根据测试的需求和目标选择合适的测试工具,可以更好地进行服务器负载测试。
5. 进行负载测试:根据测试计划和选定的测试工具,开始进行服务器负载测试。
通过模拟不同的负载条件,观察服务器在不同负载下的性能表现。
记录测试过程中的关键指标,如响应时间、吞吐量、错误率等。
6. 分析测试结果:在完成负载测试后,需要对测试结果进行分析。
通过分析测试结果,可以评估服务器在不同负载下的性能表现,找出性能瓶颈和优化空间。
根据分析结果,制定性能优化方案,提升服务器的性能表现。
7. 优化和再测试:根据分析结果制定的性能优化方案,对服务器进行优化。
优化包括硬件升级、软件调优、网络优化等。
优化完成后,再次进行负载测试,验证优化效果,确保服务器在高负载下的稳定性和性能表现。
大数据平台测试标准

大数据平台测试标准引言概述:大数据平台测试标准是指在大数据平台开辟和上线前,对平台进行全面的测试,以确保其功能的完整性和稳定性。
本文将从五个方面详细阐述大数据平台测试的标准。
一、功能测试1.1 数据采集功能测试:测试数据采集模块是否能够准确地从各个数据源获取数据,并保证数据的完整性和准确性。
1.2 数据存储功能测试:测试数据存储模块是否能够高效地存储大量数据,并能够满足数据的可靠性和安全性要求。
1.3 数据处理功能测试:测试数据处理模块是否能够对大量数据进行快速的处理和计算,并能够生成准确的分析结果。
二、性能测试2.1 数据处理性能测试:测试大数据平台在处理大量数据时的性能表现,包括数据的读取、写入和计算速度等指标。
2.2 并发性能测试:测试大数据平台在多用户同时访问时的性能表现,包括系统的响应速度和并发处理能力等指标。
2.3 负载测试:测试大数据平台在高负载情况下的性能表现,包括系统的稳定性和可扩展性等指标。
三、安全性测试3.1 数据安全性测试:测试大数据平台在数据传输、存储和处理过程中是否能够保护数据的安全性,包括数据的加密和权限控制等方面。
3.2 系统安全性测试:测试大数据平台在系统架构和配置方面是否存在安全漏洞,并提出相应的修复建议。
3.3 用户权限测试:测试大数据平台对不同用户角色的权限管理是否精细,并确保用户只能访问其具备权限的数据和功能。
四、稳定性测试4.1 异常处理测试:测试大数据平台在面对各种异常情况时的处理能力,包括系统崩溃、网络中断和数据丢失等情况。
4.2 冗余备份测试:测试大数据平台在硬件故障等情况下能否自动切换到备份系统,并保证数据的完整性和可用性。
4.3 故障恢复测试:测试大数据平台在发生故障后的恢复能力,包括系统的自动恢复和手动恢复等方面。
五、兼容性测试5.1 数据源兼容性测试:测试大数据平台是否能够与各种数据源进行兼容,包括关系数据库、文件系统和云存储等。
5.2 数据格式兼容性测试:测试大数据平台是否能够处理不同数据格式的数据,包括结构化数据、半结构化数据和非结构化数据等。
大数据性能测试方案

大数据性能测试方案随着大数据技术的快速发展,越来越多的企业开始使用大数据技术来处理和分析海量的数据。
然而,大数据技术的复杂性和庞大的规模也给性能测试带来了更大的挑战。
为了验证一个大数据系统的性能,并确保其在实际使用中能够满足用户需求,需要制定一套完整的大数据性能测试方案。
1.确定测试目标在进行大数据性能测试之前,首先要明确测试的目标。
例如,测试人员可能希望评估系统在处理特定大小和类型的数据集时的性能,或者测试系统在并发用户负载下的响应时间和吞吐量。
2.设计测试环境在进行大数据性能测试时,需要准备适合的测试环境。
测试环境应该与实际部署环境相似,包括硬件设备、操作系统、网络条件等。
同时,还需要配置适当的测试工具和监控系统,以便对系统进行性能和资源利用的监测和分析。
3.收集测试数据为了进行性能测试,需要准备和收集能够模拟真实使用场景的测试数据。
这些数据应该包括各种类型和规模的数据,以确保系统在处理不同情况下的性能表现。
4.设计性能测试用例性能测试用例的设计是性能测试方案的关键一步。
测试用例应该涵盖各种场景,例如并发用户的数量和负载特征,不同类型和大小的数据集处理,以及各种查询和分析操作等。
5.执行性能测试在执行性能测试时,需要根据预先设计的测试用例来模拟真实的使用场景。
测试人员应该记录关键性能指标,例如响应时间、吞吐量、系统利用率等,并进行监控和分析。
6.分析和优化性能在完成性能测试后,需要对测试结果进行分析,并根据分析结果进行性能优化。
可以使用各种性能优化技术,例如增加硬件资源、优化算法或查询计划等,以提高系统的性能表现。
7.重复测试性能测试是一个迭代过程,需要多次测试和优化。
重复测试的目的是验证性能优化的效果,并确保系统在各种情况下都能够稳定运行。
总结:大数据性能测试是一项复杂而重要的任务。
通过制定一个完整的测试方案,可以帮助测试人员评估大数据系统的性能,并发现潜在的问题。
通过持续的性能优化,可以确保大数据系统能够在实际使用中高效运行,并满足用户的需求。
大数据平台测试标准

大数据平台测试标准一、背景介绍大数据平台是指用于处理和分析大规模数据集的技术和工具集合。
在大数据平台的开辟过程中,测试是确保平台功能和性能达到预期的关键环节。
本文将详细介绍大数据平台测试的标准格式,包括测试目标、测试环境、测试策略、测试用例设计、测试执行和测试报告等内容。
二、测试目标1. 功能测试:验证大数据平台的各项功能是否符合需求,包括数据采集、数据存储、数据处理和数据分析等功能。
2. 性能测试:评估大数据平台在处理大规模数据集时的性能表现,包括数据读写速度、响应时间和并发处理能力等指标。
3. 可靠性测试:验证大数据平台的稳定性和可靠性,包括错误处理、容错机制和故障恢复等方面。
4. 安全性测试:评估大数据平台的安全性能,包括数据隐私保护、权限控制和防止恶意攻击等方面。
三、测试环境1. 硬件环境:包括服务器、存储设备、网络设备等。
2. 软件环境:包括操作系统、数据库管理系统、大数据处理框架等。
3. 测试数据:包括真实数据和合成数据,用于测试各项功能和性能。
四、测试策略1. 需求分析:对大数据平台的需求进行详细分析,明确测试的重点和范围。
2. 测试计划:编制测试计划,包括测试资源、测试时间和测试人员的安排。
3. 测试设计:根据需求和功能设计测试用例,包括正常场景和异常场景的测试。
4. 测试执行:按照测试计划和测试用例执行测试,记录测试过程中的问题和缺陷。
5. 缺陷管理:对测试过程中发现的问题和缺陷进行管理和跟踪,确保问题得到及时解决。
6. 性能评估:使用性能测试工具对大数据平台进行负载测试和压力测试,评估其性能表现。
7. 安全评估:进行安全性测试,评估大数据平台的安全性能和防护能力。
五、测试用例设计1. 功能测试用例:根据需求设计各项功能的测试用例,包括输入数据、预期结果和执行步骤等。
2. 性能测试用例:设计针对性能的测试用例,包括数据量、并发用户和响应时间等参数。
3. 可靠性测试用例:设计各种故障场景的测试用例,验证平台的容错和恢复能力。
大数据测试方法与工具梳理

大数据测试方法和工具梳理1 什么是大数据大数据是一个大的数据集合,通过传统的计算技术无法进行处理。
这些数据集的测试需要使用各种工具、技术和框架进行处理。
大数据涉及数据创建、存储、检索、分析,而且它在数量、多样性、速度方法都很出色。
2 大数据测试类型测试大数据应用程序更多的是验证其数据处理,而不是测试软件产品的个别功能。
当涉及到大数据测试时,性能和功能测试是关键。
在大数据测试中,QA工程师使用集群和其他组件来验证对TB 级数据的成功处理。
因为处理非常快,所以它需要高水平的测试技能。
处理可以是三种类型:批量、实时、交互。
与此同时,数据质量也是大数据测试的一个重要因素。
在测试应用程序之前,有必要检查数据的质量,并将其视为数据库测试的一部分。
它涉及检查各种字段,如一致性,准确性,重复,一致性,有效性,数据完整性等。
3 大数据测试实现被分成三个步3.1 步骤1:数据分段验证大数据测试的第一步,也称为pre-Hadoop阶段涉及过程验证。
•来自各种来源(如RDBMS,博客,社交媒体等)的数据应进行验证,以确保正确的数据被拉入系统•将源数据与推送到Hadoop系统中的数据进行比较,以确保它们匹配•验证正确的数据被提取并加载到正确的HDFS位置该阶段可以使用工具Talend或Datameer,进行数据阶段验证。
3.2 步骤2:“MapReduce”验证大数据测试的第二步是MapReduce的验证。
在这个阶段,测试者在每个节点上进行业务逻辑验证,然后在运行多个节点后验证它们,确保如下操作的正确性:•Map Reduce进程正常工作•在数据上实现数据聚合或隔离规则•生成键值对•在Map Reduce进程后验证数据3.3 步骤3:输出验证阶段大数据测试的最后或第三阶段是输出验证过程。
生成输出数据文件,同时把文件移到一个EDW(Enterprise Data Warehouse:企业数据仓库)中或着把文件移动到任何其他基于需求的系统中。
软件性能测试中的基准测试方法

软件性能测试中的基准测试方法在软件性能测试中,基准测试方法是评估软件性能的关键步骤。
基准测试方法可以帮助开发人员和测试人员确定软件的性能水平,发现潜在的性能问题,并为软件性能的改进提供依据。
本文将详细介绍软件性能测试中的基准测试方法。
我们需要明确基准测试的定义。
基准测试是针对软件性能的标准化测试,旨在评估软件在特定条件下的性能表现。
基准测试方法可以帮助我们找出软件在不同负载情况下的性能瓶颈,并为性能改进提供目标和参考。
在进行基准测试之前,我们需要先确定测试的目标和考核指标。
这些目标和指标可以根据实际需求进行定义,例如响应时间、吞吐量、并发用户数等。
通过明确目标和指标,我们可以更准确地评估软件的性能,并对性能问题进行定位和分析。
接下来,选择适当的测试环境和工具非常重要。
测试环境应该尽可能接近真实的生产环境,以保证测试结果的准确性和可靠性。
根据具体的测试需求,我们可以选择不同的工具来进行基准测试,如Apache JMeter、LoadRunner等。
这些工具可以模拟多个用户的并发操作,从而模拟真实的负载情况,并收集性能数据供后续分析。
在进行基准测试之前,我们需要制定测试计划和测试脚本。
测试计划应包含测试的目标、测试的环境和工具、测试的时间安排等信息。
测试脚本是用来模拟真实用户行为的脚本,包含了用户操作的步骤和参数。
编写合理的测试脚本可以帮助我们更准确地模拟用户行为,从而得到更真实的测试结果。
在进行基准测试时,我们需要注意几个关键点。
测试应该在合适的负载条件下进行。
如果负载过低,测试结果可能无法准确反映真实生产环境下的性能表现;反之,如果负载过高,可能会导致性能问题的产生。
测试应该进行足够长的时间,以验证软件的长时间稳定性和性能表现。
要保持测试环境的稳定和一致,避免其他因素对测试结果的干扰。
在基准测试完成后,我们需要对测试结果进行分析和评估。
根据预先设定的指标和目标,评估软件在不同负载条件下的性能表现,并对性能问题进行分析和定位。
基准测试解决方案

基准测试解决方案一、概述基准测试是评估计算机系统、网络、软件或硬件性能的一种方法。
它通过模拟真实场景,对系统进行负载测试,以确定系统的性能、稳定性和可靠性。
基准测试解决方案是指一套完整的流程和工具,用于设计、执行和分析基准测试。
二、解决方案的流程1.需求分析在进行基准测试之前,首先需要明确测试的目的和需求。
根据系统的特点和要求,确定测试的指标和测试场景。
例如,对于一个网络服务器,可能需要测试其并发连接数、响应时间等指标。
2.测试设计根据需求分析的结果,设计测试方案。
确定测试的负载类型、负载大小、测试时间等参数。
选择合适的工具和技术,如性能测试工具、负载生成器等。
3.测试环境搭建根据测试设计,搭建测试环境。
包括硬件设备、操作系统、网络配置等。
确保测试环境与实际生产环境尽可能接近,以保证测试结果的准确性。
4.测试执行按照测试设计,执行基准测试。
通过模拟真实场景,对系统进行负载测试。
记录测试过程中的各项指标,如响应时间、吞吐量、错误率等。
5.测试分析对测试结果进行分析。
根据测试指标,评估系统的性能和稳定性。
发现潜在的性能瓶颈和问题,并提出优化建议。
可以使用数据可视化工具,如图表、报表等,对测试结果进行展示和分析。
6.优化改进根据测试分析的结果,针对性地进行优化改进。
可能涉及到系统配置调整、代码优化、硬件升级等。
重新执行基准测试,验证改进效果。
7.报告撰写根据测试分析的结果和优化改进的情况,撰写测试报告。
报告应包括测试的目的、测试设计、测试执行过程、测试结果和分析、优化改进的建议等内容。
三、示例以一个电子商务网站为例,介绍基准测试解决方案的具体实施过程。
1.需求分析:目标:评估电子商务网站在高并发情况下的性能和稳定性。
指标:并发用户数、页面响应时间、订单处理时间等。
2.测试设计:负载类型:模拟真实用户行为,包括浏览商品、下单、支付等操作。
负载大小:并发用户数从10到1000逐步增加。
测试时间:持续测试24小时。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
43引言互联网的普及已经连接了全世界近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 测试负载示例4.3 指标测试指标主要分为两类,一类是从用户角度出发的指标,这类指标注重于直观化,让用户容易理解[6];第二类指标是从架构的角度出发的,主要考量系统架构的能力。
第一类的指标主要有每秒执行的请求数,请求延迟和每秒执行的操作数;第二类指标注重比较系统性能间的差异,主要有每秒浮点计算速度和每秒数据吞吐量等。
在实际测试中,为比较不同平台之间的差异,可以从以下四个维度来评估大数据平台:性能、能耗、性价和可靠性,具体介绍和计算方式见表2。
表2 测试指标5 大数据测试工具当前大数据基准工具有很多,主要分为三种类型。
一类属于微型负载,这类负载测试只测试大数据平台的某个特定组件或应用,例如GridMix 是面向Hadoop 集群的测试基准;TeraSort 只针对文本数据的排序;雅虎开发的YCSB 对比NoSQL数据库的性能,其目的是评估键值和云数据库[7];Facebook 的LinkBench 专门用于研究与开发 Research & Development46测试存储社交图谱和网络服务的数据库[8]。
第二类是综合类的测试工具,模拟几类典型应用,覆盖大数据软件平台的多个功能组件,比如英特尔的Hibench 是针对Hadoop 和Hive 平台的基准测试工具,其负载按照业务能分为微型负载、搜索业务、机器学习和分析请求等四类[9];BigDataBench 是中科院计算所提出的大数据测试工具,覆盖了结构数据、半结构数据和非结构数据,其负载模拟了搜索引擎、社交网络和电子商务等业务模型[6]。