大数据测试教程:什么是 Hadoop、策略、如何测试

大数据测试

大数据测试 是大数据应用程序的测试过程,以确保大数据应用程序的所有功能均按预期运行。大数据测试的目标是确保大数据系统在保持性能和安全性的同时顺利运行且无错误。

大数据是无法使用传统计算技术处理的大型数据集的集合。 测试 这些数据集的处理需要各种工具、技术和框架。大数据涉及数据的创建、存储、检索和分析,其数量、种类和速度都非常惊人。您可以了解有关大数据、Hadoop 和 MapReduce 的更多信息 点击这里

什么是大数据测试策略?

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

在大数据测试策略中,QA 工程师使用商品集群和其他支持组件验证 TB 级数据的成功处理。由于处理速度非常快,因此需要高水平的测试技能。处理可能分为三种类型

大数据测试策略

除此之外,数据质量也是 Hadoop 测试的一个重要因素。在测试应用程序之前,有必要检查数据质量,并将其视为数据库测试的一部分。 它涉及检查各种特性,如一致性、准确性、重复性、一致性、有效性、数据完整性、 等等。接下来在本 Hadoop 测试教程中,我们将学习如何测试 Hadoop 应用程序。

如何测试 Hadoop 应用程序

下图概述了测试大数据应用程序的各个阶段

测试 Hadoop 应用程序

大数据测试或 Hadoop 测试大致可分为三个步骤

步骤 1:数据阶段验证

本大数据测试教程的第一步称为 Hadoop 前阶段,涉及流程验证。

  • 来自各种来源的数据,例如 RDBMS、网络日志、社交媒体等都应进行验证,以确保将正确的数据输入系统
  • 将源数据与推送到 Hadoop 系统的数据进行比较,以确保它们匹配
  • 验证是否已提取正确的数据并将其加载到正确的 HDFS 位置

像工具一样 拓蓝, Datameer, 可用于数据暂存验证

第 2 步:“MapReduce”验证

第二步是“MapReduce”的验证。在这个阶段,大数据测试人员会在每个节点上验证业务逻辑,然后在多个节点上运行后进行验证,确保

  • Map Reduce 过程正常运行
  • 对数据实施数据聚合或隔离规则
  • 生成键值对
  • Map-Reduce 过程后验证数据

步骤 3:输出验证阶段

Hadoop 测试的最后或第三阶段是输出验证过程。输出数据文件已生成并准备根据要求移动到 EDW(企业数据仓库)或任何其他系统。

第三阶段的活动包括

  • 检查转换规则是否正确应用
  • 检查数据完整性以及数据是否成功加载到目标系统
  • 通过将目标数据与 HDFS 文件系统数据进行比较来检查是否存在数据损坏

Archi结构测试

Hadoop 处理大量数据,并且资源密集度很高。因此,架构测试对于确保大数据项目的成功至关重要。设计不当或不恰当的系统可能会导致性能下降,并且系统可能无法满足要求。至少, 性能和故障转移测试 服务应该在 Hadoop 环境中完成。

性能测试 包括测试作业完成时间、内存利用率、数据吞吐量和类似的系统指标。而故障转移测试服务的目的是验证在数据节点发生故障的情况下数据处理是否无缝进行

性能测试

大数据性能测试包括两个主要行动

  • 数据采集​​和整个:在此阶段,大数据测试人员验证快速系统如何使用来自各种数据源的数据。测试涉及识别队列可以在给定时间范围内处理的不同消息。它还包括将数据插入底层数据存储的速度,例如插入 MongoDB 的速度和 Cassandra 数据库.
  • 数据处理:它涉及验证查询或 Map Reduce 作业的执行速度。它还包括在数据集中填充底层数据存储时单独测试数据处理。例如,在底层上运行 Map Reduce 作业 高密度文件系统
  • 子组件性能:这些系统由多个组件组成,因此必须单独测试每个组件。例如,索引和使用消息的速度、MapReduce 作业、查询性能、搜索等。
  • 性能测试方法

    大数据应用的性能测试涉及大量结构化和非结构化数据的测试,需要特定的测试方法来测试如此海量的数据。

    性能测试方法

    性能测试按此顺序执行

    1. 该过程从要进行性能测试的大数据集群的设置开始
    2. 识别并设计相应的工作负载
    3. 准备个人客户端(创建自定义脚本)
    4. 执行测试并分析结果(如果未达到目标,则调整组件并重新执行)
    5. 最佳配置

    性能测试参数

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

    • 数据存储:数据如何存储在不同的节点
    • 提交日志:提交日志允许增长到多大
    • 并发性:有多少个线程可以执行写入和读取操作
    • 缓存:调整缓存设置“行缓存”和“键缓存”。
    • 超时:连接超时、查询超时等的值。
    • JVM参数:堆大小、GC收集算法等。
    • Map Reduce 性能:排序、合并等。
    • 消息队列:消息速率、大小等。

    测试环境需求

    测试环境需要取决于您正在测试的应用程序类型。对于大数据软件测试,测试环境应该包括

    • 它应该有足够的空间来存储和处理大量数据
    • 它应该有一个具有分布式节点和数据的集群
    • 它应该具有最低的 CPU 和内存利用率以保持高性能来测试大数据性能

    大数据测试与传统数据库测试

    查看房源 传统数据库测试 大数据测试
    时间 测试人员使用结构化数据 测试器可处理结构化数据和非结构化数据
    测试方法 测试方法定义明确且经过时间检验 测试方法需要集中精力进行研发
    测试策略 测试人员可以选择手动执行“采样”策略或通过自动化工具执行“详尽验证”策略 大数据中的“抽样”策略是一个挑战
    基础设施 由于文件大小有限,因此不需要特殊的测试环境 由于数据量和文件量较大,需要特殊的测试环境(HDFS)
    验证工具 测试人员可以使用基于 Excel 的 或基于 UI 的自动化工具 没有定义的工具,范围很广,从 MapReduce 到 HIVEQL 等编程工具
    测试工具 只需具备基本的操作知识和较少的培训即可使用测试工具。 操作测试工具需要一套特定的技能和培训。此外,这些工具还处于起步阶段,随着时间的推移,可能会出现新功能。

    大数据场景使用的工具

    大数据 Cluster 大数据工具
    NoSQL: CouchDB、数据库 MongoDB, Cassandra、Redis、ZooKeeper、HBase
    MapReduce: Hadoop、Hive、Pig、Cascading、Oozie、Kafka、S4、MapR、Flume
    存储: S3、HDFS(Hadoop分布式文件系统)
    服务器: 弹性 Heroku、弹性、Google App Engine、EC2
    的解决方案 R、Yahoo! Pipes、Mechanical Turk、BigSheets、Datameer

    大数据测试面临的挑战

    • 省时提效

      自动化测试 大数据需要具备技术专长的人员。此外,自动化工具无法处理测试过程中出现的意外问题

    • 虚拟化

      这是测试不可或缺的阶段之一。虚拟机延迟会在实时大数据性能测试中造成时间问题。此外,管理大数据中的图像也很麻烦。

    • 大数据集
      • 需要验证更多数据,并且需要更快地完成
      • 需要自动化测试工作
      • 需要能够跨不同平台进行测试

    性能测试挑战

    • 多种技术:每个子组件属于不同的技术,需要单独测试
    • 特定工具不可用:没有单一工具可以执行端到端测试。例如, NoSQL的 可能不适合消息队列
    • 测试脚本:需要大量脚本来设计测试场景和测试用例
    • 测试环境:由于数据量较大,需要特殊的测试环境
    • 监控解决方案:目前能够监控整个环境的解决方案有限
    • 诊断解决方案:需要开发定制解决方案来深入挖掘性能瓶颈区域

    结语

    • 随着数据工程和数据分析发展到新的水平,大数据测试是不可避免的。
    • 大数据处理可以是批处理、实时或交互式的
    • 测试大数据应用程序的 3 个阶段是数据阶段验证、“MapReduce”验证和输出验证阶段
    • Archi结构测试是大数据测试的重要阶段,因为设计不良的系统可能会导致前所未有的错误和性能下降
    • 大数据的性能测试包括验证数据吞吐量、数据处理和子组件性能
    • 大数据测试在数据、基础设施和验证工具方面与传统数据测试有很大不同
    • 大数据测试的挑战包括虚拟化、测试自动化和处理大数据集。大数据应用程序的性能测试也是一个问题。