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

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

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

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

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

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

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

Стратегия за тестване на големи данни

Наред с това качеството на данните също е важен фактор при тестването на Hadoop. Преди да тествате приложението, е необходимо да проверите качеството на данните и трябва да се разглежда като част от тестването на базата данни. Това включва проверка на различни характеристики като съответствие, точност, дублиране, последователност, валидност, пълнота на данните, и т.н. След това в този урок за тестване на 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 база данни.
  • Обработка на данни: Включва проверка на скоростта, с която се изпълняват заявките или задачите за намаляване на картата. Той също така включва тестване на обработката на данни в изолация, когато основното хранилище на данни е попълнено в рамките на наборите от данни. Например стартиране на задания за намаляване на картата върху основния HDFS
  • Ефективност на подкомпонента: Тези системи са съставени от множество компоненти и е от съществено значение всеки от тези компоненти да се тества изолирано. Например колко бързо се индексира и използва съобщението, задания на MapReduce, производителност на заявки, търсене и т.н.
  • Подход за тестване на ефективността

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

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

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

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

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

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

    • Съхранение на данни: Как се съхраняват данните в различни възли
    • Регистрации на ангажименти: Колко голям е позволено да нараства регистрационният файл на ангажименти
    • Паралелност: Колко нишки могат да изпълняват операция за запис и четене
    • Кеширане: Настройте настройката на кеша „кеш на редове“ и „кеш на ключове“.
    • Време за изчакване: Стойности за изчакване на връзката, изчакване на заявка и т.н.
    • Параметри на 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 Тестването е важната фаза от тестването на големи данни, тъй като лошо проектираната система може да доведе до безпрецедентни грешки и влошаване на производителността
    • Тестването на производителността за големи данни включва проверка на пропускателната способност на данните, обработката на данни и производителността на подкомпонентите
    • Тестването на големи данни е много различно от традиционното тестване на данни по отношение на данни, инфраструктура и инструменти за валидиране
    • Предизвикателствата при тестването на големи данни включват виртуализация, автоматизация на тестовете и работа с голям набор от данни. Тестването на производителността на приложения с големи данни също е проблем.