Ultimate Impala Hadoop Tutorial, którego będziesz potrzebować [2022]

Opublikowany: 2020-05-14

Impala to natywna analityczna baza danych typu open source przeznaczona dla platform klastrowych, takich jak Apache Hadoop. Jest to interaktywny silnik zapytań podobny do języka SQL, który działa w oparciu o rozproszony system plików Hadoop (HDFS), aby ułatwić przetwarzanie ogromnych ilości danych z błyskawiczną prędkością. Impala jest również jednym z najlepszych narzędzi Hadoop do korzystania z dużych zbiorów danych. Dzisiaj porozmawiamy o wszystkim, co dotyczy Impali, dlatego zaprojektowaliśmy dla Ciebie ten samouczek dotyczący Impali!

Ten samouczek Impala Hadoop jest specjalnie przeznaczony dla tych, którzy chcą nauczyć się Impala. Jednak, aby czerpać maksymalne korzyści z tego samouczka Impala, pomocne byłoby dogłębne zrozumienie podstaw SQL wraz z poleceniami Hadoop i HDFS.

Spis treści

Co to jest Impala?

Impala to silnik zapytań SQL MPP (Massive Parallel Processing) napisany w C++ i Javie. Jego głównym celem jest przetwarzanie ogromnych ilości danych przechowywanych w klastrach Hadoop. Impala obiecuje wysoką wydajność i niskie opóźnienia, a jak dotąd jest to najbardziej wydajny silnik SQL (który oferuje wrażenia podobne do RDBMS), aby zapewnić najszybszy sposób uzyskiwania dostępu i przetwarzania danych przechowywanych w HDFS.

Innym korzystnym aspektem Impali jest integracja z metamagazynem Hive, aby umożliwić udostępnianie informacji z tabeli między obydwoma komponentami. Wykorzystuje istniejący Apache Hive do wykonywania zorientowanych wsadowo, długotrwałych zadań w formacie zapytań SQL. Integracja Impala-Hive umożliwia użycie jednego z dwóch komponentów — Hive lub Impala do przetwarzania danych lub tworzenia tabel w ramach jednego współdzielonego systemu plików (HDFS) bez zmiany definicji tabeli.

Dlaczego Impala?

Impala łączy wydajność wielu użytkowników tradycyjnej analitycznej bazy danych i obsługę SQL ze skalowalnością i elastycznością Apache Hadoop. Robi to za pomocą standardowych komponentów Hadoop, takich jak HDFS, HBase, YARN, Sentry i Metastore. Ponieważ Impala używa tych samych metadanych, interfejsu użytkownika (Hue Beeswax), składni SQL (Hive SQL) i sterownika ODBC (Open Database Connectivity) jako Apache Hive, tworzy ujednoliconą i znaną platformę dla zapytań zorientowanych wsadowo i w czasie rzeczywistym.

Przeczytaj: Pomysły na projekty Big Data dla początkujących

Impala może czytać prawie wszystkie formaty plików używane przez Hadoop, w tym Parquet, Avro i RCFile. Ponadto Impala nie jest zbudowana na algorytmach MapReduce – implementuje architekturę rozproszoną opartą na procesach demonów, które obsługują i zarządzają wszystkim, co jest związane z wykonywaniem zapytań działających na tej samej maszynie/ach. W rezultacie pomaga zmniejszyć opóźnienie korzystania z MapReduce. To właśnie sprawia, że ​​Impala jest znacznie szybsza niż Hive.

Impala – Funkcje

Główne cechy Impali to:

  • Jest dostępny jako silnik zapytań SQL typu open source na licencji Apache.
  • Umożliwia dostęp do danych za pomocą zapytań podobnych do SQL.
  • Obsługuje przetwarzanie danych w pamięci — uzyskuje dostęp i analizuje dane przechowywane w węzłach danych Hadoop.
  • Umożliwia przechowywanie danych w systemach pamięci masowej, takich jak HDFS, Apache HBase i Amazon s3.
  • Łatwo integruje się z narzędziami BI, takimi jak Tableau, Pentaho i strategia Micro.
  • Obsługuje różne formaty plików, w tym Sequence File, Avro, LZO, RCFile i Parquet.

Impala – kluczowe zalety

Korzystanie z Impali daje użytkownikom kilka znaczących korzyści, takich jak:

  • Ponieważ Impala obsługuje przetwarzanie danych w pamięci (przetwarzanie odbywa się tam, gdzie dane się znajdują – w klastrze Hadoop), nie ma potrzeby przekształcania danych i przenoszenia danych.
  • Aby uzyskać dostęp do danych przechowywanych w HDFS lub HBase lub Amazon s3 za pomocą Impala, nie potrzebujesz żadnej wcześniejszej znajomości języka Java (zadania MapReduce) – możesz łatwo uzyskać do nich dostęp za pomocą podstawowych zapytań SQL.
  • Ogólnie rzecz biorąc, podczas pisania zapytań w narzędziach biznesowych dane muszą przejść skomplikowany cykl ekstrakcji-transformacji-ładowania (ETL). Jednak w przypadku Impali nie ma takiej potrzeby. Impala zastępuje czasochłonne etapy ładowania i reorganizacji zaawansowanymi technikami, takimi jak eksploracyjna analiza danych i odkrywanie danych, przyspieszając w ten sposób proces.
  • Impala jest pionierem w korzystaniu z formatu plików Parquet, który jest kolumnowym układem pamięci zoptymalizowanym pod kątem zapytań na dużą skalę znalezionych w hurtowniach danych.

Impala – wady

Chociaż Impala oferuje wiele korzyści, ma też pewne ograniczenia:

  • Nie obsługuje serializacji i deserializacji.
  • Nie może czytać niestandardowych plików binarnych; może czytać tylko pliki tekstowe.
  • Za każdym razem, gdy do katalogu danych w HDFS dodawane są nowe rekordy lub pliki, konieczne będzie odświeżenie tabeli danych.

Impala – Architektura

Impala jest oddzielona od swojego silnika pamięci masowej (w przeciwieństwie do tradycyjnych systemów pamięci masowej). Zawiera trzy główne komponenty – Impala Daemon (Impalad) , Impala StateStore oraz Impala Metadata & MetaStore.

Demon Impala

Impala Daemon, czyli Impalad, działa na poszczególnych węzłach, w których zainstalowano Impala. Przyjmuje zapytania z wielu interfejsów (powłoka Impala, przeglądarka Hue itp.) i przetwarza je. Za każdym razem, gdy zapytanie jest przesyłane do Impaladu w określonym węźle, węzeł ten staje się „węzłem koordynatora” dla tego zapytania. W ten sposób Impalad działający na innych węzłach obsługuje wiele zapytań.

Gdy zapytania zostaną zaakceptowane, Impalad odczytuje i zapisuje pliki danych oraz paralelizuje zapytania poprzez dystrybucję zadania do innych węzłów Impala w klastrze. Użytkownicy mogą przesyłać zapytania do dedykowanego Impaladu lub w sposób zrównoważony do innego Impaladu w klastrze, w zależności od swoich wymagań. Zapytania te następnie rozpoczynają przetwarzanie w różnych instancjach Impalad i zwracają wynik do głównego węzła koordynującego.

Impala StateStore

Impala StateStore monitoruje i sprawdza kondycję każdego Impalada , a także przekazuje raport o kondycji każdego demona Impala innym demonom. Może działać w tym samym węźle, na którym działa serwer Impala, lub w innym węźle w klastrze. W przypadku awarii węzła z jakiegoś powodu, Impala StateStore aktualizuje wszystkie inne węzły o awarii. W takim przypadku inne demony Impala przestają przypisywać dalsze zapytania do uszkodzonego węzła.

Metadane Impala i MetaStore

W Impali wszystkie kluczowe informacje, w tym definicje tabel, informacje o tabelach i kolumnach itp., są przechowywane w scentralizowanej bazie danych zwanej MetaStore. W przypadku dużych ilości danych zawierających wiele partycji uzyskanie metadanych specyficznych dla tabeli staje się trudne. I tu z pomocą przychodzi Impala. Ponieważ poszczególne węzły Impala buforują lokalnie wszystkie metadane, łatwo jest natychmiast uzyskać określone informacje.

Za każdym razem, gdy aktualizujesz definicję tabeli/dane tabeli, wszystkie demony Impala muszą również aktualizować swoją pamięć podręczną metadanych, pobierając najnowsze metadane, zanim będą mogły wysłać nowe zapytanie do określonej tabeli.

Impala – Instalacja Impala

Tak jak musisz zainstalować Hadoop i jego ekosystem w systemie operacyjnym Linux, możesz zrobić to samo z Impala. Ponieważ to Cloudera jako pierwsza wypuściła Impalę, możesz łatwo uzyskać do niej dostęp za pośrednictwem maszyny wirtualnej Cloudera QuickStart.

Przeczytaj: samouczek Hadoop

Jak pobrać maszynę wirtualną Cloudera QuickStart?

Aby pobrać maszynę wirtualną Cloudera QuickStart, należy wykonać czynności opisane poniżej.

Krok 1

Otwórz stronę główną Cloudera ( http://www.cloudera.com/ ), a znajdziesz coś takiego:

Krok 2

Aby zarejestrować się w Cloudera należy kliknąć opcję „Zarejestruj się teraz”, która otworzy stronę rejestracji konta. Jeśli jesteś już zarejestrowany w Cloudera, możesz kliknąć opcję „Zaloguj się” na stronie, co spowoduje dalsze przekierowanie do strony logowania w następujący sposób:

Krok 3

Po zalogowaniu otwórz stronę pobierania witryny, klikając opcję „Pobieranie” w lewym górnym rogu strony, jak pokazano poniżej:

Krok 4

W tym kroku musisz pobrać Cloudera QuickStartVM, klikając opcję „Pobierz teraz” w następujący sposób:

Kliknięcie opcji Pobierz teraz spowoduje przekierowanie do strony pobierania QuickStart VM:

Następnie musisz wybrać opcję GET ONE NOW, zaakceptować umowę licencyjną i przesłać ją, jak pokazano poniżej:

Po zakończeniu pobierania znajdziesz trzy różne opcje kompatybilności z Cloudera VM – VMware, KVM i VIRTUALBOX. Możesz wybrać preferowaną opcję.

Źródło

Impala – interfejsy przetwarzania zapytań

Impala oferuje trzy interfejsy do przetwarzania zapytań:

Impala-shell – Po zainstalowaniu i skonfigurowaniu Impala przy użyciu maszyny wirtualnej Cloudera możesz aktywować powłokę Impala, wpisując polecenie „impala-shell” w edytorze.

Przeczytaj: Różnica między Big Data a Hadoop

Interfejs Hue – Przeglądarka Hue umożliwia przetwarzanie zapytań Impala. Posiada edytor zapytań Impala, w którym można wpisywać i wykonywać różne zapytania Impala. Aby jednak skorzystać z edytora, musisz najpierw zalogować się do przeglądarki Hue.

Sterowniki ODBC/JDBC – Jak każda baza danych, Impala oferuje również sterowniki ODBC/JDBC. Sterowniki te umożliwiają łączenie się z Impala za pomocą języków programowania, które je obsługują (sterowniki ODBC/JDBC) i budowanie aplikacji przetwarzających zapytania w Impali przy użyciu tych samych języków programowania.

Procedura wykonywania zapytania

Za każdym razem, gdy przekazujesz zapytanie za pomocą dowolnego interfejsu Impala, Impalad w klastrze zwykle akceptuje Twoje zapytanie. Impalad staje się wtedy węzłem koordynującym dla tego konkretnego zapytania. Po otrzymaniu zapytania koordynator sprawdza, czy zapytanie jest odpowiednie, używając schematu tabeli z Hive Metastore.

Następnie zbiera informacje o lokalizacji danych potrzebnych do wykonania zapytania z węzła nazwy HDFS i przekazuje te informacje do innych Impaladów w hierarchii, aby ułatwić wykonanie zapytania. Gdy Impalady odczytają określony blok danych, przetwarzają zapytanie. Po przetworzeniu zapytania przez wszystkie Impalady w klastrze węzeł koordynujący zbiera wynik i dostarcza go użytkownikowi.

Polecenia powłoki Impala

Jeśli znasz Hive Shell, możesz łatwo rozgryźć Impala Shell, ponieważ oba mają dość podobną strukturę – pozwalają tworzyć bazy danych i tabele, wstawiać dane i wydawać zapytania. Polecenia Impala Shell dzielą się na trzy szerokie kategorie: polecenia ogólne, opcje specyficzne dla zapytania oraz opcje specyficzne dla tabeli i bazy danych.

Polecenia ogólne

  1. Wsparcie

Polecenie help oferuje listę przydatnych poleceń dostępnych w Impali.

[szybki start.cloudera:21000] > pomoc;

Udokumentowane polecenia (wpisz help <temat>):

=========================================================== ======

obliczyć opisz wstawić zestaw nieustawiony z wersją

połącz wyjaśnij zakończ pokaż wartości użyj

wyjdź z profilu historii wybierz wskazówkę powłoki

Nieudokumentowane polecenia:

=================================================

zmień utwórz opis upuść pomoc podsumowanie wczytywania

  1. Wersja

To polecenie udostępnia aktualną wersję Impali.

[szybki start.cloudera:21000] > wersja;

Wersja powłoki: Impala Shell v2.3.0-cdh5.5.0 (0c891d7) zbudowana w poniedziałek 9 listopada

12:18:12 PST 2015

Wersja serwera: wersja impalad 2.3.0-cdh5.5.0 RELEASE (kompilacja

0c891d79aa38f297d244855a32f1e17280e2129b)

  1. historia

To polecenie wyświetla ostatnie dziesięć poleceń wykonanych w Impala Shell.

[szybki start.cloudera:21000] > historia;

[1]:wersja;

[2]:pomoc;

[3]:pokaż bazy danych;

[4]:użyj my_db;

[5]:historia;

  1. połączyć

To polecenie pomaga połączyć się z daną instancją Impali. Jeśli nie określisz żadnej instancji, domyślnie połączy się ona z domyślnym portem 21000.

[szybki start.cloudera:21000] > połącz;

Połączono z quickstart.cloudera:21000

Wersja serwera: wersja impalad 2.3.0-cdh5.5.0 RELEASE (kompilacja

0c891d79aa38f297d244855a32f1e17280e2129b)

  1. wyjdź/zakończ

Jak sama nazwa wskazuje, polecenie exit/quit pozwala wyjść z powłoki Impala.

[szybki start.cloudera:21000] > wyjdź;

Żegnaj chmuro

Opcje specyficzne dla zapytania

  1. wyjaśnić

To polecenie zwraca plan wykonania dla konkretnego zapytania.

[quickstart.cloudera:21000] > wyjaśnij wybierz * z próbki;

Zapytanie: wyjaśnij wybierz * z próbki

+————————————————————————————+

| Wyjaśnij ciąg

|

+————————————————————————————+

| Szacowane wymagania na hosta: Pamięć = 48,00 MB rdzeni wirtualnych = 1

|

| OSTRZEŻENIE: W poniższych tabelach brakuje odpowiednich statystyk tabel i/lub kolumn. |

| my_db.klienci |

| 01:WYMIANA [BEZ PARTYCJI]

|

| 00:SKANUJ HDFS [moja_baza.klienci] |

| partycje = 1/1 pliki = 6 rozmiar = 148B |

+————————————————————————————+

Pobrano 7 wierszy w 0,17 s

  1. profil

To polecenie wyświetla informacje niskiego poziomu dotyczące ostatniego/najnowszego zapytania. Służy do diagnozowania i dostrajania wydajności zapytania.

[ szybki start . cloudera : 21000 ] > profil ;

Profil środowiska wykonawczego zapytania :

Zapytanie ( id = 164b1294a1049189 : a67598a6699e3ab6 ):

Podsumowanie :

Identyfikator sesji : e74927207cd752b5 : 65ca61e630ad3ad

Typ sesji : WOSK PSZCZELI

Czas rozpoczęcia : 2016 04 17 23 : 49 : 26.08148000 Czas zakończenia : 2016 04 17 23 : 49 : 26.2404000

Typ zapytania : WYJAŚNIJ

Stan zapytania : ZAKOŃCZONY

Stan zapytania : OK

Wersja Impala : wersja impala 2.3 . 0 cdh5 . 5.0 WYDANIE ( kompilacja 0c891d77280e2129b )

Użytkownik : cloudera

Połączony użytkownik : cloudera

Użytkownik delegowany :

Adres sieciowy : 10.0 . 2,15 : 43870

Domyślna baza danych : my_db

Sql Statement : wyjaśnij wybierz * z próbki

Koordynator : szybki start . chmurka : 22000

: 0ns

Oś czasu zapytań : 167,304 ms

Rozpoczęcie wykonywania : 41,292us ( 41,292us ) Planowanie zakończone : 56,42ms ( 56,386ms )

Dostępne rzędy : 58,247ms ( 1,819ms )

Pobrano pierwszy wiersz : 160,72 ms ( 101.824 ms )

Wyrejestruj zapytanie : 166,325 ms ( 6,253 ms )

ImpalaSerwer :

ClientFetchWaitTimer : 107,969 ms

RowMaterializationTimer : 0ns

Opcje specyficzne dla tabeli i bazy danych

  1. zmieniać

Polecenie alter pomaga zmienić strukturę i nazwę tabeli.

  1. opisać

Polecenie opisu udostępnia metadane tabeli. Zawiera informacje, takie jak kolumny i ich typy danych.

  1. upuść

Polecenie drop pomaga usunąć konstrukcję, która może być tabelą, widokiem lub funkcją bazy danych.

  1. wstawić

Polecenie wstaw pomaga dołączyć dane (kolumny) do tabeli i nadpisać dane z istniejącej tabeli

  1. Wybierz

Polecenia select można użyć do wykonania określonej operacji na określonym zbiorze danych. Zwykle wymienia zbiór danych, na którym akcja ma zostać zakończona.

  1. pokazać

Polecenie show wyświetla metastore różnych konstrukcji, takich jak tabele i bazy danych.

  1. stosowanie

Polecenie use pomaga zmienić aktualny kontekst konkretnej bazy danych.

Impala – Komentarze

W Impali komentarze są podobne do tych w języku SQL. Zazwyczaj istnieją dwa rodzaje komentarzy:

Komentarze jednowierszowe

Każda linia, po której następuje „—” staje się komentarzem w Impali.

— Witam, witamy w uaktualnieniu.

Komentarze wielowierszowe

Wszystkie wiersze zawarte między /* i */ są wielowierszowymi komentarzami w Impali.

/*

Cześć, to jest przykład

Wielowierszowych komentarzy w Impala

*/

Wniosek

Mamy nadzieję, że ten szczegółowy samouczek Impala pomógł ci zrozumieć jego zawiłości i sposób działania.

Jeśli chcesz dowiedzieć się więcej o Big Data, sprawdź nasz program PG Diploma in Software Development Specialization in Big Data, który jest przeznaczony dla pracujących profesjonalistów i zawiera ponad 7 studiów przypadków i projektów, obejmuje 14 języków programowania i narzędzi, praktyczne praktyczne warsztaty, ponad 400 godzin rygorystycznej pomocy w nauce i pośrednictwie pracy w najlepszych firmach.

Ucz się kursów rozwoju oprogramowania online z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Opanuj technologię przyszłości — Big Data

Zaawansowany program certyfikacji w Big Data z IIIT Bangalore