Architektura i polecenia Apache Hive: tryby, charakterystyka i aplikacje

Opublikowany: 2021-06-30

Spis treści

Co to jest ul?

Ula Apache to narzędzie do magazynowania danych typu open source opracowane przez Facebooka do przetwarzania rozproszonego i analizy danych. Został opracowany na bazie rozproszonego systemu plików Hadoop (HDFS). Hive zapewnia mechanizm rzutowania struktury na dane w usłudze Hadoop. Do zapytania o te dane używany jest język podobny do języka SQL o nazwie HiveQL (HQL). Istnieje podobieństwo między tabelami w programie Hive i tabelami w relacyjnej bazie danych. Zapytania Hive mogą być łatwo napisane przez każdego, kto zna język SQL.

Kilka funkcji Hive to:

  • Przechowywanie informacji o schemacie w bazie danych i przetworzonych danych w HDFS.
  • Zaprojektowany dla OLAP.
  • Językiem zapytań jest HiveQL lub HQL, który jest podobny do języka SQL.
  • Jest szybki, znajomy, skalowalny i rozszerzalny.

Zastosowania ula

  • Jest to rozproszona pamięć masowa Apache Hive.
  • Dostępne są narzędzia, które umożliwiają użytkownikom łatwe wyodrębnianie, przekształcanie i ładowanie danych.
  • W celu zapewnienia struktury oferowane są różne formaty danych.
  • Hive może uzyskać dostęp do plików przechowywanych w rozproszonym systemie plików Hadoop (HDFS).

Komendy ula

Polecenia ula to:

  1. Język definicji danych (DDL): Tabele i inne obiekty w bazie danych są budowane i modyfikowane za pomocą tych poleceń.
  • CREATE: Służy do tworzenia tabeli lub bazy danych.
  • POKAŻ: Służy do pokazywania bazy danych, tabeli, właściwości itp.
  • ALTER: Służy do wprowadzania zmian w istniejącej tabeli.
  • OPISZ: Opisuje kolumny tabeli.
  • TRUNCATE: Służy do trwałego obcinania i usuwania wierszy tabel.
  • DELETE: Usuwa dane tabeli, ale można je przywrócić.
  1. Język manipulacji danymi (DML): używany do pobierania, przechowywania, modyfikowania, usuwania, wstawiania i aktualizowania danych w bazie danych.
  • Składnia instrukcji LOAD, INSERT

LOAD data <LOCAL> inpath <ścieżka pliku> do tabeli [nazwa tabeli]

  • Po załadowaniu danych komendy manipulacji danymi służą do pobierania danych.
  • Funkcja agregująca Count służy do zliczania całkowitej liczby rekordów w tabeli.
  • Słowo kluczowe „utwórz zewnętrzną” służy do tworzenia tabeli i określa lokalizację, w której zostanie utworzona tabela. Tabela EXTERNAL wskazuje na dowolną lokalizację HDFS do jej przechowywania.
  • Polecenia wstawiania służą do ładowania tabeli Hive danych. „Wstaw nadpisz” służy do nadpisania istniejących danych, a „wstaw do” służy do dołączenia danych do istniejących danych.
  • Tabela jest dzielona na partycje za pomocą polecenia „partycjonowana według” i podzielona na segmenty za pomocą polecenia „w klastrach”.
  • Wstawianie danych generuje błędy, ponieważ partycja dynamiczna nie jest włączona. Dlatego w powłoce Hive należy ustawić następujące parametry.

ustaw hive.exec.dynamic.partition=prawda;

Aby włączyć partycje dynamiczne, domyślnie jest to fałsz

ustaw hive.exec.dynamic.partition.mode=nieścisłe;

  • Polecenie „Upuść tabelę” usuwa dane i metadane tabeli
  • Agregacja: Składnia:

Wybierz liczbę (kategoria DISTINCT) z nazwy tabeli;

Polecenie zliczy różne kategorie tabel 'cate'.

  • Grupowanie: Składnia:

Wybierz kategorię, sumę (kwotę) z rekordów txt pogrupuj według kategorii

Zestaw wyników zostanie pogrupowany w jedną lub więcej kolumn.

  • Operacja łączenia: wykonaj, aby połączyć pola z dwóch tabel przy użyciu wartości wspólnych dla każdej kolumny.
  • Lewe sprzężenie zewnętrzne: W przypadku tabel A i B lewe sprzężenie zewnętrzne ma zawierać wszystkie rekordy „lewej” tabeli (A), nawet jeśli warunek złączenia nie znajdzie żadnego pasującego rekordu w „prawej” tabeli (B).
  • Prawe połączenie zewnętrzne: Każdy wiersz z „prawej” tabeli (B) pojawi się w połączonym stole przynajmniej raz.
  • Pełne sprzężenie: Połączona tabela będzie zawierać wszystkie rekordy z obu tabel. Połączona tabela będzie zawierać wszystkie rekordy z obu tabel.

Architektura ula

Architektura ula Apache jest pokazana na rysunku 1 .

Lista głównych komponentów

Główne elementy architektury ula to:

1. Klient ula

Różne aplikacje napisane w językach takich jak Java, Python, C++ itp. są komunikowane za pomocą różnych sterowników dostarczanych przez Hive. Może być napisany w dowolnym języku zgodnie z wyborem. Klienci i serwery z kolei komunikują się z serwerem Hive w usługach Hive.

Najczęściej dzieli się je na trzy typy:

  • Klient Thrift: Opiera się na Apache Thrift, aby obsługiwać żądania od klienta Thrift. Klient Thrift będzie używany do komunikacji z aplikacjami opartymi na Thrift.
  • Klient JDBC: JDBC jest dostępny dla aplikacji związanych z językiem Java. Aplikacje Java są połączone z Hive za pomocą sterownika JDBC. Ponadto wykorzystuje Thrift do komunikacji z serwerem Hive.
  • Klient ODBC: Aplikacje oparte na protokole ODBC mogą łączyć się z Hive za pośrednictwem sterowników ODBC. Podobnie jak JDBC, używa Thrift do komunikacji z serwerem Hive.

2. Usługi ula

Usługi Hive zapewniają środki do interakcji Hive z Klientami. Wszelkie operacje związane z zapytaniami, które musi wykonać Klient, będą musiały być komunikowane za pośrednictwem usług Hire. W przypadku operacji języka definicji danych (DDL) interfejs wiersza polecenia działa jako usługa Hive.

Wszystkie sterowniki muszą komunikować się z serwerem Hive, a następnie z głównym sterownikiem w usługach Hive. Sterowniki w usługach Hive stanowią główny sterownik, który komunikuje się z konkretnymi aplikacjami Klienta oraz wszystkimi typami JDBC, ODBC itp. Żądania z różnych aplikacji są przetwarzane przez sterownik do metastore i systemów terenowych, które będą dalej przetwarzane.

Usługi oferowane przez Hive to:

  • Beeline: Beeline to powłoka poleceń, w której użytkownik może przesyłać zapytania do systemu. Jest obsługiwany przez HiveServer2. Jest to klient JDBC oparty na SQLLINE CLI.
  • Hive Server 2: Klienci mogą wykonywać zapytania względem gałęzi. Następca HiveServer1, umożliwia wykonywanie wielu zapytań od wielu klientów. Zapewnia najlepszą obsługę klientów z otwartym interfejsem API, takich jak JDBC i ODBC.
  • Sterownik Hive: użytkownik przesyła instrukcje HiveQL do sterownika Hive za pomocą powłoki poleceń. Wysyła zapytanie do kompilatora i tworzy uchwyty sesji dla zapytania.
  • Kompilator Hive: kompilator Hive służy do przekazywania zapytania. Korzystając z metadanych przechowywanych w magazynie metadanych, kompilator Hive przeprowadza analizę semantyczną i sprawdza typ w różnych blokach zapytań i wyrażeniach. Plan wykonania jest następnie generowany przez kompilator, którym jest DAG (Directed Acyclic Graph). Każdy etap DAG jest operacją na metadanych, operacją na HDFS lub zadaniem mapowania/redukowania.
  • Optymalizator: Główną rolą optymalizatora jest wykonywanie operacji transformacji na planie wykonania. Zwiększa wydajność i skalowalność, dzieląc zadania.
  • Silnik wykonawczy : po zakończeniu kroków kompilacji i optymalizacji rolą silnika wykonawczego jest wykonanie planu wykonania utworzonego przez kompilator. Plan jest wykonywany przy użyciu Hadoop w kolejności ich zależności.
  • Metastore : Metastore to ogólnie relacyjna baza danych, która przechowuje informacje o metadanych związane ze strukturą tabel i partycji. Jest to centralne repozytorium, które obejmuje również przechowywanie informacji o kolumnach i typach kolumn. Informacje związane z serializatorem i deserializatorem są również przechowywane w Metastore, który jest wymagany do operacji odczytu/zapisu wraz z plikami HDFS, które przechowują dane. Interfejs Thrift jest udostępniany przez Metastore do wykonywania zapytań i manipulowania metadanymi Hive.

Metastore można skonfigurować w dwóch trybach:

  • Zdalny: ten tryb jest przydatny w przypadku aplikacji innych niż Java, aw trybie zdalnym magazyn meta jest usługą Thrift.
  • Wbudowany: w tym trybie klient może bezpośrednio wchodzić w interakcję z magazynem metadanych za pośrednictwem JDBC.
  • HCatalog: Warstwa zarządzania tabelami i pamięcią masową dla usługi Hadoop to HCatalog. Dostępne są różne narzędzia do przetwarzania danych do odczytywania i zapisywania danych w siatce, takie jak Pig, MapReduce itp. Zbudowane na szczycie metastore Hive, dane tabelaryczne metastore Hive są udostępniane innym narzędziom do przetwarzania danych.
  • WebHCat: WebHCat to interfejs HTTP i REST API dla HCatalog. Wykonuje operacje na metadanych Hive i oferuje usługę uruchamiania zadań Hadoop MapReduce (lub YARN), Pig, Hive.

3. Przetwarzanie i zarządzanie zasobami

Wykonywanie zapytań jest realizowane przez wewnętrzny framework MapReduce.

Struktura MapReduce to platforma programowa do przetwarzania dużych ilości danych w dużych klastrach sprzętu powszechnego użytku. Dane są dzielone na porcje, a następnie przetwarzane przez zadania redukujące mapę.

4. Przechowywanie rozproszone

Usługi Hive komunikują się z magazynem Hive w celu wykonywania następujących czynności:

  • Hive "Baza danych magazynu Meta" zawiera informacje o metadanych tabel utworzonych w programie Hive.
  • Klaster Hadoop w systemie HDFS będzie przechowywać wyniki zapytania i dane załadowane do tabel.

Różne tryby ula

W zależności od wielkości danych Hive może działać w dwóch trybach.

  1. Tryb lokalny

Lokalny tryb Hive jest używany, gdy

  • Zainstalowany Hadoop ma jeden węzeł danych i jest instalowany w trybie pseudo.
  • Rozmiar danych pojedynczego komputera lokalnego jest mniejszy.
  • Szybkie przetwarzanie na lokalnych komputerach dzięki mniejszym zestawom danych.
  1. Tryb zmniejszania mapy

Tryb zmniejszania mapy w ulu jest używany, gdy

  • Hadoop ma wiele węzłów danych z rozproszonymi danymi w różnych węzłach.
  • Rozmiar danych jest większy i wymagane jest równoległe wykonanie zapytania.
  • Duże zestawy danych mogą być przetwarzane z lepszą wydajnością.

Charakterystyka ula

  • Dane są ładowane do tabel po utworzeniu tabel i baz danych.
  • Hive może zarządzać tylko uporządkowanymi danymi przechowywanymi w tabelach i wykonywać ich zapytania.
  • Struktura Hive ma funkcje optymalizacji i użyteczności podczas radzenia sobie z ustrukturyzowanymi danymi, których nie ma w Map Reduce.
  • W celu ułatwienia użytkowania język inspirowany Hive SQL jest prostszym podejściem w porównaniu ze złożonym językiem programowania Map Reduce. W Hive używane są znane koncepcje tabel, wierszy, kolumn itp.
  • Aby zwiększyć wydajność zapytań, Hive może partycjonować dane przy użyciu struktury katalogów.
  • Hive zawiera ważny komponent o nazwie „Metastore”, który znajduje się w relacyjnej bazie danych i przechowuje informacje o schemacie. Do interakcji z Hive można użyć dwóch metod: Web GUI i Java Database Connectivity (JDBC).
  • W większości interakcji używany jest interfejs wiersza poleceń (CLI). Interfejs wiersza polecenia służy do pisania zapytań Hive przy użyciu języka zapytań Hive (HQL).
  • Składnia HQL jest podobna do składni SQL.
  • Hive obsługuje cztery formaty plików; TEXTFILE, SEQUENCEFILE, ORC i RCFILE (Rekordowy plik kolumnowy).

Wniosek

Apache Hive to narzędzie do magazynowania danych typu open source, składające się z głównych komponentów, takich jak klienci Hive, usługi Hive, struktura przetwarzania i zarządzanie zasobami oraz rozproszony magazyn.

Jest zbudowany na bazie ekosystemu Hadoop do przetwarzania struktur i częściowo ustrukturyzowanych danych. Interfejs użytkownika udostępniany przez Hive umożliwia użytkownikowi przesyłanie zapytań w języku zapytań Hive (HQL). Jest to przekazywane do kompilatora w celu wygenerowania planu wykonania. Plan jest ostatecznie realizowany przez silnik wykonawczy.

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.

Sprawdź nasze inne kursy inżynierii oprogramowania w upGrad.

Poprowadź rewolucję technologiczną opartą na danych

7 STUDIUM PRZYPADKU I PROJEKTY. POMOC W PRACY Z NAJLEPSZYMI FIRMAMI. DEDYKOWANY MENTOR STUDENT.
Zaawansowany program certyfikacji w Big Data z IIIT Bangalore