• 大数据测试


    一、什么是大数据?

    大数据是一个大的数据集合,通过传统的计算技术无法进行处理。这些数据集的测试需要使用各种工具、技术和框架进行处理。大数据涉及数据创建、存储、检索、分析,而且它在数量、多样性、速度方法都很出色。

    二、大数据测试类型

    测试大数据应用程序更多的是验证其数据处理,而不是测试软件产品的个别功能。当涉及到大数据测试时,性能和功能测试是关键。

    在大数据测试中,使用集群和其他组件来验证对TB级数据的成功处理。因为处理非常快,所以它需要高水平的测试技能。

    大数据处理三个特性:

    • 大批量
    • 实时性
    • 交互性

    另外,数据质量也同样是大数据测试的一个重要维度。

    因此在进行应用程序测试之前,必须确保数据质量,并且考虑把数据质量作为数据库测试的一部分。涉及数据的各种特性的检验,例如一致性、准确性、重复性、连贯性、有效性及完整性等等。

    三、大数据测试步骤

    测试大数据应用程序阶段的高级概述:

    大数据测试实现被分成三个步。

    Step 1:数据阶段验证

    在进行大数据测试时,首先要预hadoop前验证数据的准确性等等。

    1、来自各方面的数据资源应该被验证(如:关系数据库、日志系统、社交等等),来确保正确的数据被加载进系统

    2、将源数据与推送到Hadoop系统中的数据进行比较,以确保加载数据与原数据一致

    3、验证正确的数据被提取并被加载到HDFS正确的位置

    该阶段可以使用工具Talend或Datameer,进行数据阶段验证。

    Step 2:"MapReduce"验证

    大数据测试的第二步是MapReduce的验证。在这个阶段,测试者在每个节点上进行业务逻辑验证,然后在运行多个节点后验证它们,确保如下操作的正确性:

    1、Map与Reduce进程正常工作

    2、在数据上实施数据聚合或隔离规则实现

    3、数据key-value键值对关系已正确生成

    4、在执行Map和Reduce进程后验证数据

    大数据测试的最后或第三阶段是输出验证过程。生成输出数据文件,同时把文件移到一个EDW(Enterprise Data Warehouse:企业数据仓库)中或着把文件移动到任何其他基于需求的系统中。在第三阶段的活动包括:

    1、检查数据转换(Transformation)规则被正确应用

    2、检查数据完整性和成功的数据加载到目标系统中

    3、通过将目标数据与HDFS文件系统数据进行比较来检查没有数据损坏

    四、架构测试

    Hadoop处理海量数据是非常的消耗资源的,良好的架构是确保大数据项目成功的基础。糟糕的涉及会导致性能急剧的下降,进而使得系统无法满足我们的需要,因此我们需要,或是说至少在Hadoop环境下进行性能测试、故障恢复测试,以应改进效率和应对可能的最糟糕的情况。

    性能测试是一个复杂的工作,它贯穿整个测试周期,需要关注内存、CPU、网络等等指标。

    故障恢复测试则是验证数据处理过程中可能出现的故障,为做好意外的恢复做好相应的应对措施。

    五、性能测试

    大数据性能测试主要包含以下几个部分:

    • 数据提取、存储效率

    在本阶段,我们主要验证大数据应用从源数据中提取、加载数据的效率。

    一是验证单位时间内数据的提取、加 载效率。

    二是验证数据持久化至mongodb等库的效率等等

    • 数据处理

    在本阶段,我们验证map reduce任务的执行效率,重点关注的是数据处理的效率。当然这个过程可能也会涉及到数据的持久化相关指标,例如存储至HDFS读写效率等等,同样也会涉及在内存中处理效率,即我们的处理算法效率等等

    • 子组件性能

    大数据处理,一般都会需要综合利用各种组件来辅助处理,所以我们也是需要关注这些辅助组件的性能

    六、性能测试方法

    大数据应用性能测试涉及海量的结构化和非结构化的数据,与我们平时所面对的业务系统有所不同,所以我们需要针对大数据应用制定特定的测试策略,以应对海量的数据

    性能测试按此顺序执行:

    1、在性能测试前需要先初始化大数据集群环境

     

    2、梳理和设计大数据性能测试场景

     

    3、准备大数据性能测试脚本

     

    4、执行并分析测试结果(如果指标异常,则调优相应的组件并重新测试)

    5、优化配置

    性能测试需要验证的各种参数:

    1、数据存储:数据如何存储在不同的节点中

    2、提交日志:允许增长的提交日志有多大

    3、并发性:有多少个线程可以执行写入和读取操作

    4、缓存:调整缓存设置“行缓存”和“键缓存”。

    5、超时:连接超时值,查询超时值等

    6、JVM参数:堆大小,GC收集算法等

    7、地图降低性能:排序,合并等

    8、消息队列:消息速率,大小等

    测试环境需求:

    大数据测试不同于常规的应用测试,你应该具备以下一些基础环境:

    1、拥有足够的存储设备来存储和处理大数据

    2、拥有集群来做分布式节点和数据处理

    3、至少拥有足够的cpu、内存来确保有高性能的处理基础

    七、大数据测试面临的挑战

    对于从事大数据测试的软件测试工程师而言,与传统的测试工作相对比,我们可能面临的以下几个可能的挑战:

    • 自动化
      自动化测试是从事大数据测试必备的技术,但自动化测试工具可能并不具备处理测试过程所引发的异常的能力,意味着现有工具可能并不适用,编程能力将是更好的一种技能。

    • 虚拟化 当前业内大规模使用虚拟化技术,但虚拟机的延迟有可能造成大数据实时测试处理的异常。

    对大数据而言,管理影像信息也将是一个巨大的问题。

    • 海量数据集

    1、需要验证的数据量巨大,而且需要更快的处理速度

    2、需要有效的自动化测试手段

    3、需要尽可能的跨平台

    八、性能测试挑战

    对于从是大数据性能测试,与传统性能测试相比较,我们要面临是样的挑战呢,可能有以下几个方面:

    1、技术的多样化,复杂化,面对不同的大数据解决方案,我们可能需要掌握不同的技术和定制不同的测试解决方案

    2、无通用的工具,目前业界暂无通用的标准的大数据性能测试工具,这意味着我们需要根据大数据应用解决方案技术,要自行开发或整合多种相关工具才可能解决问题

    3、测试环境复杂化,因为海量的数据,我们所需要测试环境亦会更加复杂,所消耗的基础成本会更高

    4、监控解决方案,目前有的监控解决方案有限,但通过整合不同的监控工具,大致可能拥有一套相对可行的监控解决方案

    5、诊断方案,由于大数据应用所涉及的技术、环境复杂性,对于问题的诊断调优,我们需要根据实际情况来进行开发定制

    九、小结

    1、随着数据工程和数据分析技术的不断进步,大数据测试是不可避免的。

    2、大数据处理可以是批处理,实时或交互式处理

    3、测试大数据应用程序的3个阶段是

    • 数据分级验证
    • “MapReduce”验证
    • 输出验证阶段

    4、架构测试是大数据测试的重要阶段,因为设计不佳的系统可能会导致前所未有的错误和性能下降

    5、大数据的性能测试包括验证

    • 数据吞吐量
    • 数据处理
    • 子组件性能

    6、大数据测试与传统数据测试在数据,基础架构和验证工具方面有很大的不同

    7、大数据测试挑战包括虚拟化,测试自动化和处理大型数据集。大数据应用程序的性能测试也是一个问题。

  • 相关阅读:
    Spring框架概念
    git stash 用法总结和注意点
    Java虚拟机:对象创建过程与类加载机制、双亲委派模型
    办公软件技巧
    Zookeeper到底是干嘛的
    ANdroid Studio下载
    node.js网络(net)
    显示日期
    打包apk

  • 原文地址:https://www.cnblogs.com/uestc2007/p/14486468.html
Copyright © 2020-2023  润新知