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

Содержание:

Anonim

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

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

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

В этом руководстве по тестированию больших данных вы узнаете:

  • Что такое стратегия тестирования больших данных?
  • Как тестировать приложения Hadoop
  • Тестирование архитектуры
  • Тестирование производительности
  • Подход к тестированию производительности
  • Параметры для тестирования производительности
  • Требования к тестовой среде
  • Тестирование больших данных Vs. Традиционное тестирование базы данных
  • Инструменты, используемые в сценариях больших данных
  • Проблемы тестирования больших данных

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

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

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

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

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

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

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

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

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

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

Такие инструменты, как Talend , Datameer, могут использоваться для проверки данных.

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

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

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

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

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

Мероприятия на третьем этапе включают:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Характеристики

Традиционное тестирование базы данных

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

Данные

  • Тестер работы со структурированными данными
  • Тестер работает как со структурированными, так и с неструктурированными данными.

Подход к тестированию

  • Подход к тестированию четко определен и проверен временем
  • Подход к тестированию требует целенаправленных исследований и разработок.

Стратегия тестирования

  • Тестер может выбрать стратегию «Выборка» вручную или стратегию «Исчерпывающая проверка» с помощью инструмента автоматизации.
  • Стратегия «выборки» в больших данных - вызов

Инфраструктура

  • Не требует специальной тестовой среды, так как размер файла ограничен.
  • Требуется специальная тестовая среда из-за большого размера данных и файлов (HDFS)

Инструменты проверки

Тестер использует либо макросы на основе Excel, либо инструменты автоматизации на основе пользовательского интерфейса.

Нет определенных инструментов, диапазон обширен от инструментов программирования, таких как MapReduce, до HIVEQL.

Инструменты тестирования

Инструменты тестирования можно использовать с базовыми знаниями и меньшим обучением.

Для работы с инструментом тестирования требуется определенный набор навыков и обучения. Кроме того, инструменты находятся на начальной стадии, и со временем в них могут появиться новые функции.

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

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

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

NoSQL:

  • 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

Обработка

  • R, Yahoo! Трубы, Механический Турок, BigSheets, Datameer

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

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

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

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

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

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

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

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

Резюме

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