Урок за тестване на големи данни: какво е, стратегия, как да тествате Hadoop
Тестване на големи данни
Тестване на големи данни е процес на тестване на приложение за големи данни, за да се гарантира, че всички функции на приложение за големи данни работят според очакванията. Целта на тестването на големи данни е да се гарантира, че системата за големи данни работи гладко и без грешки, като същевременно поддържа производителността и сигурността.
Големите данни са колекция от големи набори от данни, които не могат да бъдат обработени с помощта на традиционни изчислителни техники. Тестване от тези набори от данни включва различни инструменти, техники и рамки за обработка. Големите данни са свързани със създаването, съхранението, извличането и анализа на данни, които са забележителни по отношение на обем, разнообразие и скорост. Можете да научите повече за Big Data, Hadoop и MapReduce тук
Какво представлява стратегията за тестване на големи данни?
Тестването на приложението Big Data е по-скоро проверка на обработката на данните, отколкото тестване на отделните характеристики на софтуерния продукт. Когато става въпрос за тестване на големи данни, производителност и функционално тестване са ключовете.
В стратегията за тестване на големи данни, QA инженерите проверяват успешната обработка на терабайти данни, използвайки стоков клъстер и други поддържащи компоненти. Това изисква високо ниво на умения за тестване, тъй като обработката е много бърза. Обработката може да бъде три вида
Наред с това качеството на данните също е важен фактор при тестването на Hadoop. Преди да тествате приложението, е необходимо да проверите качеството на данните и трябва да се разглежда като част от тестването на базата данни. Това включва проверка на различни характеристики като съответствие, точност, дублиране, последователност, валидност, пълнота на данните, и т.н. След това в този урок за тестване на Hadoop ще научим как да тестваме приложения на Hadoop.
Как да тествате Hadoop приложения
Следващата фигура дава преглед на високо ниво на фазите в Тестване на приложения с големи данни
Тестването на големи данни или Hadoop тестването може да се раздели най-общо на три стъпки
Стъпка 1: Поетапно валидиране на данни
Първата стъпка в този урок за тестване на големи данни се нарича етап преди Hadoop, включва валидиране на процеса.
- Данни от различни източници като RDBMS, уеблогове, социални медии и т.н. трябва да бъдат валидирани, за да се гарантира, че правилните данни са изтеглени в системата
- Сравняване на изходните данни с данните, въведени в системата Hadoop, за да се уверите, че съвпадат
- Уверете се, че правилните данни са извлечени и заредени в правилното местоположение на HDFS
Инструменти като Таленд, Datameer, може да се използва за валидиране на етапи на данни
Стъпка 2: Проверка на „MapReduce“.
Втората стъпка е валидиране на „MapReduce“. На този етап тестерът за големи данни проверява валидирането на бизнес логиката на всеки възел и след това ги валидира, след като работи срещу множество възли, като гарантира, че
- Процесът на Map Reduce работи правилно
- Върху данните се прилагат правила за агрегиране или разделяне на данни
- Генерират се двойки ключ стойност
- Валидиране на данните след процеса Map-Reduce
Стъпка 3: Фаза на валидиране на изхода
Последният или трети етап от тестването на Hadoop е процесът на валидиране на изхода. Файловете с изходни данни се генерират и са готови за преместване в EDW (Enterprise Data Warehouse) или всяка друга система въз основа на изискването.
Дейностите в третия етап включват
- За да проверите дали правилата за трансформация са приложени правилно
- За проверка на целостта на данните и успешното зареждане на данни в целевата система
- За да проверите дали няма повредени данни чрез сравняване на целевите данни с данните на HDFS файловата система
ArchiТестване на текстура
Hadoop обработва много големи обеми данни и изисква много ресурси. Следователно, архитектурното тестване е от решаващо значение за гарантиране на успеха на вашия проект за големи данни. Лошо или неправилно проектирана система може да доведе до влошаване на производителността и системата може да не успее да изпълни изискването. поне, Тест за производителност и отказ услугите трябва да се извършват в среда на Hadoop.
Тестване на производителността включва тестване на времето за завършване на заданието, използването на паметта, пропускателната способност на данните и подобни системни показатели. Докато мотивът на Failover test service е да се провери дали обработката на данни се извършва безпроблемно в случай на повреда на възли за данни
Тестване на производителността
Тестването на ефективността за големи данни включва две основни действия
- Поглъщане на данни и Throughout: В този етап тестерът за големи данни проверява как бързата система може да консумира данни от различни източници на данни. Тестването включва идентифициране на различно съобщение, което опашката може да обработи в даден период от време. Той също така включва колко бързо данните могат да бъдат вмъкнати в основното хранилище на данни, например скорост на вмъкване в Mongo и Cassandra база данни.
Подход за тестване на ефективността
Тестването на производителността за приложение с големи данни включва тестване на огромни обеми структурирани и неструктурирани данни и изисква специфичен подход за тестване за тестване на такива масивни данни.
Тестването на производителността се изпълнява в този ред
- Процесът започва с настройката на клъстера с големи данни, който трябва да бъде тестван за производителност
- Идентифицирайте и проектирайте съответните работни натоварвания
- Подгответе индивидуални клиенти (създават се персонализирани скриптове)
- Изпълнете теста и анализирайте резултата (Ако целите не са постигнати, настройте компонента и го изпълнете отново)
- Оптимална конфигурация
Параметри за тестване на производителността
Има различни параметри, които трябва да бъдат проверени за тестване на производителността
- Съхранение на данни: Как се съхраняват данните в различни възли
- Регистрации на ангажименти: Колко голям е позволено да нараства регистрационният файл на ангажименти
- Паралелност: Колко нишки могат да изпълняват операция за запис и четене
- Кеширане: Настройте настройката на кеша „кеш на редове“ и „кеш на ключове“.
- Време за изчакване: Стойности за изчакване на връзката, изчакване на заявка и т.н.
- Параметри на JVM: размер на купчина, алгоритми за събиране на GC и др.
- Карта намалява производителността: Сортиране, сливане и т.н.
- Опашка от съобщения: Скорост на съобщенията, размер и т.н.
Нужди от тестова среда
Тестовата среда трябва да зависи от типа на приложението, което тествате. За тестване на софтуер за големи данни, тестовата среда трябва да включва
- Трябва да има достатъчно място за съхранение и да обработва голямо количество данни
- Трябва да има клъстер с разпределени възли и данни
- Трябва да има минимално използване на процесора и паметта, за да поддържа висока производителност, за да тества производителността на Big Data
Тестване на големи данни Vs. Тестване на традиционна база данни
Имоти | Традиционно тестване на бази данни | Тестване на големи данни |
---|---|---|
Дата | Тестер работи със структурирани данни | Тестерът работи както със структурирани, така и с неструктурирани данни |
Подход за тестване | Подходът за тестване е добре дефиниран и изпитан във времето | Подходът за тестване изисква целенасочени усилия за научноизследователска и развойна дейност |
Стратегия за тестване | Тестерът има опция за стратегия „Вземане на проби“, изпълнявана ръчно или стратегия „Изчерпателна проверка“ от инструмента за автоматизация | Стратегията за вземане на проби в Big data е предизвикателство |
Инфраструктура | Не изисква специална тестова среда, тъй като размерът на файла е ограничен | Изисква специална тестова среда поради големия размер на данните и файловете (HDFS) |
Инструменти за валидиране | Тестерът използва или базиран на Excel макроси или базирани на потребителски интерфейс инструменти за автоматизация | Няма дефинирани инструменти, диапазонът е широк от инструменти за програмиране като MapReduce до HIVEQL |
Инструменти за тестване | Инструментите за тестване могат да се използват с основни оперативни познания и по-малко обучение. | Изисква се специфичен набор от умения и обучение за работа с инструмент за тестване. Освен това инструментите са в начален етап и с течение на времето може да се появят нови функции. |
Инструменти, използвани в сценарии за големи данни
Голямо количество от данни Cluster | Инструменти за големи данни |
---|---|
NoSQL: | CouchDB, Бази данни MongoDB, Cassandra, Redis, ZooKeeper, HBase |
MapReduce: | Hadoop, Hive, Pig, Cascading, Oozie, Kafka, S4, MapR, Flume |
Съхранение: | S3, HDFS (разпределена файлова система Hadoop) |
Сървъри: | Еластична, Heroku, Elastic, Google App Engine, EC2 |
Обработване | R, Yahoo! Тръби, Mechanical Turk, BigSheets, Datameer |
Предизвикателства при тестването на големи данни
- Автоматизация
Тестване на автоматизацията за Големи данни изисква някой с технически опит. Освен това автоматизираните инструменти не са оборудвани за справяне с неочаквани проблеми, които възникват по време на тестване
- виртуализация
Това е една от неразделните фази на тестването. Латентността на виртуалната машина създава проблеми с времето при тестване на производителността на големи данни в реално време. Също така управлението на изображения в Big data е караница.
- Голям набор от данни
- Трябва да проверите повече данни и трябва да го направите по-бързо
- Необходимо е автоматизиране на усилията за тестване
- Трябва да можете да тествате на различни платформи
Предизвикателства при тестване на производителността
- Разнообразен набор от технологии: Всеки подкомпонент принадлежи към различна технология и изисква тестване в изолация
- Липса на специфични инструменти: Нито един инструмент не може да извърши тестването от край до край. например, NoSQL може да не е подходящо за опашки със съобщения
- Тестови скриптове: Необходима е висока степен на скриптове за проектиране на тестови сценарии и тестови случаи
- Тестова среда: Нуждае се от специална тестова среда поради големия размер на данните
- Решение за мониторинг: Съществуват ограничени решения, които могат да наблюдават цялата среда
- Диагностично решение: необходимо е да се разработи персонализирано решение, за да се разбият областите с тесни места в производителността
Oбобщение
- Тъй като инженерството на данни и анализите на данни преминават към следващо ниво, тестването на големи данни е неизбежно.
- Обработката на големи данни може да бъде групова, в реално време или интерактивна
- 3 етапа на тестване на приложения с големи данни са валидиране на етапа на данни, валидиране „MapReduce“ и фаза на валидиране на изхода
- Architecture Тестването е важната фаза от тестването на големи данни, тъй като лошо проектираната система може да доведе до безпрецедентни грешки и влошаване на производителността
- Тестването на производителността за големи данни включва проверка на пропускателната способност на данните, обработката на данни и производителността на подкомпонентите
- Тестването на големи данни е много различно от традиционното тестване на данни по отношение на данни, инфраструктура и инструменти за валидиране
- Предизвикателствата при тестването на големи данни включват виртуализация, автоматизация на тестовете и работа с голям набор от данни. Тестването на производителността на приложения с големи данни също е проблем.