【初识大数据】如何进行大数据测试?需要具备什么能力?
了解大数据框架组件
Hadoop(读:哈丢谱)---是一个能够对大量数据进行分布式处理的软件框架。(Hadoop中最核心涉及就是HDFS和MapReduce)
Hadoop5大特性/优点:
- 高可靠性。
Hadoop按位存储和处理数据的能力值得人们信赖 。 - 高扩展性
Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。 - 高效性
Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。 - 高容错性
Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。 - 低沉本
与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。
HDFS---为海量的数据提供了存储。(Hadoop中的一个组件)
MapReduce---为海量的数据提供了计算
大数据测试主要分为三个阶段:
一、数据阶段验证(又被成为pre-hadoop阶段)
- 来自各方的数据资源进行验证,来确保数据正确加载进行系统;
- 将源数据与推送到Hadoop系统中的数据进行比较,确保正确;
- 验证正确的数据被提取并被加载到HDFS正确位置。
该阶段可以使用工具Talend或Datameer,进行数据阶段验证。
二、Mapreduce数据处理验证
在这个阶段,测试者在每个节点上进行业务逻辑验证,然后在运行多个节点后验证它们,确保如下操作的正确性
- Map与Reduce进程正常工作;
- 在数据上实施数据聚合或隔离规则;
- 生成键值对;
- 在执行Map和Reducee进程后验证数据。
三、输出阶段验证
大数据最后或第三阶段就是输出验证过程。生成输出数据文件,同时把文件移到一个EDW(Enterprise Data Warehouse:企业数据仓库)中或把文件移动到任何其他基于需求的系统中。
- 检查转换(Transformation)规则被正确应用;
- 检查数据完整性和成功的数据加载到目标系统中;
- 通过将目标数据与HDFS文件系统数据进行比较来验证没有数据破坏。
架构测试
Hadoop处理大量的数据,并且是非常耗费资源的。因此,架构测试对于确保您的大数据项目的成功至关重要。系统设计不当或设计不当可能导致性能下降,系统不能满足要求。至少,性能和故障转移测试服务应该在Hadoop环境中完成。
性能测试包括测试作业完成时间,内存使用率,数据吞吐量和类似的系统指标。而故障转移测试服务的动机是为了验证在数据节点发生故障的情况下数据处理是否无缝地发生
性能测试
大数据性能测试包括两个主要的行动
数据采集和整个过程:在这个阶段,测试人员验证快速系统如何消耗来自各种数据源的数据。测试涉及识别队列在给定时间框架内可以处理的不同消息。它还包括如何快速将数据插入到底层数据存储中,例如插入到Mongo和Cassandra数据库中。
数据处理:它涉及验证执行查询或映射缩减作业的速度。它还包括在底层数据存储填充到数据集中时独立测试数据处理。例如,在底层HDFS上运行Map Reduce作业
子组件性能:这些系统由多个组件组成,而且必须单独测试每个组件。例如,消息的索引和消费速度有多快,mapreduce作业,查询性能,搜索等
性能测试方法
大数据应用性能测试涉及大量结构化和非结构化数据的测试,并且需要特定的测试方法来测试这些海量数据。
性能测试执行顺序
- 过程从设置要测试性能的大数据群集开始;
- 确定和设计相应的工作量;
- 准备个人客户(自定义脚本创建);
- 执行测试并分析结果(如果不满足目标,则调整组件并重新执行);
- 最佳配置(性能测试的参数)
性能测试需要验证的各种参数
- 数据存储:数据如何存储在不同的节点中
- 提交日志:允许增长的提交日志有多大
- 并发性:有多少个线程可以执行写入和读取操作
- 缓存:调整缓存设置“行缓存”和“键缓存”。
- 超时:连接超时值,查询超时值等
- JVM参数:堆大小,GC收集算法等
- 地图降低性能:排序,合并等
- 消息队列:消息速率,大小等
测试环境需求
测试环境需求取决于您正在测试的应用程序的类型。对于大数据测试,测试环境应该包含
- 它应该有足够的空间来存储和处理大量的数据
- 它应该有分布式节点和数据的集群
- 它应该有最低的CPU和内存利用率,以保持高性能
大数据测试面临的挑战
- 自动化
大数据的自动化测试需要具有技术专长的人员。另外,自动化工具不具备处理测试过程中出现的意外问题的能力 - 虚拟化
这是测试的一个不可缺少的阶段。虚拟机延迟会在实时大数据测试中造成计时问题。在大数据中管理图像也是一件麻烦事。 - 大数据集
- 需要验证更多的数据,并需要更快地完成
- 需要自动化测试工作
- 需要能够跨不同的平台进行测试
性能测试挑战
- 多种技术组合:每个子组件属于不同的技术,需要单独测试
- 不可用的特定工具:没有一个工具可以执行端到端的测试。例如,NoSQL可能不适合消息队列
- 测试脚本:需要高度的脚本来设计测试场景和测试用例
- 测试环境:数据量大,需要特殊的测试环境
- 监控解决方案:存在有限的解决方案,可以监控整个环境
- 诊断解决方案:需要定制解决方案来深入了解性能瓶颈区域
进群交流、获取更多干货, 请关注微信公众号:
> > > 咨询交流、进群,请加微信,备注来意:sanshu1318 (←点击获取二维码)
> > > 学习路线+测试实用干货精选汇总:
https://www.cnblogs.com/upstudy/p/15859768.html
> > > 【自动化测试实战】python+requests+Pytest+Excel+Allure,测试都在学的热门技术:
https://www.cnblogs.com/upstudy/p/15921045.html
> > > 【热门测试技术,建议收藏备用】项目实战、简历、笔试题、面试题、职业规划:
https://www.cnblogs.com/upstudy/p/15901367.html
> > > 声明:如有侵权,请联系删除。
============================= 升职加薪 ==========================
更多干货,正在挤时间不断更新中,敬请关注+期待。