Учебное пособие по тестированию больших данных: что такое, стратегия, как тестировать Hadoop
Тестирование больших данных
Тестирование больших данных — это процесс тестирования приложения больших данных, призванный убедиться в том, что все функции приложения больших данных работают должным образом. Цель тестирования больших данных — убедиться, что система больших данных работает бесперебойно и без ошибок, сохраняя при этом производительность и безопасность.
Большие данные — это совокупность больших наборов данных, которые невозможно обработать с помощью традиционных вычислительных методов. Тестирование Для обработки этих наборов данных используются различные инструменты, методы и платформы. Большие данные относятся к созданию, хранению, поиску и анализу данных, которые отличаются объемом, разнообразием и скоростью. Вы можете узнать больше о больших данных, Hadoop и MapReduce. здесь
Что такое стратегия тестирования больших данных?
Тестирование приложения Big Data — это скорее проверка его обработки данных, а не тестирование отдельных возможностей программного продукта. Когда дело доходит до тестирования больших данных, тестирование производительности и функциональности ключи.
В рамках стратегии тестирования больших данных инженеры по обеспечению качества проверяют успешную обработку терабайтов данных с использованием товарного кластера и других вспомогательных компонентов. Это требует высокого уровня навыков тестирования, поскольку обработка происходит очень быстро. Обработка может быть трех видов
Наряду с этим качество данных также является важным фактором тестирования Hadoop. Перед тестированием приложения необходимо проверить качество данных и это следует рассматривать как часть тестирования базы данных. Он включает в себя проверку различных характеристик, таких как соответствие, точность, дублирование, согласованность, достоверность, полнота данных, и т. д. Далее в этом руководстве по тестированию Hadoop мы научимся тестировать приложения Hadoop.
Как тестировать приложения Hadoop
На следующем рисунке представлен общий обзор этапов тестирования приложений для работы с большими данными.
Тестирование больших данных или тестирование Hadoop можно условно разделить на три этапа.
Шаг 1. Проверка промежуточного хранения данных
Первый шаг в этом руководстве по тестированию больших данных, называемый этапом до Hadoop, включает проверку процесса.
- Данные из различных источников, таких как RDBMS, блоги, социальные сети и т. д. должны быть проверены, чтобы убедиться, что в систему поступают правильные данные.
- Сравнение исходных данных с данными, переданными в систему Hadoop, чтобы убедиться, что они совпадают.
- Убедитесь, что правильные данные извлечены и загружены в правильное расположение HDFS.
Такие инструменты, как Talend, Датамер, может использоваться для проверки промежуточной проверки данных
Шаг 2. Проверка «MapReduce»
Второй шаг — проверка «MapReduce». На этом этапе тестер больших данных проверяет проверку бизнес-логики на каждом узле, а затем проверяет ее после запуска на нескольких узлах, гарантируя, что
- Процесс сокращения карты работает правильно
- К данным применяются правила агрегирования или разделения данных.
- Генерируются пары ключ-значение
- Проверка данных после процесса Map-Reduce
Шаг 3: Этап проверки выходных данных
Заключительный или третий этап тестирования Hadoop — это процесс проверки выходных данных. Файлы выходных данных генерируются и готовы к перемещению в EDW (хранилище корпоративных данных) или любую другую систему в зависимости от требований.
Мероприятия третьего этапа включают в себя
- Чтобы проверить правильность применения правил преобразования
- Для проверки целостности данных и успешной загрузки данных в целевую систему.
- Чтобы проверить отсутствие повреждения данных, сравнив целевые данные с данными файловой системы HDFS.
ArchiТестирование тектуры
Hadoop обрабатывает очень большие объемы данных и требует больших ресурсов. Следовательно, архитектурное тестирование имеет решающее значение для обеспечения успеха вашего проекта по работе с большими данными. Плохо или неправильно спроектированная система может привести к снижению производительности, и система может не соответствовать требованиям. По меньшей мере, Тест производительности и аварийного переключения услуги должны выполняться в среде Hadoop.
Тестирование производительности включает тестирование времени выполнения задания, использования памяти, пропускной способности данных и аналогичных системных показателей. Целью службы тестирования аварийного переключения является проверка того, что обработка данных происходит беспрепятственно в случае сбоя узлов данных.
Тестирование производительности
Тестирование производительности для больших данных включает в себя два основных действия.
- Прием данных и повсюду: на этом этапе тестер больших данных проверяет, как быстрая система может использовать данные из различных источников данных. Тестирование включает в себя идентификацию другого сообщения, которое очередь может обработать в заданный период времени. Он также включает в себя то, насколько быстро данные могут быть вставлены в базовое хранилище данных, например, скорость вставки в Mongo и Cassandra база данных.
Подход к тестированию производительности
Тестирование производительности приложений с большими данными включает в себя тестирование огромных объемов структурированных и неструктурированных данных, и для тестирования таких огромных данных требуется особый подход к тестированию.
Тестирование производительности выполняется в следующем порядке.
- Процесс начинается с настройки кластера больших данных, который необходимо протестировать на работоспособность.
- Определите и спроектируйте соответствующие рабочие нагрузки
- Подготовка индивидуальных клиентов (создаются пользовательские сценарии)
- Выполните тест и проанализируйте результат (если цели не достигнуты, настройте компонент и повторите выполнение)
- Оптимальная конфигурация
Параметры для тестирования производительности
Различные параметры, которые необходимо проверить для тестирования производительности:
- Хранение данных: как данные хранятся в разных узлах
- Журналы коммитов: насколько большой может расти журнал коммитов.
- Параллелизм: сколько потоков могут выполнять операции записи и чтения.
- Кэширование: настройте параметры кэша «кэш строк» и «кэш ключей».
- Тайм-ауты: значения тайм-аута соединения, тайм-аута запроса и т. д.
- Параметры JVM: размер кучи, алгоритмы сбора мусора и т. д.
- Карта снижает производительность: сортировка, объединение и т. д.
- Очередь сообщений: скорость, размер и т. д. сообщений.
Требования к тестовой среде
Тестовая среда должна зависеть от типа тестируемого приложения. Для тестирования программного обеспечения с большими данными тестовая среда должна включать в себя
- Он должен иметь достаточно места для хранения и обработки большого объема данных.
- Он должен иметь кластер с распределенными узлами и данными.
- Он должен иметь минимальную загрузку ЦП и памяти, чтобы поддерживать высокую производительность для тестирования производительности больших данных.
Тестирование больших данных против. Традиционное тестирование базы данных
НЕДВИЖИМОСТИ | Традиционное тестирование базы данных | Тестирование больших данных |
---|---|---|
Данные | Тестировщик работает со структурированными данными | Тестер работает как со структурированными, так и с неструктурированными данными. |
Подход к тестированию | Подход к тестированию четко определен и проверен временем. | Подход к тестированию требует целенаправленных усилий в области исследований и разработок. |
Стратегия тестирования | Тестер может выбрать стратегию «Выборки» вручную или стратегию «Исчерпывающей проверки» с помощью инструмента автоматизации. | Стратегия «выборки» в больших данных — сложная задача |
Инфраструктура | Не требуется специальная тестовая среда, поскольку размер файла ограничен. | Требуется специальная тестовая среда из-за большого размера данных и файлов (HDFS). |
Инструменты проверки | Тестер использует либо программу на базе Excel Макрос или инструменты автоматизации на основе пользовательского интерфейса | Нет определенных инструментов, диапазон обширен: от инструментов программирования, таких как MapReduce, до HIVEQL. |
Средства тестирования | Инструменты тестирования можно использовать при наличии базовых знаний в области эксплуатации и минимальной подготовки. | Для работы с инструментом тестирования требуется определенный набор навыков и подготовки. Кроме того, инструменты находятся на начальной стадии, и со временем могут появиться новые функции. |
Инструменты, используемые в сценариях больших данных
Big Data Cluster | Инструменты больших данных |
---|---|
НетSQL: | CouchDB, Базы данных MongoDB, Cassandra, Redis, ZooKeeper, HBase |
Уменьшение карты: | Hadoop, Hive, Pig, Cascading, Oozie, Kafka, S4, MapR, Flume |
Хранение: | S3, HDFS (распределенная файловая система Hadoop) |
Серверы: | Эластичный, Heroku, Elastic, Google App Engine, EC2 |
Обработка | Р, Yahoo! Трубы, Механическая турка, BigSheets, Datameer |
Проблемы тестирования больших данных
- Автоматизация
Тестирование автоматизации для больших данных требуется кто-то с техническими знаниями. Кроме того, автоматизированные инструменты не способны справиться с непредвиденными проблемами, возникающими во время тестирования.
- Виртуализация
Это один из неотъемлемых этапов тестирования. Задержка виртуальной машины создает проблемы с синхронизацией при тестировании производительности больших данных в реальном времени. Также сложно управлять изображениями в больших данных.
- Большой набор данных
- Необходимо проверить больше данных и сделать это быстрее
- Необходимо автоматизировать процесс тестирования
- Необходимо иметь возможность тестировать на разных платформах.
Проблемы тестирования производительности
- Разнообразный набор технологий: Каждый подкомпонент относится к разным технологиям и требует изолированного тестирования.
- Отсутствие конкретных инструментов.: Ни один инструмент не может выполнить сквозное тестирование. Например, NoSQL может не подходить для очередей сообщений
- Тестовые сценарии: Для разработки тестовых сценариев и тестовых примеров необходим высокий уровень написания сценариев.
- Тестовая среда: требуется специальная тестовая среда из-за большого размера данных.
- Решение для мониторинга: существуют ограниченные решения, которые могут контролировать всю среду.
- Диагностическое решение: необходимо разработать индивидуальное решение для выявления узких мест в производительности.
Резюме
- Поскольку разработка данных и анализ данных выходят на новый уровень, тестирование больших данных становится неизбежным.
- Обработка больших данных может быть пакетной, в реальном времени или интерактивной.
- 3 этапа тестирования приложений больших данных: проверка размещения данных, проверка «MapReduce» и фаза проверки выходных данных.
- ArchiТестирование архитектуры — важный этап тестирования больших данных, поскольку плохо спроектированная система может привести к беспрецедентным ошибкам и снижению производительности.
- Тестирование производительности для больших данных включает проверку пропускной способности данных, обработки данных и производительности подкомпонентов.
- Тестирование больших данных сильно отличается от традиционного тестирования данных с точки зрения данных, инфраструктуры и инструментов проверки.
- Проблемы тестирования больших данных включают виртуализацию, автоматизацию тестирования и работу с большими наборами данных. Тестирование производительности приложений больших данных также является проблемой.