Co to jest Hive w Hadoop? Historia i jej składniki
Opublikowany: 2021-10-07Apache Hive to system magazynowania oparty na otwartym kodzie źródłowym, który jest oparty na Hadoop. Hive służy do wysyłania zapytań i analizowania ogromnych zestawów danych przechowywanych w Hadoop. Działa poprzez przetwarzanie zarówno danych ustrukturyzowanych, jak i częściowo ustrukturyzowanych.
W tym artykule porozmawiajmy szczegółowo o Hive w Hadoop, jego historii, znaczeniu, architekturze Hive, niektórych kluczowych funkcjach, kilku ograniczeniach i nie tylko!
Spis treści
Co to jest ul?
Apache Hive to po prostu oprogramowanie do hurtowni danych zbudowane przy użyciu Hadoop jako bazy. Przed Apache Hive inżynierowie Big Data musieli pisać złożone zadania redukujące mapę, aby wykonywać zadania związane z zapytaniami. Z drugiej strony, dzięki Hive sprawy drastycznie się zmniejszyły, ponieważ inżynierowie muszą teraz znać tylko język SQL.
Hive pracuje w języku znanym jako HiveQL (podobnym do SQL), co ułatwia inżynierom, którzy mają praktyczną wiedzę na temat SQL. HiveQL automatycznie tłumaczy zapytania SQL na zadania redukujące mapę, które może wykonać Hadoop.
W ten sposób Apache przedstawia koncepcję abstrakcji w działaniu Hadoop i umożliwia ekspertom ds. danych radzenie sobie ze złożonymi zestawami danych bez uczenia się języka programowania Java do pracy z Hive. Apache Hive działa na Twojej stacji roboczej i konwertuje zapytania SQL na zadania z redukcją mapy, które mają być wykonywane w klastrze Hadoop. Hive kategoryzuje wszystkie dane w tabelach, zapewniając w ten sposób strukturę wszystkim danym obecnym w HDFS.
Historia ula Apache
Zespół ds. infrastruktury danych przedstawił Apache Hive na Facebooku. Jest to jedna z technologii, która jest aktywnie wykorzystywana na Facebooku do wielu celów wewnętrznych. Przez lata Apache Hive uruchamiał tysiące zadań w klastrze z setkami użytkowników dla różnych aplikacji.
Klaster Hive-Hadoop na Facebooku przechowuje ponad 3 PB nieprzetworzonych danych. Może codziennie ładować 15 TB danych w czasie rzeczywistym. Stamtąd Apache Hive rozwinął się jeszcze bardziej w swoich przypadkach użycia, a dziś jest używany przez takich gigantów jak IBM, Yahoo, Amazon, FINRA, Netflix i nie tylko.
Uzyskaj certyfikat naukowy online z najlepszych uniwersytetów na świecie. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.
Dlaczego potrzebny jest ula Apache?
Przed wymyśleniem Apache Hive Facebook borykał się z wieloma wyzwaniami, takimi jak stale rosnący rozmiar danych do analizy i całkowita niespójność w tym dużym zestawie danych. Wyzwania te utrudniały Facebookowi płynną obsługę zadań wymagających dużej ilości danych. Tradycyjne struktury oparte na RDBMS nie wystarczały do kontrolowania stale rosnącej presji.
Facebook najpierw wprowadził redukcję mapy, aby sprostać tym wyzwaniom, ale potem jeszcze bardziej ją uprościł, oferując Apache Hive, który działa na HiveQL.
Ostatecznie Apache Hive okazał się bardzo potrzebnym zbawcą i pomógł Facebookowi przezwyciężyć różne wyzwania. Teraz, korzystając z Apache Hive, Facebook był w stanie osiągnąć:
- Ewolucja i elastyczność schematu.
- Partycjonowanie i wiaderkowanie tabel.
- Definiowanie tabel Hive bezpośrednio w HDFS.
- Dostępność sterowników ODBC/JDBC.
Podsumowując, Apache Hive pomógł programistom zaoszczędzić dużo czasu, który w przeciwnym razie zostałby przeznaczony na pisanie złożonych zadań redukujących mapy. Hive zapewnia prostotę podsumowania, analizy, zapytań i eksploracji danych.
Ponieważ Apache Hive jest zależny tylko od SQL, jest szybką i skalowalną platformą, która jest wysoce rozszerzalna. Jeśli rozumiesz podstawowe zapytania za pomocą SQL, będziesz w stanie pracować z Apache Hive w mgnieniu oka! Oferuje również dostęp do plików w różnych magazynach danych, takich jak HBase i HDFS.
Architektura ula Apache
Teraz, gdy rozumiesz znaczenie i pojawienie się Apache Hive, przyjrzyjmy się głównym komponentom Apache Hive. Architektura Apache Hive obejmuje:
1. Metastore
Służy do przechowywania metadanych dla każdej z tabel. Metadane zazwyczaj składają się z lokalizacji i schematu. Metastore składa się również z metadanych partycji, które pomagają inżynierom śledzić postęp różnych zestawów danych, które zostały rozproszone w klastrach. Przechowywane tutaj dane są w tradycyjnym formacie RDBMS.
2. Kierowca
Sterownik w Apache Hive jest jak kontroler odpowiedzialny za odbieranie instrukcji HiveQL. Następnie rozpoczyna wykonywanie tych instrukcji, tworząc różne sesje. Kierowca jest również odpowiedzialny za monitorowanie i zarządzanie cyklem życia wdrożenia i jego postępami po drodze. Sterowniki przechowują wszystkie ważne metadane generowane podczas wykonywania instrukcji HiveQL. Działa również jako punkt gromadzenia danych uzyskanych po operacji map-redukcja.
3. Kompilator
Kompilator służy do kompilowania zapytań HiveQL. Konwertuje zapytania generowane przez użytkowników w niezawodny plan wykonania, który zawiera wszystkie zadania, które należy wykonać. Plan obejmuje również wszystkie kroki i procedury wymagane do śledzenia mapy-redukcja w celu uzyskania wymaganych wyników. Kompilator Hive konwertuje zapytanie wejściowe użytkownika na AST (drzewo składni abstrakcyjnej), aby sprawdzić błędy czasu kompilacji lub problemy ze zgodnością. AST jest przekształcany w ukierunkowany wykres acykliczny (DAG), gdy żaden z problemów nie zostanie napotkany.
4. Optymalizator
Optymalizator wykonuje wszystkie przekształcenia planu wykonania wymagane do osiągnięcia zoptymalizowanego DAG. Czyni to, agregując wszystkie przekształcenia razem, na przykład konwertując tablicę pojedynczych sprzężeń w pojedyncze sprzężenia – w celu zwiększenia wydajności. Ponadto optymalizator może podzielić różne zadania, stosując przekształcenie na danych przed wykonaniem zredukowanej operacji — ponownie, aby poprawić ogólną wydajność.
5. Wykonawca –
Gdy Apache Hive wykona zadania kompilacji i optymalizacji, executor wykonuje ostateczne wykonania. Dba o potokowanie zadań i doprowadzenie ich do końca.
6. CLI, interfejs użytkownika i serwer Thrift
Interfejs wiersza polecenia (CLI) służy do udostępniania użytkownikowi zewnętrznemu interfejsu użytkownika umożliwiającego interakcję z różnymi funkcjami Apache Hive. CLI jest tym, co tworzy interfejs użytkownika Hive dla użytkowników końcowych. Z drugiej strony serwer Thrift umożliwia klientom zewnętrznym interakcję z Hive przez sieć, podobnie jak protokoły ODBC lub JDBC.
Podstawowe cechy Apache Hive
Jak wspomniano wcześniej, Apache Hive przyniósł bardzo potrzebną zmianę w sposobie, w jaki inżynierowie pracowali nad zadaniami związanymi z danymi. Java nie była już językiem docelowym, a programiści mogli pracować tylko przy użyciu SQL. Oprócz tego istnieje kilka innych podstawowych funkcji Hive, takich jak:
- Apache Hive oferuje podsumowywanie danych, analizę i zapytania w znacznie bardziej uproszczony sposób.
- Hive obsługuje tabele wewnętrzne i zewnętrzne, co umożliwia pracę z danymi zewnętrznymi bez przenoszenia ich do H DFS.
- Apache Hive doskonale sprawdza się w przypadku niskopoziomowych wymagań interfejsu Hadoop.
- Dzięki obsłudze partycjonowania danych na poziomie tabel, Apache Hive pomaga poprawić ogólną wydajność.
- Posiada optymalizator oparty na regułach do optymalizacji różnych planów logicznych.
- Działa na HiveQL, języku podobnym do SQL, co oznacza, że programiści nie muszą opanować innego języka, aby pracować z dużymi zestawami danych.
- Zapytania w Hive są niezwykle proste, podobne do SQL.
- Możemy również uruchamiać zapytania Ad-hoc do analizy danych za pomocą Hive.
Ograniczenie ula Apache
Ponieważ świat Data Science jest stosunkowo nowy i stale ewoluujący, nawet najlepsze narzędzia dostępne na rynku mają pewne ograniczenia. Rozwiązanie tych ograniczeń zapewni nam kolejne najlepsze narzędzia. Oto kilka ograniczeń pracy z Apache Hive, o których należy pamiętać:
- Hive nie oferuje aktualizacji na poziomie wiersza i zapytań w czasie rzeczywistym.
- Apache Hive zapewnia akceptowalny czas oczekiwania na interaktywność.
- Nie jest najlepszy do pracy z transakcjami online.
- Opóźnienie w zapytaniach Hive jest zazwyczaj wyższe niż średnia.
Na zakończenie
Apache Hive przyniósł radykalne i niesamowite ulepszenia w sposobie pracy inżynierów danych z dużymi zestawami danych. Co więcej, całkowicie eliminując potrzebę używania języka programowania Java, Apache Hive zapewnił inżynierom danych znajomy komfort. Dzisiaj możesz bezproblemowo pracować z Apache Hive, jeśli masz podstawową wiedzę na temat zapytań SQL.
Jak wspomnieliśmy wcześniej, Data Science to dynamiczna i stale ewoluująca dziedzina. Jesteśmy pewni, że nadchodzące lata przyniosą nowe narzędzia i struktury, które jeszcze bardziej uproszczą sprawę. Jeśli jesteś entuzjastą danych, który chce poznać wszystkie narzędzia związane z branżą Data Science, teraz jest najlepszy czas na zapoznanie się z narzędziami Big Data, takimi jak Hive.
W upGrad opiekujemy się i prowadzimy studentów z całego świata oraz pomagamy ludziom z różnych środowisk w ugruntowaniu pozycji w branży Data Science. Nasi doświadczeni nauczyciele, partnerstwa branżowe, pomoc w zakresie stażu i solidna sieć absolwentów zapewniają, że nigdy nie będziesz sam w tej podróży. Sprawdź nasz program Executive PG w dziedzinie nauki o danych i zapisz się na ten, który jest dla Ciebie odpowiedni – my zajmiemy się resztą!
Apache Hive to platforma lub system używany do magazynowania, wykonywania zapytań i analizowania dużych zestawów danych. Apache Hive został wprowadzony przez Facebooka w celu usprawnienia jego wewnętrznych operacji i od tego czasu stanowi integralną część spektrum Data Science. Nie! Do rozpoczęcia pracy z Apache Hive wystarczy praktyczna znajomość języka SQL! Apache Hive jest zwykle używany do OLAP (przetwarzania wsadowego) i zazwyczaj nie jest używany do OLTP ze względu na operacje na bazie danych w czasie rzeczywistym.Co to jest Apache Hive w Hadoop?
Czy muszę nauczyć się jakiegoś konkretnego języka, aby pracować z Apache Hive w Hadoop?
Do czego NIE służy Apache Hive?