Hive jest szeroko stosowanym narzędziem Big Data Analytics w biznesie i jest fantastycznym miejscem do rozpoczęcia, jeśli dopiero zaczynasz korzystać z Big Data. Ta lekcja Apache Hive omawia podstawy Apache Hive, dlaczego ul jest niezbędny, jego cechy i wszystko, co powinieneś wiedzieć.
Najpierw przyjrzyjmy się strukturze Hadoop, na której opiera się Apache Hive.
Apache Hadoopa
Apache Hadoop jest darmowym i open-source platforma do przechowywania i przetwarzania dużych zbiorów danych o rozmiarach od gigabajtów do petabajtów. Hadoop umożliwia grupowanie wielu komputerów w celu równoległej analizy ogromnych zestawów danych, zamiast konieczności przechowywania i analizy danych na jednym dużym komputerze.
MapReduce i Hadoop Distributed File System to dwa składniki:
- MapaReduce – MapReduce to technika programowania równoległego do obsługi ogromnych ilości uporządkowanych, częściowo ustrukturyzowanych i nieustrukturyzowanych danych w klastrach sprzętowych.
- HDFS – HDFS (Hadoop Distributed File System) to składnik platformy Hadoop, który przechowuje i przetwarza dane. To odporny na błędy system plików, który działa na standardowym sprzęcie
Różne podprojekty (narzędzia) w ekosystemie Hadoop, w tym Sqoop, Pig i Hive, służą do wspomagania modułów Hadoop.
- Ul – Hive to platforma do pisania skryptów w stylu SQL, które wykonują obliczenia MapReduce.
- Świnia – Pig to proceduralny język programowania, który można wykorzystać do stworzenia skryptu dla procesów MapReduce.
- Łyżka – Sqoop to narzędzie do importowania i eksportowania danych pomiędzy HDFS i RDBMS.
Co to jest Ula Apache?
Apache Hive jest oprogramowaniem typu open source hurtownia danych program do odczytu, zapisu i zarządzania ogromnymi zestawami danych przechowywanymi bezpośrednio w Apache Hadoop Distributed File System (HDFS) lub innych systemach przechowywania danych, takich jak Apache HBase.
Deweloperzy SQL mogą używać Hive do tworzenia instrukcji Hive Query Language (HQL) na potrzeby zapytań i analizy danych, które są porównywalne ze zwykłymi instrukcjami SQL. Został stworzony, aby ułatwić programowanie MapReduce, eliminując potrzebę uczenia się i pisania długiego kodu Java. Zamiast tego możesz pisać swoje zapytania w HQL, a Hive zbuduje mapę i zredukuje funkcje za Ciebie.
Interfejs Apache Hive podobny do języka SQL stał się złotym standardem wykonywania wyszukiwań ad hoc, podsumowywania i analizowania danych Hadoop. Po umieszczeniu w chmurze sieci komputerowe, to rozwiązanie jest szczególnie opłacalne i skalowalne, dlatego wiele firm, w tym Netflix i Amazon, nadal rozwija i ulepsza Apache Hive.
Historia
Podczas swojego pobytu na Facebooku Joydeep Sen Sarma i Ashish Thusoo współtworzyli Apache Hive. Oboje zdali sobie sprawę, że aby jak najlepiej wykorzystać Hadoop, będą musieli stworzyć dość skomplikowane zadania Java Map-Reduce. Zdali sobie sprawę, że nie będą w stanie wykształcić swoich szybko rozwijających się zespołów inżynieryjnych i analitycznych w zakresie umiejętności potrzebnych do wykorzystania Hadoop w całej firmie. Inżynierowie i analitycy często wykorzystywali SQL jako interfejs użytkownika.
Chociaż SQL mógł zaspokoić większość potrzeb analitycznych, programiści zamierzali również uwzględnić programowalność Hadoopa. Apache Hive powstał z tych dwóch celów: języka deklaratywnego opartego na SQL, który umożliwiał również programistom wprowadzanie własnych skryptów i programów, gdy SQL nie wystarczał.
Został również opracowany w celu przechowywania scentralizowanych metadanych (opartych na Hadoop) o wszystkich zestawach danych w firmie, aby ułatwić budowanie organizacji opartych na danych.
Jak działa Apache Hive?
W skrócie, Apache Hive konwertuje program wejściowy napisany w języku HiveQL (podobnym do SQL) na jedno lub więcej zadań Java MapReduce, Tez lub Spark. (Wszystkie te aparaty wykonawcze są zgodne z Hadoop YARN). Następnie Apache Hive porządkuje dane w tabelach dla systemu HDFS rozproszonego systemu plików Hadoop i wykonuje zadania w klastrze, aby uzyskać odpowiedź.
Dane
Tabele Apache Hive są uporządkowane w taki sam sposób, jak tabele w relacyjnej bazie danych, z jednostkami danych o rozmiarach od większych do mniejszych. Bazy danych składają się z tabel podzielonych na działy, które są dalej podzielone na segmenty. HiveQL (Hive Query Language) służy do uzyskiwania dostępu do danych, które można zmieniać lub dołączać. Dane tabeli są serializowane w każdej bazie danych, a każda tabela ma swój własny katalog HDFS.
Architektura
Teraz porozmawiamy o najważniejszym aspekcie Hive Architecture. Składniki Apache Hive są następujące:
Magazyn metadanych — Śledzi informacje o każdej tabeli, takie jak jej struktura i lokalizacja. Metadane partycji są również zawarte w Hive. Dzięki temu kierowca może śledzić postęp różnych zestawów danych rozmieszczonych w klastrze. Dane są przechowywane w konwencjonalnym formacie RDBMS. Metadane Hive są niezwykle ważne, aby kierowca mógł śledzić dane. Serwer backupu na bieżąco duplikuje dane, aby w przypadku utraty danych można je było odzyskać.
Kierowca – Instrukcje HiveQL są odbierane przez sterownik, który działa jako kontroler. Poprzez nawiązanie sesji drajwer inicjuje wykonanie instrukcji. Śledzi długość życia i postępy dyrektora. Podczas wykonywania instrukcji HiveQL sterownik zapisuje wymagane metadane. Służy również jako punkt zbierania danych lub wyników zapytania po procesie Zmniejsz.
kompilator – Wykonuje kompilację zapytania HiveQL. Zapytanie jest teraz konwertowane na plan wykonania. Zadania są wymienione w planie. Zawiera również kroki, które MapReduce musi wykonać, aby uzyskać wynik przetłumaczony przez zapytanie. Zapytanie jest konwertowane na drzewo składni abstrakcyjnej przez kompilator Hive (AST). Konwertuje AST na ukierunkowany graf acykliczny po sprawdzeniu zgodności i błędów w czasie kompilacji (DAG).
Optimizer – Optymalizuje DAG wykonując różne zmiany na planie wykonania. Łączy przekształcenia w celu zwiększenia wydajności, takie jak przekształcanie potoku sprzężeń w jedno sprzężenie. Aby zwiększyć szybkość, optymalizator może podzielić czynności, takie jak zastosowanie transformacji do danych przed wykonaniem operacji redukcji.
Wykonawca – Wykonawca uruchamia zadania po zakończeniu kompilacji i optymalizacji. Zadania są przesyłane potokiem przez wykonawcę.
CLI, interfejs użytkownika i serwer Thrift – Interfejs wiersza polecenia (CLI) to interfejs użytkownika, który umożliwia zewnętrznemu użytkownikowi komunikowanie się z Hive. Serwer oszczędzania Hive, podobny do protokołów JDBC lub ODBC, umożliwia klientom zewnętrznym komunikację z Hive za pośrednictwem sieci.
Bezpieczeństwo
Apache Hive jest zintegrowany z zabezpieczeniami Hadoop, które używają protokołu Kerberos do wzajemnego uwierzytelniania klient-serwer. HDFS dyktuje uprawnienia dla nowo generowanych plików w Apache Hive, umożliwiając zatwierdzenie przez użytkownika, grupę i inne osoby.
Kluczowe cechy
- Hive obsługuje tabele zewnętrzne, które umożliwiają przetwarzanie danych bez przechowywania ich w HDFS.
- Umożliwia również segmentację danych na poziomie tabeli w celu zwiększenia szybkości.
- Apache Hive doskonale spełnia niskopoziomowe potrzeby interfejsu Hadoop.
- Hive ułatwia podsumowywanie danych, wykonywanie zapytań i analizę.
- HiveQL nie wymaga żadnych umiejętności programowania; wystarczy proste zrozumienie zapytań SQL.
- Możemy również używać Hive do przeprowadzania zapytań ad hoc w celu analizy danych.
- Jest skalowalny, znajomy i elastyczny.
- HiveQL nie wymaga żadnych umiejętności programowania; wystarczy proste zrozumienie zapytań SQL.
Benefity
Apache Hive umożliwia tworzenie raportów na koniec dnia, codzienne oceny transakcji, wyszukiwanie ad hoc i analizę danych. Kompleksowe informacje dostarczane przez Apache Hive dają znaczną przewagę konkurencyjną i ułatwiają reagowanie na wymagania rynku.
Oto niektóre z korzyści płynących z łatwego dostępu do takich informacji:
- Łatwość użycia – Dzięki językowi podobnemu do SQL, zapytania o dane są łatwe do zrozumienia.
- Przyspieszone wstawianie danych — Ponieważ Apache Hive odczytuje schemat bez weryfikowania typu tabeli lub definicji schematu, dane nie muszą być odczytywane, analizowane ani serializowane na dysku w wewnętrznym formacie bazy danych. Natomiast w konwencjonalnej bazie danych dane muszą być weryfikowane za każdym razem, gdy są dodawane.
- Doskonała skalowalność, elastyczność i opłacalność – Ponieważ dane są przechowywane w HDFS, Apache Hive może przechowywać setki petabajtów danych, co czyni go znacznie bardziej skalowalną opcją niż typowa baza danych. Apache Hive, jako usługa Hadoop oparta na chmurze, umożliwia klientom szybkie uruchamianie i wyłączanie serwerów wirtualnych w celu sprostania zmieniającym się obciążeniom.
- Duża pojemność robocza – Duże zbiory danych mogą obsłużyć do 100,000 XNUMX zapytań na godzinę.
Ograniczenia
- Ogólnie rzecz biorąc, zapytania Apache Hive mają bardzo duże opóźnienia.
- Obsługa podzapytań jest ograniczona.
- Zapytania w czasie rzeczywistym i zmiany na poziomie wiersza nie są dostępne w Apache Hive.
- Nie ma obsługi widoków zmaterializowanych.
- W ulu akcje aktualizacji i usuwania nie są obsługiwane.
- Nie jest przeznaczony do OLTP (proces przejściowy online).
Pierwsze kroki z Apache Hive
Apache Hive to silny partner Hadoop, który upraszcza i usprawnia przepływy pracy. Aby w pełni wykorzystać Apache Hive, niezbędna jest bezproblemowa integracja. Pierwszym krokiem jest przejście do .
1. Rój instalacyjny ze stabilnej wersji
Zacznij od pobrania najnowszej stabilnej wersji Hive z jednego z serwerów lustrzanych Apache (zobacz Ula uwolnienia). Następnie tarball należy rozpakować. Spowoduje to utworzenie podfolderu o nazwie hive-xyz (gdzie xyz to numer wydania):
Ustaw zmienną środowiskową HIVE_HOME, aby wskazywała na katalog instalacyjny:
Na koniec dodaj $ HIVE_HOME/bin do swojego PATH
:
2. Biegnący ul
Hive używa Hadoopa, więc:
- musisz mieć Hadoop na swojej drodze LUB
3. Operacja DLL
Tworzenie tabeli ula
generuje tabelę o nazwie pokes z dwiema kolumnami, z których pierwsza jest liczbą całkowitą, a druga ciągiem.
Przeglądanie tabel
Lista wszystkich tabel
Zmienianie i upuszczanie tabel
Nazwy tabel można zmieniać, a kolumny można dodawać lub zastępować:
Warto zauważyć, że REPLACE COLUMNS zastępuje wszystkie istniejące kolumny, zmieniając tylko strukturę tabeli, a nie dane. W tabeli należy użyć natywnego SerDe. REPLACE COLUMNS można również użyć do usunięcia kolumn ze schematu tabeli:
Upuszczanie stołów
Istnieje wiele dodatkowych operacji i funkcji w Apache Hive, o których możesz dowiedzieć się odwiedzając oficjalną stronę internetową.
Wnioski
Definicja Hive to interfejs programu danych do wykonywania zapytań i analizy ogromnych zestawów danych, które są oparte na Apache Hadoop. Profesjonaliści wybierają go spośród innych programów, narzędzi i oprogramowania, ponieważ jest przeznaczony głównie do obsługi obszernych danych Hive i jest prosty w użyciu.
Mam nadzieję, że ten samouczek pomoże Ci rozpocząć pracę z Apache Hive i usprawnić przepływ pracy. Daj nam znać w komentarzach.
Dodaj komentarz