Samouczek testowania Big Data: Co to jest, strategia, jak przetestować Hadoop

Testowanie dużych zbiorów danych

Testowanie dużych zbiorów danych to proces testowania aplikacji obsługującej duże zbiory danych w celu sprawdzenia, czy wszystkie funkcjonalności aplikacji obsługującej duże zbiory danych działają zgodnie z oczekiwaniami. Celem testowania dużych zbiorów danych jest upewnienie się, że system dużych zbiorów danych działa płynnie i bez błędów, przy jednoczesnym zachowaniu wydajności i bezpieczeństwa.

Big data to zbiór dużych zbiorów danych, których nie można przetwarzać przy użyciu tradycyjnych technik obliczeniowych. Testowanie przetwarzania tych zbiorów danych wymaga różnych narzędzi, technik i struktur. Big data dotyczy tworzenia, przechowywania, wyszukiwania i analizy danych, które są niezwykłe pod względem objętości, różnorodności i szybkości. Możesz dowiedzieć się więcej o Big Data, Hadoop i MapReduce tutaj

Jaka jest strategia testowania Big Data?

Testowanie aplikacji Big Data to bardziej weryfikacja przetwarzania danych, niż testowanie poszczególnych cech oprogramowania. Jeśli chodzi o testowanie Big Data, testy wydajnościowe i funkcjonalne są klucze.

W strategii testowania Big Data inżynierowie QA weryfikują pomyślne przetwarzanie terabajtów danych przy użyciu klastra towarowego i innych komponentów pomocniczych. Wymaga to wysokiego poziomu umiejętności testowania, ponieważ przetwarzanie jest bardzo szybkie. Przetwarzanie może być trzech typów

Strategia testowania dużych zbiorów danych

Oprócz tego jakość danych jest również ważnym czynnikiem w testowaniu Hadoop. Przed testowaniem aplikacji należy sprawdzić jakość danych i należy to traktować jako element testowania baz danych. Polega na sprawdzeniu różnych cech, takich jak zgodność, dokładność, powielanie, spójność, ważność, kompletność danych, itp. W dalszej części tego samouczka dotyczącego testowania Hadoopa dowiemy się, jak testować aplikacje Hadoop.

Jak testować aplikacje Hadoop

Poniższy rysunek przedstawia ogólny przegląd faz testowania aplikacji Big Data

Testuj aplikacje Hadoop

Testowanie Big Data lub testowanie Hadoop można ogólnie podzielić na trzy etapy

Krok 1: Walidacja etapowania danych

Pierwszy krok w tym samouczku dotyczący testowania dużych zbiorów danych nazywany jest etapem przed wprowadzeniem platformy Hadoop i obejmuje weryfikację procesu.

  • Dane z różnych źródeł, np RDBMS, blogi internetowe, media społecznościowe itp. należy sprawdzić, aby mieć pewność, że do systemu zostaną pobrane prawidłowe dane
  • Porównywanie danych źródłowych z danymi przesłanymi do systemu Hadoop, aby upewnić się, że są zgodne
  • Sprawdź, czy właściwe dane zostały wyodrębnione i załadowane do właściwej lokalizacji HDFS

Narzędzia takie jak Taland, Nazwa pliku, można wykorzystać do walidacji etapowej danych

Krok 2: Weryfikacja „MapReduce”.

Drugim krokiem jest walidacja „MapReduce”. Na tym etapie tester Big Data weryfikuje poprawność logiki biznesowej w każdym węźle, a następnie sprawdza ją po uruchomieniu na wielu węzłach, upewniając się, że

  • Proces Map Redukuj działa poprawnie
  • Na danych zaimplementowano reguły agregacji lub segregacji danych
  • Generowane są pary klucz-wartość
  • Walidacja danych po procesie Map-Reduce

Krok 3: Faza sprawdzania wyników

Ostatnim lub trzecim etapem testowania Hadoopa jest proces sprawdzania poprawności wyników. Wyjściowe pliki danych są generowane i gotowe do przeniesienia do EDW (Enterprise Data Warehouse) lub dowolnego innego systemu w zależności od wymagań.

Działania w trzecim etapie obejmują

  • Aby sprawdzić, czy reguły transformacji zostały prawidłowo zastosowane
  • Aby sprawdzić integralność danych i pomyślne załadowanie danych do systemu docelowego
  • Aby sprawdzić, czy nie ma uszkodzeń danych, porównując dane docelowe z danymi systemu plików HDFS

ArchiTesty techniczne

Hadoop przetwarza bardzo duże ilości danych i jest bardzo zasobochłonny. Dlatego testowanie architektoniczne jest kluczowe, aby zapewnić sukces Twojego projektu Big Data. Źle lub niewłaściwie zaprojektowany system może prowadzić do pogorszenia wydajności, a system może nie spełnić wymagań. Przynajmniej, Test wydajności i przełączania awaryjnego usługi powinny być wykonywane w środowisku Hadoop.

Test wydajności obejmuje testowanie czasu ukończenia zadania, wykorzystania pamięci, przepustowości danych i podobnych wskaźników systemowych. Celem usługi testowania trybu Failover jest sprawdzenie, czy przetwarzanie danych przebiega bezproblemowo w przypadku awarii węzłów danych

Test wydajności

Testowanie wydajnościowe Big Data obejmuje dwa główne działania

  • Pozyskiwanie danych i w całości: Na tym etapie tester Big Data sprawdza, w jaki sposób szybki system może wykorzystywać dane z różnych źródeł danych. Testowanie polega na identyfikacji innego komunikatu, który kolejka może przetworzyć w danym przedziale czasu. Obejmuje to również szybkość wstawiania danych do bazowego magazynu danych, na przykład szybkość wstawiania do Mongo i Cassandra baza danych.
  • Przetwarzanie danych: Polega na sprawdzeniu szybkości, z jaką wykonywane są zapytania lub zadania zmniejszania mapy. Obejmuje to także testowanie przetwarzania danych w izolacji, gdy bazowy magazyn danych jest wypełniany w zbiorach danych. Na przykład uruchomienie zadań Map Redukuj na serwerze bazowym HDFS
  • Wydajność podskładnika: Systemy te składają się z wielu komponentów i konieczne jest przetestowanie każdego z nich osobno. Na przykład szybkość indeksowania i wykorzystania wiadomości, zadania MapReduce, wydajność zapytań, wyszukiwania itp.
  • Podejście do testowania wydajności

    Testowanie wydajności aplikacji big data obejmuje testowanie ogromnych ilości ustrukturyzowanych i nieustrukturyzowanych danych i wymaga specjalnego podejścia do testowania, aby przetestować tak ogromne dane.

    Podejście do testowania wydajności

    Testowanie wydajności jest wykonywane w tej kolejności

    1. Proces rozpoczyna się od ustawienia klastra Big Data, który ma zostać przetestowany pod kątem wydajności
    2. Zidentyfikuj i zaprojektuj odpowiednie obciążenia
    3. Przygotuj indywidualnych klientów (Tworzymy niestandardowe skrypty)
    4. Wykonaj test i przeanalizuj wynik (jeśli cele nie zostaną osiągnięte, dostrój komponent i wykonaj ponownie)
    5. Optymalna konfiguracja

    Parametry do testowania wydajności

    Różne parametry, które należy zweryfikować w testach wydajności, to:

    • Przechowywanie danych: sposób przechowywania danych w różnych węzłach
    • Dzienniki zatwierdzeń: Jak duży może być dziennik zatwierdzeń
    • Współbieżność: ile wątków może wykonywać operacje zapisu i odczytu
    • Buforowanie: dostosuj ustawienia pamięci podręcznej „pamięć podręczna wierszy” i „pamięć podręczna kluczy”.
    • Limity czasu: wartości limitu czasu połączenia, limitu czasu zapytania itp.
    • Parametry JVM: rozmiar sterty, algorytmy zbierania danych GC itp.
    • Mapa zmniejsza wydajność: sortuje, łączy itp.
    • Kolejka wiadomości: szybkość wiadomości, rozmiar itp.

    Potrzeby środowiska testowego

    Środowisko testowe musi zależeć od typu testowanej aplikacji. W przypadku testowania oprogramowania Big Data środowisko testowe powinno obejmować

    • Powinien mieć wystarczająco dużo miejsca do przechowywania i przetwarzania dużej ilości danych
    • Powinien mieć klaster z rozproszonymi węzłami i danymi
    • Powinien mieć minimalne wykorzystanie procesora i pamięci, aby utrzymać wysoką wydajność w celu przetestowania wydajności Big Data

    Testowanie dużych zbiorów danych vs. Tradycyjne testowanie baz danych

    Właściwości Tradycyjne testowanie baz danych Testowanie dużych zbiorów danych
    Dane Tester pracuje z danymi strukturalnymi Tester działa zarówno z danymi ustrukturyzowanymi, jak i nieustrukturyzowanymi
    Podejście testowe Podejście do testowania jest dobrze zdefiniowane i sprawdzone w czasie Podejście testowe wymaga ukierunkowanych wysiłków badawczo-rozwojowych
    Strategia testowania Tester ma możliwość ręcznego wykonania strategii „Próbkowanie” lub strategii „Wyczerpującej weryfikacji” za pomocą narzędzia do automatyzacji Strategia „samplingu” w Big Data jest wyzwaniem
    Infrastruktura Nie wymaga specjalnego środowiska testowego, ponieważ rozmiar pliku jest ograniczony Wymaga specjalnego środowiska testowego ze względu na duży rozmiar danych i plików (HDFS)
    Narzędzia walidacji Tester posługuje się albo programem opartym na Excelu makra lub narzędzia do automatyzacji oparte na interfejsie użytkownika Brak zdefiniowanych narzędzi, zakres jest szeroki, od narzędzi programistycznych, takich jak MapReduce po HIVEQL
    Narzędzia testujące Narzędzia testowe można obsługiwać posiadając podstawową wiedzę operacyjną i po krótkim szkoleniu. Wymaga to określonego zestawu umiejętności i przeszkolenia, aby obsługiwać narzędzie testowe. Ponadto narzędzia są w początkowej fazie i z czasem mogą pojawić się nowe funkcje.

    Narzędzia stosowane w scenariuszach Big Data

    Big Data Cluster Narzędzia Big Data
    Brak SQL: CouchDB, Bazy danych MongoDB, Cassandra, Redis, ZooKeeper, HBase
    MapaZmniejsz: Hadoop, Ul, Świnia, Kaskadowanie, Oozie, Kafka, S4, MapR, Flume
    Przechowywanie: S3, HDFS (rozproszony system plików Hadoop)
    Serwery: Elastyczny, Heroku, Elastic, Google App Engine, EC2
    Przetwarzanie R, Yahoo! Rury, Mechanical Turk, BigSheets, Datameer

    Wyzwania w testowaniu Big Data

    • Automatyzacja

      Testy automatyczne w przypadku Big Data potrzebny jest ktoś z wiedzą techniczną. Ponadto zautomatyzowane narzędzia nie są przystosowane do obsługi nieoczekiwanych problemów pojawiających się podczas testowania

    • Wirtualizacja

      Jest to jeden z integralnych etapów testowania. Opóźnienie maszyny wirtualnej powoduje problemy z synchronizacją podczas testowania wydajności dużych zbiorów danych w czasie rzeczywistym. Zarządzanie obrazami w Big Data również jest kłopotliwe.

    • Duży zbiór danych
      • Trzeba zweryfikować więcej danych i zrobić to szybciej
      • Należy zautomatyzować wysiłek związany z testowaniem
      • Trzeba mieć możliwość testowania na różnych platformach

    Wyzwania związane z testowaniem wydajności

    • Zróżnicowany zestaw technologii: Każdy podkomponent należy do innej technologii i wymaga oddzielnego testowania
    • Niedostępność określonych narzędzi: Żadne pojedyncze narzędzie nie jest w stanie przeprowadzić kompleksowych testów. Na przykład, NoSQL mogą nie pasować do kolejek wiadomości
    • Skrypty testowe: Do projektowania scenariuszy testowych i przypadków testowych potrzebny jest wysoki poziom skryptów
    • Środowisko testowe: Wymaga specjalnego środowiska testowego ze względu na duży rozmiar danych
    • Rozwiązanie do monitorowania: Istnieją ograniczone rozwiązania, które mogą monitorować całe środowisko
    • Rozwiązanie diagnostyczne: wymagane jest opracowanie niestandardowego rozwiązania w celu zidentyfikowania obszarów wąskich gardeł wydajności

    Podsumowanie

    • W miarę jak inżynieria danych i analityka danych wkraczają na wyższy poziom, testowanie dużych zbiorów danych jest nieuniknione.
    • Przetwarzanie dużych zbiorów danych może odbywać się w trybie wsadowym, w czasie rzeczywistym lub interaktywnym
    • 3 etapy testowania aplikacji Big Data to walidacja etapowa danych, walidacja „MapReduce” i faza walidacji wyników
    • ArchiTestowanie technologii jest ważną fazą testowania Big Data, ponieważ źle zaprojektowany system może prowadzić do niespotykanych wcześniej błędów i pogorszenia wydajności
    • Testowanie wydajności Big Data obejmuje weryfikację przepustowości danych, przetwarzania danych i wydajności podzespołów
    • Testowanie dużych zbiorów danych bardzo różni się od tradycyjnego testowania danych pod względem danych, infrastruktury i narzędzi do walidacji
    • Wyzwania związane z testowaniem dużych zbiorów danych obejmują wirtualizację, automatyzację testów i radzenie sobie z dużymi zbiorami danych. Problemem jest także testowanie wydajności aplikacji Big Data.