Учебное пособие по тестированию больших данных: что такое, стратегия, как тестировать Hadoop

Тестирование больших данных

Тестирование больших данных — это процесс тестирования приложения больших данных, призванный убедиться в том, что все функции приложения больших данных работают должным образом. Цель тестирования больших данных — убедиться, что система больших данных работает бесперебойно и без ошибок, сохраняя при этом производительность и безопасность.

Большие данные — это совокупность больших наборов данных, которые невозможно обработать с помощью традиционных вычислительных методов. Тестирование Для обработки этих наборов данных используются различные инструменты, методы и платформы. Большие данные относятся к созданию, хранению, поиску и анализу данных, которые отличаются объемом, разнообразием и скоростью. Вы можете узнать больше о больших данных, Hadoop и MapReduce. здесь

Что такое стратегия тестирования больших данных?

Тестирование приложения Big Data — это скорее проверка его обработки данных, а не тестирование отдельных возможностей программного продукта. Когда дело доходит до тестирования больших данных, тестирование производительности и функциональности ключи.

В рамках стратегии тестирования больших данных инженеры по обеспечению качества проверяют успешную обработку терабайтов данных с использованием товарного кластера и других вспомогательных компонентов. Это требует высокого уровня навыков тестирования, поскольку обработка происходит очень быстро. Обработка может быть трех видов

Стратегия тестирования больших данных

Наряду с этим качество данных также является важным фактором тестирования Hadoop. Перед тестированием приложения необходимо проверить качество данных и это следует рассматривать как часть тестирования базы данных. Он включает в себя проверку различных характеристик, таких как соответствие, точность, дублирование, согласованность, достоверность, полнота данных, и т. д. Далее в этом руководстве по тестированию Hadoop мы научимся тестировать приложения Hadoop.

Как тестировать приложения Hadoop

Фоллоwing На рисунке представлен общий обзор этапов тестирования приложений больших данных.

Тестирование приложений Hadoop

Тестирование больших данных или тестирование Hadoop можно условно разделить на три этапа.

Шаг 1. Проверка промежуточного хранения данных

Первый шаг в этом руководстве по тестированию больших данных, называемый этапом до Hadoop, включает проверку процесса.

  • Данные из различных источников, таких как RDBMS, блоги, социальные сети и т. д. должны быть проверены, чтобы убедиться, что в систему поступают правильные данные.
  • Сравнение исходных данных с данными, переданными в систему Hadoop, чтобы убедиться, что они совпадают.
  • Убедитесь, что правильные данные извлечены и загружены в правильное расположение HDFS.

Такие инструменты, как Talend, Датамер, может использоваться для проверки промежуточной проверки данных

Шаг 2. Проверка «MapReduce»

Второй шаг — проверка «MapReduce». На этом этапе тестер больших данных проверяет проверку бизнес-логики на каждом узле, а затем проверяет ее после запуска на нескольких узлах, гарантируя, что

  • Процесс сокращения карты работает правильно
  • К данным применяются правила агрегирования или разделения данных.
  • Генерируются пары ключ-значение
  • Проверка данных после процесса Map-Reduce

Шаг 3: Этап проверки выходных данных

Заключительный или третий этап тестирования Hadoop — это процесс проверки выходных данных. Файлы выходных данных генерируются и готовы к перемещению в EDW (хранилище корпоративных данных) или любую другую систему в зависимости от требований.

Мероприятия третьего этапа включают в себя

  • Чтобы проверить правильность применения правил преобразования
  • Для проверки целостности данных и успешной загрузки данных в целевую систему.
  • Чтобы проверить отсутствие повреждения данных, сравнив целевые данные с данными файловой системы HDFS.

ArchiТестирование тектуры

Hadoop обрабатывает очень большие объемы данных и требует больших ресурсов. Следовательно, archiСтруктурное тестирование имеет решающее значение для обеспечения успеха вашего проекта по работе с большими данными. Плохо или неправильно спроектированная система может привести к снижению производительности, и система может не соответствовать требованиям. По меньшей мере, Тест производительности и аварийного переключения услуги должны выполняться в среде Hadoop.

Тестирование производительности включает тестирование времени выполнения задания, использования памяти, пропускной способности данных и аналогичных системных показателей. Целью службы тестирования аварийного переключения является проверка того, что обработка данных происходит беспрепятственно в случае сбоя узлов данных.

Тестирование производительности

Тестирование производительности для больших данных включает в себя два основных действия.

  • Прием данных и повсюду: на этом этапе тестер больших данных проверяет, как быстрая система может использовать данные из различных источников данных. Тестирование включает в себя идентификацию другого сообщения, которое очередь может обработать в заданный период времени. Он также включает в себя то, насколько быстро данные могут быть вставлены в базовое хранилище данных, например, скорость вставки в Mongo и Cassandra база данных.
  • Обработка данных: включает проверку скорости выполнения запросов или заданий сокращения карты. Оно также включает изолированное тестирование обработки данных, когда базовое хранилище данных заполняется наборами данных. Например, запуск заданий Map уменьшает на базовом HDFS
  • Производительность подкомпонента: Эти системы состоят из множества компонентов, и важно тестировать каждый из этих компонентов по отдельности. Например, насколько быстро сообщение индексируется и используется, задания MapReduce, производительность запросов, поиск и т. д.
  • Подход к тестированию производительности

    Тестирование производительности приложений с большими данными включает в себя тестирование огромных объемов структурированных и неструктурированных данных, и для тестирования таких огромных данных требуется особый подход к тестированию.

    Подход к тестированию производительности

    Тестирование производительности выполняется в следующем порядке.

    1. Процесс начинается с настройки кластера больших данных, который необходимо протестировать на работоспособность.
    2. Определите и спроектируйте соответствующие рабочие нагрузки
    3. Подготовка индивидуальных клиентов (создаются пользовательские сценарии)
    4. Выполните тест и проанализируйте результат (если цели не достигнуты, настройте компонент и повторите выполнение)
    5. Оптимальная конфигурация

    Параметры для тестирования производительности

    Различные параметры, которые необходимо проверить для тестирования производительности:

    • Хранение данных: как данные хранятся в разных узлах
    • Журналы коммитов: насколько большой может расти журнал коммитов.
    • Параллелизм: сколько потоков могут выполнять операции записи и чтения.
    • Кэширование: настройте параметры кэша «кэш строк» ​​и «кэш ключей».
    • Тайм-ауты: значения тайм-аута соединения, тайм-аута запроса и т. д.
    • Параметры JVM: размер кучи, алгоритмы сбора мусора и т. д.
    • Карта снижает производительность: сортировка, объединение и т. д.
    • Очередь сообщений: скорость, размер и т. д. сообщений.

    Требования к тестовой среде

    Тестовая среда должна зависеть от типа тестируемого приложения. Для тестирования программного обеспечения с большими данными тестовая среда должна включать в себя

    • Он должен иметь достаточно места для хранения и обработки большого объема данных.
    • Он должен иметь кластер с распределенными узлами и данными.
    • Он должен иметь минимальную загрузку ЦП и памяти, чтобы поддерживать высокую производительность для тестирования производительности больших данных.

    Тестирование больших данных против. Традиционное тестирование базы данных

    Объекты Традиционное тестирование базы данных Тестирование больших данных
    Данные Тестировщик работает со структурированными данными Тестер работает как со структурированными, так и с неструктурированными данными.
    Подход к тестированию Подход к тестированию четко определен и проверен временем. Подход к тестированию требует целенаправленных усилий в области исследований и разработок.
    Стратегия тестирования Тестер может выбрать стратегию «Выборки» вручную или стратегию «Исчерпывающей проверки» с помощью инструмента автоматизации. Стратегия «выборки» в больших данных — сложная задача
    Инфраструктура Не требуется специальная тестовая среда, поскольку размер файла ограничен. Требуется специальная тестовая среда из-за большого размера данных и файлов (HDFS).
    Инструменты проверки Тестер использует либо программу на базе Excel Макрос или инструменты автоматизации на основе пользовательского интерфейса Нет определенных инструментов, диапазон обширен: от инструментов программирования, таких как MapReduce, до HIVEQL.
    Средства тестирования Инструменты тестирования можно использовать при наличии базовых знаний в области эксплуатации и минимальной подготовки. Для работы с инструментом тестирования требуется определенный набор навыков и подготовки. Кроме того, инструменты находятся на начальной стадии, и со временем могут появиться новые функции.

    Инструменты, используемые в сценариях больших данных

    Кластер больших данных Инструменты больших данных
    НетSQL: CouchDB, Базы данных MongoDB, Cassandra, Redis, ZooKeeper, HBase
    Уменьшение карты: Hadoop, Hive, Pig, Cascading, Oozie, Kafka, S4, MapR, Flume
    Хранение: S3, HDFS (распределенная файловая система Hadoop)
    Серверы: Elastic, Heroku, Elastic, Google App Engine, EC2
    Обработка Р, Yahoo! Трубы, Механическая турка, BigSheets, Datameer

    Проблемы тестирования больших данных

    • автоматизация

      Тестирование автоматизации для больших данных требуется кто-то с техническими знаниями. Кроме того, автоматизированные инструменты не способны справиться с непредвиденными проблемами, возникающими во время тестирования.

    • Виртуализация

      Это один из неотъемлемых этапов тестирования. Задержка виртуальной машины создает проблемы с синхронизацией при тестировании производительности больших данных в реальном времени. Также сложно управлять изображениями в больших данных.

    • Большой набор данных
      • Необходимо проверить больше данных и сделать это быстрее
      • Необходимо автоматизировать процесс тестирования
      • Необходимо иметь возможность тестировать на разных платформах.

    Проблемы тестирования производительности

    • Разнообразный набор технологий: Каждый подкомпонент относится к разным технологиям и требует изолированного тестирования.
    • Отсутствие конкретных инструментов.: Ни один инструмент не может выполнить сквозное тестирование. Например, NoSQL может не подходить для очередей сообщений
    • Тестовые сценарии: Для разработки тестовых сценариев и тестовых примеров необходим высокий уровень написания сценариев.
    • Тестовая среда: требуется специальная тестовая среда из-за большого размера данных.
    • Решение для мониторинга: существуют ограниченные решения, которые могут контролировать всю среду.
    • Диагностическое решение: необходимо разработать индивидуальное решение для выявления узких мест в производительности.

    Выводы

    • Поскольку разработка данных и анализ данных выходят на новый уровень, тестирование больших данных становится неизбежным.
    • Обработка больших данных может быть пакетной, в реальном времени или интерактивной.
    • 3 этапа тестирования приложений больших данных: проверка размещения данных, проверка «MapReduce» и фаза проверки выходных данных.
    • ArchiТестирование архитектуры — важный этап тестирования больших данных, поскольку плохо спроектированная система может привести к беспрецедентным ошибкам и снижению производительности.
    • Тестирование производительности для больших данных включает проверку пропускной способности данных, обработки данных и производительности подкомпонентов.
    • Тестирование больших данных сильно отличается от традиционного тестирования данных с точки зрения данных, инфраструктуры и инструментов проверки.
    • Проблемы тестирования больших данных включают виртуализацию, автоматизацию тестирования и работу с большими наборами данных. Тестирование производительности приложений больших данных также является проблемой.