大数据测试方法和工具梳理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大数据测试方法和工具梳理
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:企业数据仓库)中或着把文件移动到任何其他基于需求的系统中。在第三阶段的活动包括:
•检查转换(Transformation)规则被正确应用
•检查数据完整性和成功的数据加载到目标系统中
•通过将目标数据与HDFS文件系统数据进行比较来检查没有数据损坏
4 架构测试
Hadoop处理非常大量的数据,并且资源密集。因此,架构测试对于确保大数据项目的成功至关重要。系统设计不当或设计不当可能导致性能下降,系统可能无法满足要求。至少,性能和故障转移测试服务应在Hadoop环境中完成。
性能测试包括测试作业完成时间,内存利用率,数据吞吐量和类似的系统指标。虽然故障转移测试服务的动机是验证数据处理在数据节点故障的情况下无缝地发生
5 性能测试
大数据的性能测试包括两个主要方面:
•数据获取和吞吐量:在这个阶段,测试人员验证快速系统如何使用来自各种数据源的数据。测试涉及识别队列在给定时间帧
中可以处理的不同消息。它还包括如何快速地将数据插入到底层数据存储中,例如插入到Mongo和Cassandra数据库中。
•数据处理:它涉及验证执行查询或map reduce作业的速度。它还包括底层数据存储的数据集中填充时隔离测试数据的过程。
例如,在底层HDFS上运行Map Reduce作业
•子组件性能:这些系统由多个组件组成,必须单独测试这些组件。例如,消息被索引和使用的速度,mapreduce作业,查询性能,搜索等。
5.1 性能测试方法
大数据应用程序的性能测试涉及大量结构化和非结构化数据的测试,它需要一种特定的测试方法来测试这样的大量数据。
性能测试按此顺序执行
1. 对要性能测试的大数据集群的进行设置
2. 识别和设计相应的工作负载
3. 准备单个客户端(创建自定义脚本)
4. 执行测试并分析结果(如果不满足目标,则调整组件并重新执
行)
5. 最佳配置
5.2 性能测试的参数
要验证性能测试的各种参数是
•数据存储:数据如何存储在不同的节点中
•提交日志:提交日志允许增长的大小
•并发性:有多少线程可以执行写和读操作
•缓存:调整缓存设置“行缓存”和“密钥缓存”。
•超时:连接超时,查询超时等的值。
•JVM参数:堆大小,GC收集算法等。
•降低性能:排序,合并等
•消息队列:消息速率,大小等
6 测试环境需求
测试环境需求取决于要测试的应用程序的类型。对于大数据测试,测试环境应包括
•它应该有足够的空间用于存储和处理大量的数据
•它应该具有分布式节点和数据的集群
•它应该具有最小的CPU和内存利用率,以保持高性能
7 大数据测试和传统数据库测试
8 大数据场景中使用的工具
8.1 针对大数据单个组件测试工具
GridMix针对Hadoop集群的测试基准,它具备评测大规模数据处理系统所需的各个功能模块,包括:产生数据,生成并提交作业,统计作业完成时间等。
TeraSort针对文本数据的排序。1TB排序通常用于衡量分布式数据处理框架的数据处理能力。Terasort是hadoop中的的一个排序作业,在2008年,Hadoop在1TB排序基准评估中赢得第一名,耗时209秒。
YCSB是Yahoo开发的一个专门用来对新一代数据库进行基准测试的工具。全名是Yahoo! Cloud Serving Benchmark。他们开发这个工具的目的是希望有一个标准的工具用来衡量不同数据库的性能。YCSB做了很多优化来提高客户端性能,例如在数据类型上用了最原始的比特数组以减少数据对象本身创建转换所需的时间等。
Filebench 是一款文件系统性能的自动化测试工具,它通过快速模拟真实应用服务器的负载来测试文件系统的性能。它不仅可以仿真文件系统微操作(如 copyfiles, createfiles, randomread,randomwrite ),而且可以仿真复杂的应用程序(如 varmail,fileserver, oltp, dss, webserver, webproxy )。 Filebench 比较适合用来测试文件服务器性能,但同时也是一款负载自动生成工具,也可用于文件系统的性能。
8.2 综合类测试工具,覆盖大数据平台多个功能组件
Hibench是用来在速度方面评估不同的大数据框架的,它包括一系列的Hadoop,Spark,streaming工作负载,包括sort,wordcount,TeraSort, Sleep, SQL, PageRank, Nutch indexing, Bayes, Kmeans,