Урок за тестване на големи данни: Какво е, стратегия, как да тествате Hadoop

Съдържание:

Anonim

Тестване на големи данни

Тестването на големи данни е процес на тестване на приложение за големи данни, за да се гарантира, че всички функционалности на приложението за големи данни работят както се очаква. Целта на тестването на големи данни е да се увери, че системата за големи данни работи гладко и без грешки, като същевременно запазва производителността и сигурността.

Големите данни са колекция от големи масиви от данни, които не могат да бъдат обработени с помощта на традиционни изчислителни техники. Тестването на тези набори от данни включва различни инструменти, техники и рамки за обработка. Големите данни се отнасят до създаване, съхранение, извличане и анализ на данни, което е забележително по отношение на обем, разнообразие и скорост. Можете да научите повече за Big Data, Hadoop и MapReduce тук

В този урок за тестване на големи данни ще научите -

  • Какво представлява стратегията за тестване на големи данни?
  • Как да тестваме приложенията на Hadoop
  • Архитектурно тестване
  • Тестване на производителността
  • Подход за тестване на ефективността
  • Параметри за тестване на производителността
  • Нужда от тестова среда
  • Тестване на големи данни Vs. Традиционно тестване на база данни
  • Инструменти, използвани в сценарии за големи данни
  • Предизвикателства при тестването на големи данни

Какво представлява стратегията за тестване на големи данни?

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

В стратегията за тестване на големи данни, QA инженерите проверяват успешната обработка на терабайта данни, използвайки стоков клъстер и други поддържащи компоненти. Изисква високо ниво на умения за тестване, тъй като обработката е много бърза. Обработката може да бъде от три вида

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

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

Следващата фигура дава преглед на високо ниво на фазите при тестване на приложения за големи данни

Тестването на големи данни или Hadoop тестването може да бъде разделено на три стъпки

Стъпка 1: Проверка на етапа на данни

Първата стъпка в този урок за тестване на големи данни е посочен като етап преди Hadoop включва валидиране на процеса.

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

Инструменти като Talend , Datameer, могат да се използват за валидиране на етапиране на данни

Стъпка 2: "MapReduce" Проверка

Втората стъпка е проверка на "MapReduce". На този етап тестерът за големи данни проверява валидирането на бизнес логиката на всеки възел и след това ги проверява след стартиране срещу множество възли, като гарантира, че

  • Процесът Map Reduce работи правилно
  • Правилата за агрегиране или разделяне на данни се прилагат върху данните
  • Генерират се двойки ключови стойности
  • Проверка на данните след процеса Map-Reduce

Стъпка 3: Фаза за проверка на изхода

Последният или третият етап от тестването на Hadoop е процесът на валидиране на изхода. Изходните файлове с данни се генерират и са готови за преместване в EDW (Enterprise Data Warehouse) или друга система, базирана на изискването.

Дейностите в третия етап включват

  • За да проверите правилата за трансформация се прилагат правилно
  • За да проверите целостта на данните и успешното зареждане на данни в целевата система
  • За да проверите дали няма повреда на данните, като сравните целевите данни с данните от файловата система HDFS

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

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

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

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

Тестването на ефективността за големи данни включва две основни действия

  • Поглъщане на данни и през цялото време : На този етап тестерът за големи данни проверява как бързата система може да консумира данни от различни източници на данни. Тестването включва идентифициране на различно съобщение, което опашката може да обработи в даден период от време. Той също така включва колко бързо могат да се вмъкнат данни в основното хранилище на данни, например скорост на вмъкване в база данни на Монго и Касандра.
  • Обработка на данни : Тя включва проверка на скоростта, с която се изпълняват заявките или задачите за намаляване на задачите. Той също така включва тестване на обработката на данни изолирано, когато основното хранилище на данни се попълва в наборите от данни. Например, стартиране на Map Reduce задания в основния HDFS
  • Ефективност на подкомпонентите : Тези системи се състоят от множество компоненти и е от съществено значение да се тестват всеки от тези компоненти изолирано. Например колко бързо се индексира и консумира съобщението, задания MapReduce, производителност на заявки, търсене и т.н.

Подход за тестване на ефективността

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

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

  1. Процесът започва с настройката на клъстера за големи данни, който трябва да бъде тестван за ефективност
  2. Идентифицирайте и проектирайте съответните натоварвания
  3. Подгответе индивидуални клиенти (създават се персонализирани скриптове)
  4. Изпълнете теста и анализирайте резултата (Ако целите не са изпълнени, настройте компонента и изпълнете отново)
  5. Оптимална конфигурация

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

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

  • Съхранение на данни: Как се съхраняват данните в различни възли
  • Дневници на фиксиране: Колко голям е разрешен дневникът на фиксиране да расте
  • Паралелност: Колко нишки могат да изпълняват операция за запис и четене
  • Кеширане: Настройте настройката на кеша „кеш ред“ и „кеш ключ“.
  • Време на изчакване: Стойности за изчакване на връзката, изчакване на заявката и др.
  • Параметри на JVM: Размер на купчината, алгоритми за събиране на GC и др.
  • Картата намалява производителността: Сортира, обединява и т.н.
  • Опашка за съобщения: Скорост, размер и т.н.

Нужда от тестова среда

Тестовата среда трябва да зависи от типа приложение, което тествате. За тестване на софтуер за големи данни тестовата среда трябва да обхваща

  • Той трябва да има достатъчно място за съхранение и обработка на голямо количество данни
  • Той трябва да има клъстер с разпределени възли и данни
  • Той трябва да има минимално използване на процесора и паметта, за да поддържа производителността висока, за да тества производителността на големите данни

Тестване на големи данни Vs. Традиционно тестване на база данни

Имоти

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

Тестване на големи данни

Данни

  • Тестер работа със структурирани данни
  • Тестерът работи както със структурирани, така и с неструктурирани данни

Подход за тестване

  • Подходът за тестване е добре дефиниран и изпитан във времето
  • Подходът за тестване изисква фокусирани усилия за научноизследователска и развойна дейност

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

  • Тестерът има опция за стратегия "Вземане на проби", която се прави ръчно, или стратегия "Изчерпателна проверка" от инструмента за автоматизация
  • Стратегията за "вземане на проби" в Големите данни е предизвикателство

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

  • Не изисква специална тестова среда, тъй като размерът на файла е ограничен
  • Изисква специална тестова среда поради големия размер на данните и файловете (HDFS)

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

Tester използва или базирани на Excel макроси, или инструменти за автоматизация, базирани на потребителски интерфейс

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

Инструменти за тестване

Инструментите за тестване могат да се използват с основни оперативни познания и по-малко обучение.

Той изисква специфичен набор от умения и обучение за работа с инструмент за тестване. Също така инструментите са в новозараждащ се етап и с течение на времето той може да излезе с нови функции.

Инструменти, използвани в сценарии за големи данни

Клъстер за големи данни

Инструменти за големи данни

NoSQL:

  • CouchDB, Бази данни MongoDB, Cassandra, Redis, ZooKeeper, HBase

MapReduce:

  • 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"
    • Фаза за валидиране на изхода
  • Архитектурното тестване е важната фаза на тестването на големи данни, тъй като лошо проектираната система може да доведе до безпрецедентни грешки и влошаване на производителността
  • Тестването на ефективността за големи данни включва проверка
    • Пропускателна способност за данни
    • Обработка на данни
    • Изпълнение на подкомпонентите
  • Тестването на големи данни се различава много от традиционното тестване на данни по отношение на данни, инфраструктура и инструменти за проверка
  • Предизвикателствата за тестване на големи данни включват виртуализация, автоматизация на тестове и работа с голям набор от данни. Тестът за ефективността на приложенията за големи данни също е проблем.