Jak zainstalować HIVE na Ubuntu (Podręcznik pobierania i konfiguracji)

⚡ Inteligentne podsumowanie

Apache Hive instaluje się na Ubuntu jako cienka warstwa magazynu danych ponad już działającym klastrem Hadoop, więc konfiguracja polega głównie na rozpakowaniu jednego archiwum i wskazaniu trzech zmiennych środowiskowych odpowiednim katalogom.

  • 🧱 Najpierw Hadoop: Każdy demon Hadoop musi być już uruchomiony, ponieważ Hive przechowuje dane tabelaryczne w systemie HDFS i przesyła swoje zadania do klastra.
  • (Tj. Pobierz źródło: Wersje binarne pochodzą ze strony lustrzanej Apache, a linia 3.x zakończyła wsparcie techniczne w październiku 2024 r.
  • 📁 Dwa pliki konfiguracyjne: HIVE_HOME należy do pliku bashrc, a HADOOP_HOME należy do pliku hive-config.sh w katalogu bin Hive.
  • 💾 Foldery HDFS: Przed utworzeniem pierwszej tabeli katalogi magazynu i tmp muszą znajdować się w systemie HDFS i mieć uprawnienia zapisu grupy.
  • 🧩 Krok schematu: Narzędzie schematool tworzy tabele metamagazynu, a Hive 3.x i nowsze wersje odmawiają uruchomienia się na niezainicjowanym schemacie.
  • 🔨 Szybko zweryfikuj: Polecenie create, po którym następuje polecenie describe, dowodzi, że powłoka, metamagazyn i HDFS są poprawnie ze sobą połączone.

Jak zainstalować Hive na Ubuntu

Przed instalacją Apache Hive potrzebujemy dedykowanego Hadoop instalacja, uruchomienie i działanie ze wszystkimi demonami Hadoop.

Aby zainstalować Hadoop, zaznacz to link.

Gdy wszystkie demony Hadoop działają poprawnie, wystarczy rozpocząć instalację części Hive. Poniższy przewodnik obejmuje cztery etapy:

Proces instalacji Apache Hive

  1. Wymagania wstępne i zgodność wersji
  2. Instalacja ula
  3. Inicjalizacja schematu Metastore
  4. Polecenia powłoki ula

Wymagania wstępne dotyczące instalacji Apache Hive na Ubuntu

Hive nie jest samodzielną bazą danych. To warstwa zapytań, która tłumaczy HiveQL na zadania uruchamiane w istniejącym klastrze, więc prawie każda nieudana instalacja traces z powrotem do brakującego warunku wstępnego, a nie do samego Hive. Przed pobraniem czegokolwiek sprawdź następujące kwestie:

  • Obsługiwany JDK. Hive 4.1.x działa na JDK 17, natomiast Hive 4.2.x podnosi minimalne wymagania do JDK 21. Sprawdź wersję za pomocą java -version i upewnij się, że JAVA_HOME jest wyeksportowany.
  • Działający klaster Hadoop. Zarówno NameNode, jak i DataNode muszą być aktywne. Uruchom JPS i sprawdź, czy NameNode, DataNode, ResourceManager i NodeManager znajdują się na liście.
  • Dostęp do zapisu w systemie HDFS. Konto, na którym uruchamiana jest aplikacja Hive, potrzebuje uprawnień do tworzenia katalogów HDFS.
  • Pasujące wersje. Hive 4.2.0 został stworzony na bazie Hadoop 3.4.1 i Tez 0.10.5. Linia Hive 3.x zakończyła wsparcie w październiku 2024 roku, więc nowa instalacja powinna objąć linię 4.x.
  • Bezpłatne zasoby. Konfiguracja do nauki na pojedynczym węźle jest wygodna, jeśli ma około 4 GB pamięci RAM i 20 GB wolnego miejsca na dysku.

Po zaznaczeniu tych pól, poniższa sekwencja pobierania i rozpakowywania przebiegnie bez niespodzianek.

Jak zainstalować Hive na Ubuntu

Poniżej znajduje się krok po kroku proces instalacji Hive Ubuntu:

Krok 1) Pobierz i zainstaluj Hive na Ubuntu

Aby pobrać stabilną wersję Hive, zapoznaj się z Apache URL jak wspomniano poniżej.

https://www.apache.org/dyn/closer.cgi/hive/ — idź do URL i wybierz łącze do pobrania serwera lustrzanego Apache. Strona pobierania Apache Hive wyświetla pary wydań z poszczególnymi wersjami Hadoop.

Zostanie otwarta strona lustrzana z listą dostępnych katalogów wydań Hive, jak pokazano poniżej.

Strona lustrzana Apache zawierająca listę dostępnych katalogów wydań Apache Hive

Wybierz najnowszą wersję instalatora Hive. (W moim przypadku jest to hive – 3.1.2.) W folderze wydania znajdują się obok siebie archiwa binarne i źródłowe.

Folder wydania Hive pokazujący archiwa dystrybucji binarnej i źródłowej

Kliknij na plik bin, aby rozpocząć pobieranie.

Monit przeglądarki o pobranie pliku dystrybucyjnego Apache-hive bin tar.gz

Krok 2) Przykładtracdo pliku tar

Przejdź do lokalizacji pobranego pliku tar, a następnietracAby zainstalować Hive na komputerze, wykonaj następujące polecenie: Ubuntu w twoim systemie.

tar -xvf  apache-hive-3.1.2-bin.tar.gz

Terminal wyświetla każdy plik podczas rozpakowywania go do nowego katalogu Hive.

Wyjście terminala podczas otwierania archiwum tar Hivetracted na Ubuntu

Krok 3) Umieść różne właściwości konfiguracyjne w Apache Hive

W tym kroku zrobimy dwie rzeczy:

  1. Umieszczanie ścieżki domowej Hive w pliku bashrc
  2. Umieszczanie ścieżki domowej Hadoop w pliku hive-config.sh

1) Podaj ścieżkę Hive w ~/.bashrc

Otwórz plik do edycji za pomocą polecenia pokazanego poniżej.

Polecenie otwierające plik bashrc w celu edycji zmiennych środowiskowych Hive

  • Otwórz plik bashrc, jak pokazano na powyższym zrzucie ekranu
  • W pliku bashrc podaj ścieżkę domową Hive, tj. ścieżkę HIVE_HOME, i wyeksportuj ją w sposób pokazany poniżej

Dodano wiersze eksportu HIVE_HOME i PATH na końcu pliku bashrc

Code do umieszczenia w bashrc:

export HIVE_HOME="/home/guru99hive/apache-hive-1.2.0-bin"
export PATH=$PATH:$HIVE_HOME/bin

Załaduj ponownie plik za pomocą source ~ / .bashrc więc nowa ścieżka zostanie zastosowana w bieżącej sesji terminalowej.

2) Eksportowanie ścieżki Hadoop w pliku hive-config.sh

Aby komunikować się z ekosystemem Hadoop, definiujemy ścieżkę główną Hadoop w pliku konfiguracyjnym Hive. Otwórz plik hive-config.sh, jak pokazano poniżej.

Polecenie służące do otwarcia pliku hive-config.sh z katalogu bin Hive

Podaj ścieżkę HADOOP_HOME w pliku hive-config.sh, jak pokazano poniżej.

Ścieżka HADOOP_HOME zadeklarowana w pliku hive-config.sh

Krok 4) Utwórz katalogi Hive w Hadoop

Aby komunikować się z Hadoopem, musimy utworzyć katalogi w Hadoopie, jak pokazano poniżej. Hive zapisuje zarządzane dane tabelaryczne do katalogu magazynu, a dane wyjściowe do katalogu tmp.

Polecenia HDFS tworzące katalogi tmp i warehouse Hive

Nadanie uprawnień root do tworzenia folderów Hive w Hadoop. Jeśli nie pojawi się żaden komunikat o błędzie, oznacza to, że Hadoop pomyślnie nadał uprawnienia do folderów Hive.

Terminal pokazujący uprawnienia zapisu grupy przyznane folderom Hive w systemie HDFS

Krok 5) Wejdź do powłoki Hive

Aby dostać się do powłoki Hive, wejdź w '. /ul' polecenie jak pokazano poniżej.

Monit powłoki Hive otwarty z katalogu bin Hive na Ubuntu

Jak zainicjować schemat metadanych Hive

Hive przechowuje każdą nazwę tabeli, nazwę kolumny i typ danych w relacyjnym magazynie zwanym metamagazynem. Po nowej instalacji ten magazyn jest pusty, a od wersji Hive 3.x powłoka odmawia uruchomienia, dopóki nie powstaną tabele schematu. Narzędzie schematool, które znajduje się w katalogu bin Hive, tworzy te tabele.

W przypadku konfiguracji do nauki dla pojedynczego użytkownika wystarczająca jest dołączona baza danych Derby:

$HIVE_HOME/bin/schematool -dbType derby -initSchema

Polecenie drukuje wersję schematu, którą utworzyło i kończy się na schemaTool ukończonyDerby zapisuje swoje pliki w katalogu, z którego uruchomiono polecenie, dlatego zawsze uruchamiaj Hive z tego samego katalogu.

Derby akceptuje tylko jedną aktywną sesję na raz, co czyni go nieodpowiednim dla klastra współdzielonego. Punkt Hive w MySQL zamiast tego dodaj właściwości połączenia do hive-site.xml i uruchom ponownie narzędzie z innym typem bazy danych:

$HIVE_HOME/bin/schematool -dbType mysql -initSchema

Pełną listę nieruchomości i umiejscowienie sterowników znajdziesz w przewodniku, jak to zrobić skonfiguruj metamagazyn Hive za pomocą MySQLWarto pamiętać jeszcze o dwóch flagach:

  • -informacje raportuje wersję schematu aktualnie zapisaną w metamagazynie bez wprowadzania żadnych zmian.
  • -upgradeSchema migruje istniejący metamagazyn do wersji schematu nowo zainstalowanej wersji Hive.

Po ustaleniu schematu powłoka jest gotowa na zaakceptowanie pierwszego polecenia HiveQL.

Polecenia powłoki ula

Tutaj utworzymy przykładową tabelę za pomocą polecenia powłoki Hive „create” z nazwami kolumn.

Przykładowy kod do tworzenia bazy danych w Hive. Poniższy zrzut ekranu pokazuje kolejno polecenia create i describe.

Dane wyjściowe powłoki Hive dla poleceń „Create Table” i „Opisz produkt”

Na powyższym zrzucie ekranu możemy zaobserwować następujące rzeczy:

1) Utworzenie przykładowej tabeli z nazwami kolumn w Hive

  • Tutaj nazwa tabeli to „produkt” z trzema nazwami kolumn produkt, nazwa i cena
  • Nazwy trzech kolumn są oznaczone odpowiednim typem danych
  • Wszystkie pola zakończone są przecinkiem ', '

2) Wyświetlanie informacji z tabeli Hive

  • Korzystając z polecenia „describe” możemy zobaczyć informacje o tabeli obecne w Hive
  • Tutaj wyświetlane są nazwy kolumn z odpowiadającymi im typami danych obecnymi w schemacie tabeli
  • Na końcu wyświetli się czas wykonania tego polecenia i liczba pobranych wierszy

Przykładowy kod do tworzenia bazy danych w Ul (do samodzielnej kontroli)

1) Utwórz tabelę product(product int, pname string, price float)

Row format delimited
Fields terminated by ',';

2) opisać produkt;

Gdy tabela odpowie na polecenie „Opisz”, powłoka, metamagazyn i HDFS zostaną ze sobą połączone. Od tego momentu ta sama sesja akceptuje szerszy tworzenie, modyfikowanie i usuwanie tabeli oświadczenia i sortuj według, grupuj według i klastruj według zapytania.

Typowe błędy instalacji Hive Ubuntu i jak je naprawić

Większość błędów pierwszego uruchomienia pochodzi ze środowiska wokół Hive, a nie z samego Hive. Poniższa tabela mapuje najczęściej pojawiające się komunikaty do ich przyczyny i polecenia, które je usuwa.

Wiadomość na ekranie Prawdopodobna przyczyna Fix
ul: polecenie nie znalezione HIVE_HOME/bin nie znajduje się w ścieżce PATH Sprawdź ponownie linie eksportu w bashrc, a następnie uruchom source ~ / .bashrc
Informacje o wersji nie zostały znalezione w metamagazynie Schemat metamagazynu nigdy nie został zainicjowany Uruchom schematool z opcją -initSchema dla wybranego typu bazy danych
Wywołanie localhost:9000 nie powiodło się z powodu wyjątku połączenia HDFS nie działa Uruchom demony Hadoop i sprawdź, czy NameNode i DataNode są widoczne JPS
Węzeł nazw jest w trybie awaryjnym NameNode nadal znajduje się w trybie bezpiecznego uruchamiania Wyjdź z trybu awaryjnego za pomocą hdfs dfsadmin -tryb awaryjny wyjdź
Odmowa dostępu: access=WRITE w /user/hive/warehouse Katalog magazynu nie ma uprawnień do zapisu dla grupy Zastosuj ponownie hdfs dfs -chmod g+w w katalogach magazynu i tmp
NoSuchMethodError w Preconditions.checkArgument Hive i Hadoop dostarczają różne wersje słoików z guawą Usuń starszy plik jar Guava z katalogu biblioteki Hive i skopiuj w jego miejsce plik jar Hadoop

Szybkim sposobem na oddzielenie problemu Hive od problemu Hadoop jest uruchomienie JPS Po pierwsze. Jeśli brakuje demonów, błąd leży po stronie klastra; jeśli są obecne, a powłoka nadal ulega awarii, błąd leży w konfiguracji Hive lub schemacie metadanych. Gdy powłoka jest stabilna, Operatorzy HiveQL i wbudowane funkcje odniesienie jest naturalnym następnym krokiem.

FAQ

Zarządzana tabela umożliwia Hive posiadanie zarówno metadanych, jak i plików, więc usuńping Usuwa dane z katalogu magazynu. Tabela zewnętrzna rejestruje tylko metadane i usuwaping pozostawia podstawowe pliki nietknięte.

Hive działa wszędzie tam, gdzie działają maszyny wirtualne Java i Hadoop, ale skrypty powłoki zakładają układ Unix. Windows większość zespołów używa WSL2 lub obrazu Docker; macOS to samo archiwum tar działa po wyeksportowaniu JAVA_HOME i HADOOP_HOME.

Beeline to klient JDBC, który łączy się z HiveServer2 zamiast ładować Hive w procesie powłoki. Obsługuje on równoczesnych użytkowników i uwierzytelnianie, a starszy interfejs wiersza poleceń Hive jest przestarzały, więc nowe instalacje powinny być ujednolicone w Beeline.

Nowoczesne silniki przetwarzają historyczne statystyki zapytań w wyuczonych modelach kosztów, które przewidują rozmiary skanów, przycinanie partycji i kolejność dołączania. Dostawcy usług chmurowych udostępniają te same sygnały, co automatyczne rekomendacje dotyczące kompresji plików, układu partycji i rozmiaru kontenerów.

Copilot szybko tworzy szkice eksportów bashrc, bloków hive-site.xml i wywołań schematool, a programy uruchamiające agenty mogą je uruchamiać w środowisku testowym. Dane wyjściowe należy traktować jako pierwszy szkic: numery wersji, porty i ścieżki katalogów nadal wymagają weryfikacji w klastrze.

Około 4 GB pamięci RAM i 20 GB wolnego miejsca na dysku to wystarczająca ilość do nauki, ponieważ sam Hive jest cienkim klientem. Rozmiar węzłów produkcyjnych jest zależny od klastra Hadoop i bazy danych metastore, a nie od Hive.

Rozpakuj nową wersję obok starej, zmień punkt na HIVE_HOME, a następnie uruchom schematool z opcją -upgradeSchema, aby metamagazyn się zgadzał. Usunięcie polega po prostu na usunięciu katalogu Hive i usunięciu…ping linie eksportowe z bashrc; dane magazynu HDFS pozostają aktywne.

Nie. MapReduce jest przestarzały jako silnik wykonawczy Hive, a Hive 4.x domyślnie działa na Apache Tez. MapaReduce Warto nadal rozumieć ten model, ponieważ Tez stosuje ten sam ukierunkowany model pracy.

Podsumuj ten post następująco: