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

Spisie treści:

Anonim

Testowanie Big Data

Big Data Testing to proces testowania aplikacji Big Data w celu zapewnienia, że ​​wszystkie funkcje aplikacji Big Data działają zgodnie z oczekiwaniami. Celem testów big data jest upewnienie się, że system big data działa płynnie i bez błędów przy 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 tych zbiorów danych obejmuje różne narzędzia, techniki i struktury do przetworzenia. Big data odnosi się do tworzenia, przechowywania, wyszukiwania i analizy danych, które są niezwykłe pod względem ilości, różnorodności i szybkości. Możesz dowiedzieć się więcej o Big Data, Hadoop i MapReduce tutaj

W tym samouczku dotyczącym testowania dużych zbiorów danych nauczysz się:

  • Co to jest strategia testowania Big Data?
  • Jak testować aplikacje Hadoop
  • Testowanie architektury
  • Test wydajności
  • Podejście do testowania wydajności
  • Parametry testowania wydajności
  • Potrzeby środowiska testowego
  • Testowanie dużych zbiorów danych vs. Tradycyjne testowanie baz danych
  • Narzędzia wykorzystywane w scenariuszach Big Data
  • Wyzwania w testowaniu dużych zbiorów danych

Co to jest strategia testowania Big Data?

Testowanie aplikacji Big Data to raczej weryfikacja jej przetwarzania danych niż testowanie poszczególnych funkcji produktu. Jeśli chodzi o testowanie Big Data, kluczem do sukcesu są testy wydajnościowe i funkcjonalne .

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

Oprócz tego jakość danych jest również ważnym czynnikiem w testowaniu Hadoop. Przed przetestowaniem aplikacji konieczne jest sprawdzenie jakości danych i należy to traktować jako część testowania bazy danych. Obejmuje sprawdzenie różnych cech, takich jak zgodność, dokładność, powielanie, spójność, poprawność, kompletność danych itp. Następnie w tym samouczku dotyczącym testowania Hadoop nauczymy się testować aplikacje Hadoop.

Jak testować aplikacje Hadoop

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

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

Krok 1: Walidacja etapów danych

Pierwszy krok w tym samouczku dotyczącym testowania dużych zbiorów danych jest określany jako etap przed Hadoop, obejmujący walidację procesu.

  • Dane z różnych źródeł, takich jak RDBMS, blogi internetowe, media społecznościowe itp., Powinny zostać sprawdzone, aby upewnić się, że prawidłowe dane są pobierane do systemu
  • Porównanie danych źródłowych z danymi przesłanymi do systemu Hadoop, aby upewnić się, że są zgodne
  • Sprawdź, czy właściwe dane są wyodrębniane i ładowane do właściwej lokalizacji HDFS

Narzędzia takie jak Talend , Datameer mogą być używane do sprawdzania poprawności etapów danych

Krok 2: Walidacja „MapReduce”

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

  • Proces Map Reduce działa poprawnie
  • Dane są objęte regułami agregacji lub segregacji
  • Generowane są pary klucz-wartość
  • Sprawdzanie poprawności danych po procesie Map-Reduce

Krok 3: Faza walidacji danych wyjściowych

Ostatnim lub trzecim etapem testowania Hadoop jest proces walidacji danych wyjściowych. Pliki danych wyjściowych 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 zasady transformacji są poprawnie zastosowane
  • Sprawdzenie integralności danych i pomyślnego załadowania danych do systemu docelowego
  • Aby sprawdzić, czy nie ma uszkodzeń danych, porównując dane docelowe z danymi systemu plików HDFS

Testowanie architektury

Hadoop przetwarza bardzo duże ilości danych i wymaga dużej ilości zasobów. Dlatego testowanie architektury ma kluczowe znaczenie dla zapewnienia sukcesu projektu Big Data. Źle lub nieprawidłowo zaprojektowany system może prowadzić do pogorszenia wydajności, a system może nie spełniać wymagań. Przynajmniej usługi testowania wydajności i przełączania awaryjnego powinny być wykonywane w środowisku Hadoop.

Testowanie wydajności obejmuje testowanie czasu wykonania zadania, wykorzystania pamięci, przepustowości danych i podobnych metryk systemowych. Podczas gdy motywem usługi testu pracy awaryjnej jest weryfikacja, czy przetwarzanie danych przebiega bezproblemowo w przypadku awarii węzłów danych

Test wydajności

Testowanie wydajności dla Big Data obejmuje dwie główne czynności

  • Pozyskiwanie danych i przez cały czas : na tym etapie tester Big Data sprawdza, w jaki sposób szybki system może zużywać dane z różnych źródeł danych. Testowanie polega na zidentyfikowaniu innej wiadomości, którą kolejka może przetworzyć w danym przedziale czasu. Obejmuje również, jak szybko dane można wstawić do bazowego magazynu danych, na przykład szybkość wstawiania do bazy danych Mongo i Cassandra.
  • Przetwarzanie danych : obejmuje weryfikację szybkości, z jaką wykonywane są zapytania lub zadania związane z redukcją mapy. Obejmuje to również testowanie przetwarzania danych w izolacji, gdy bazowy magazyn danych jest zapełniony w zestawach danych. Na przykład uruchamianie zadań Map Reduce na bazowym systemie plików HDFS
  • Wydajność podkomponentu : Systemy te składają się z wielu komponentów i konieczne jest przetestowanie każdego z nich oddzielnie. Na przykład, jak szybko wiadomość jest indeksowana i konsumowana, zadania MapReduce, wydajność zapytań, wyszukiwanie itp.

Podejście do testowania wydajności

Testowanie wydajności dla aplikacji Big Data obejmuje testowanie ogromnych ilości danych ustrukturyzowanych i nieustrukturyzowanych, a testowanie tak ogromnych danych wymaga specjalnego podejścia do testowania.

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 klientów indywidualnych (tworzone są skrypty niestandardowe)
  4. Wykonaj test i przeanalizuj wynik (jeśli cele nie zostaną osiągnięte, dostrój komponent i wykonaj ponownie)
  5. Optymalna konfiguracja

Parametry 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ń: wielkość dozwolonego wzrostu dziennika 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 GC itp.
  • Mapa zmniejsza wydajność: sortowanie, scalanie 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ść do testowania wydajności Big Data

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

Nieruchomości

Tradycyjne testowanie baz danych

Testowanie dużych zbiorów danych

Dane

  • Tester pracuje z danymi strukturalnymi
  • Tester współpracuje 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 skoncentrowanych wysiłków badawczo-rozwojowych

Strategia testowania

  • Tester ma możliwość wykonania strategii „Sampling” ręcznie lub strategii „Wyczerpująca weryfikacja” przez narzędzie do automatyzacji
  • Strategia „próbkowania” 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 do walidacji

Tester korzysta z makr opartych na programie Excel lub narzędzi do automatyzacji opartych na interfejsie użytkownika

Brak zdefiniowanych narzędzi, zakres jest szeroki, od narzędzi programistycznych, takich jak MapReduce, po HIVEQL

Narzędzia testowe

Narzędzia testowe mogą być używane z podstawową wiedzą operacyjną i mniejszym przeszkoleniem.

Obsługa narzędzia testowego wymaga określonego zestawu umiejętności i przeszkolenia. Ponadto narzędzia są w początkowej fazie iz czasem mogą pojawiać się nowe funkcje.

Narzędzia wykorzystywane w scenariuszach Big Data

Klaster Big Data

Narzędzia Big Data

NoSQL:

  • CouchDB, bazy danych MongoDB, Cassandra, Redis, ZooKeeper, HBase

MapReduce:

  • Hadoop, Ula, Świnia, Kaskadowanie, Oozie, Kafka, S4, MapR, Flume

Przechowywanie:

  • S3, HDFS (rozproszony system plików Hadoop)

Serwery:

  • Elastic, Heroku, Elastic, Google App Engine, EC2

Przetwarzanie

  • R, Yahoo! Rury, Mechanical Turk, BigSheets, Datameer

Wyzwania w testowaniu dużych zbiorów danych

  • Automatyzacja

    Testowanie automatyzacji dużych zbiorów danych wymaga kogoś z doświadczeniem technicznym. Ponadto zautomatyzowane narzędzia nie są przystosowane do obsługi nieoczekiwanych problemów, które pojawiają się podczas testowania

  • Wirtualizacja

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

  • Duży zbiór danych
    • Musisz zweryfikować więcej danych i zrobić to szybciej
    • Konieczność zautomatyzowania prac związanych z testowaniem
    • Musisz mieć możliwość testowania na różnych platformach

Wyzwania związane z testowaniem wydajności

  • Zróżnicowany zestaw technologii : każdy element składowy należy do innej technologii i wymaga oddzielnego testowania
  • Niedostępność określonych narzędzi : żadne pojedyncze narzędzie nie może przeprowadzić kompleksowego testowania. Na przykład NoSQL może nie pasować do kolejek komunikatów
  • Skrypty testowe : Do projektowania scenariuszy testowych i przypadków testowych potrzebny jest wysoki poziom obsługi skryptów
  • Środowisko testowe : wymaga specjalnego środowiska testowego ze względu na duży rozmiar danych
  • Rozwiązanie do monitorowania : istnieje ograniczona liczba rozwiązań, które mogą monitorować całe środowisko
  • Rozwiązanie diagnostyczne : konieczne jest opracowanie rozwiązania niestandardowego, aby przeanalizować obszary wąskich gardeł wydajności

Podsumowanie

  • W miarę jak inżynieria danych i analityka danych przechodzą na wyższy poziom, testowanie dużych zbiorów danych jest nieuniknione.
  • Przetwarzanie dużych ilości danych może odbywać się w trybie wsadowym, w czasie rzeczywistym lub interaktywnym
  • 3 etapy testowania aplikacji Big Data to
    • Etapowa walidacja danych
    • Walidacja „MapReduce”
    • Faza walidacji danych wyjściowych
  • Testowanie architektury to ważna faza testowania dużych zbiorów danych, ponieważ źle zaprojektowany system może prowadzić do bezprecedensowych błędów i pogorszenia wydajności
  • Testowanie wydajności dla Big Data obejmuje weryfikację
    • Przepustowość danych
    • Przetwarzanie danych
    • Wydajność podzespołów
  • Testowanie dużych zbiorów danych bardzo różni się od tradycyjnych testów 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 obsługę dużych zbiorów danych. Problemem jest również testowanie wydajności aplikacji Big Data.