Wyszukiwanie w witrynie

Jak zainstalować i skonfigurować Hive z wysoką dostępnością – część 7


Hive to model hurtowni danych w ekosystemie Hadoop. Może działać jako narzędzie ETL na platformie Hadoop. Włączanie wysokiej dostępności (HA) w Hive nie jest podobne jak w przypadku usług głównych, takich jak Namenode i Resource Manager.

Automatyczne przełączanie awaryjne nie nastąpi w Hive (Hiveserver2). Jeśli jakikolwiek Hiveserver2 (HS2) ulegnie awarii, uruchomienie zadań na tym serwerze Hiveserver2 (HS2) zakończy się niepowodzeniem. Musimy ponownie przesłać zadanie, aby mogło zostać uruchomione na innym HiveServer2. Zatem włączenie HA na HS2 to nic innego jak zwiększenie liczby komponentów HS2 w Clustrze.

W tym artykule zobaczymy, jak zainstalować i włączyć Wysoką dostępność Hive.

Wymagania

  • Najlepsze praktyki dotyczące wdrażania serwera Hadoop w CentOS/RHEL 7 – część 1
  • Konfigurowanie wymagań wstępnych Hadoop i zwiększanie zabezpieczeń — część 2
  • Jak zainstalować i skonfigurować menedżera Cloudera na CentOS/RHEL 7 – część 3
  • Jak zainstalować CDH i skonfigurować rozmieszczenie usług w CentOS/RHEL 7 – część 4
  • Jak skonfigurować wysoką dostępność dla Namenode – część 5
  • Jak skonfigurować wysoką dostępność Menedżera zasobów — część 6

Zacznijmy…

Instalacja i konfiguracja Hive

1. Zaloguj się do Cloudera Manager pod poniższym adresem URL i przejdź do Cloudera Manager –> Dodaj usługę .

http://13.233.129.39:7180/cmf/home

2. Wybierz usługę „Hive”.

3. Przypisz usługi do węzłów.

  • Brama – jest to usługa klienta, za pośrednictwem której użytkownik może uzyskać dostęp do gałęzi. Zwykle usługa ta będzie umieszczana w węzłach Edge dedykowanych użytkownikom.
  • Hive Metastore – jest to centralne repozytorium do przechowywania metadanych Hive.
  • Serwer WebHCat – jest to internetowe API dla HCatalog i innych usług Hadoop.
  • Hiveserver2 – Jest to interfejs klientów do wykonywania zapytań w Hive.

Po wybraniu serwerów kliknij „Kontynuuj”, aby kontynuować.

4. Hive Metastore potrzebuje bazowej bazy danych do przechowywania metadanych. Tutaj używamy domyślnej bazy danych PostgreSQL, która jest wbudowana w CDH.

Poniżej wymienione dane bazy danych zostaną wprowadzone automatycznie, opcja „Testuj połączenie” zostanie pominięta, ponieważ wspomniana baza danych zostanie utworzona na bieżąco. Musimy w czasie rzeczywistym utworzyć bazę danych w zewnętrznej bazie danych i przetestować połączenie, aby móc kontynuować. Po zakończeniu kliknij „Kontynuuj”.

5. Skonfiguruj katalog Hive Warehouse. /user/hive/warehouse to domyślna ścieżka katalogu do przechowywania tabel Hive. Kliknij „Kontynuuj”.

6. Rozpoczęła się instalacja Hive.

7. Po zakończeniu instalacji możesz uzyskać status „Zakończono”. Kliknij „Kontynuuj”, aby kontynuować.

8. Instalacja i konfiguracja gałęzi zakończyła się pomyślnie. Kliknij „Zakończ”, aby zakończyć procedurę instalacji.

9. Możesz zobaczyć usługę Hive dodaną w Cluster poprzez Panel menedżera Cloudera.

10. Możesz wyświetlić Hiveserver2 w Instancjach Hive. Dodaliśmy Hiveserver2 w master1.

Menedżer Cloudera –> Hive –> Instancje –> Hiveserver2.

Włączanie wysokiej dostępności w Hive

11. Następnie dodaj rolę Hive, przechodząc do Menedżer Cloudera –> Hive –> Akcje –> Dodaj instancje roli.

12. Wybierz serwery, na których chcesz umieścić dodatkowy Hiveserver2. Możesz dodać więcej niż dwa, nie ma ograniczeń. Tutaj dodajemy dodatkowy Hiveserver2 w master2.

13. Po wybraniu serwera kliknij „Kontynuuj”.

14. Hiverserver2 zostanie dodany do Instancji Hive, musisz go uruchomić, przechodząc do Menedżera Cloudera –> Hive –> Instancje –> (Nowo dodano Wybierz Hiveserver2) –> Akcja dla wybranych –> Rozpocznij.

15. Po uruchomieniu Hiveserver2 na master2 otrzymasz status „Zakończony”. Kliknij Zamknij.

16. Możesz zobaczyć, że oba Hiveserver2 są uruchomione.

Weryfikacja dostępności gałęzi

Możemy połączyć Hiveserver2 poprzez linię beeline, która jest cienkim klientem i linią poleceń. Do nawiązania połączenia wykorzystuje sterownik JDBC.

17. Zaloguj się do serwera, na którym działa Hive Gateway.

[tecmint@master1 ~]$ beeline

18. Wprowadź parametry połączenia JDBC, aby połączyć się z Hiveserver2. W związku z tym stringiem mamy na myśli Hiverserver2 (master2) z jego domyślnym numerem portu 10000. Ten ciąg połączenia będzie łączyć się tylko z Hiveserver2, który działa na master2.

beeline> !connect "jdbc:hive2://master1.linux-console.net:10000"

19. Uruchom przykładowe zapytanie.

0: jdbc:hive2://master1.linux-console.net:10000> show databases;

Jest to domyślna, wbudowana baza danych.

20. Użyj poniższego polecenia, aby zakończyć sesję Hive.

0: jdbc:hive2://master1.linux-console.net:10000> !quit

21. W ten sam sposób możesz połączyć się z Hiveserver2 działającym na master2.

beeline> !connect "jdbc:hive2://master2.linux-console.net:10000"

23. Możemy podłączyć Hiveserver2 w trybie Zookeeper Discovery. W tej metodzie nie musimy wspominać o Hiveserver2 w ciągu połączenia, zamiast tego używamy Zookeepera, aby wykryć dostępny Hiveserver2.

Tutaj możemy użyć modułu równoważenia obciążenia innej firmy, aby zrównoważyć obciążenie pomiędzy dostępnym Hiverserver2. Poniższa konfiguracja jest konieczna, aby włączyć Tryb wykrywania Zookeepera, przechodząc do Menedżera Cloudera –> Hive –> Konfiguracja.

24. Następnie wyszukaj właściwość „HiveServer2 Advanced Configuration Snippet” i kliknij symbol +, aby dodać poniższą właściwość.

Name : hive.server2.support.dynamic.service.discovery
Value : true
Description : <any description>

25. Po wejściu do właściwości kliknij „Zapisz zmiany”.

26. Ponieważ dokonaliśmy zmian w konfiguracji, należy ponownie uruchomić usługi, których to dotyczy, klikając pomarańczowy symbol koloru, aby ponownie uruchomić usługi.

27. Kliknij usługi „Uruchom ponownie przestarzałe”.

28. Dostępne są dwie opcje. Jeśli klaster jest w fazie produkcyjnej, należy preferować stopniowe ponowne uruchamianie, aby zminimalizować przestoje. Ponieważ przeprowadzamy nową instalację, możemy wybrać drugą opcję „Wdróż ponownie konfigurację klienta” i kliknąć „Uruchom ponownie teraz”.

29. Po pomyślnym ponownym uruchomieniu otrzymasz status „Zakończony”. Kliknij „Zakończ”, aby zakończyć proces.

30. Teraz połączymy się z Hiveserver2 w trybie Zookeeper Discovery. W połączeniu JDBC ciąg znaków, którego potrzebujemy, aby używać serwerów Zookeeper z numerem portu 2081. Zbierz serwery Zookeepera, przechodząc do Cloudera Manager –> Zookeeper –> Instancje –> (Zanotuj nazwy serwerów).

To są trzy serwery posiadające Zookeepera, 2181 to numer portu.

master1.linux-console.net:2181
master2.linux-console.net:2181
worker1.linux-console.net:2181

31. Teraz przejdź do beeline.

[tecmint@master1 ~]$ beeline

32. Wprowadź parametry połączenia JDBC zgodnie z poniższym opisem. Musimy wspomnieć o Trybie wykrywania usług i Przestrzeni nazw Zookeepera. „hiveserver2” to domyślna przestrzeń nazw Hiveserver2.

beeline>!connect "jdbc:hive2://master1.linux-console.net:2181,master2.linux-console.net:2181,worker1.linux-console.net:2181/;serviceDiscoveryMode=zookeeper;zookeeperNamespace=hiveserver2"

33. Teraz sesja jest połączona z Hiveserver2 działającym na master1. Uruchom przykładowe zapytanie, aby sprawdzić poprawność. Użyj poniższego polecenia, aby utworzyć bazę danych.

0: jdbc:hive2://master1.linux-console.net:2181,mast> create database tecmint;

34. Użyj poniższego polecenia, aby wyświetlić listę bazy danych.

0: jdbc:hive2://master1.linux-console.net:2181,mast> show databases;

35. Teraz sprawdzimy wysoką dostępność w Trybie odkrywania opiekuna zwierząt. Przejdź do Cloudera Manager i zatrzymaj Hiveserver2 na master1, który testowaliśmy powyżej.

Cloudera Manager –> Hive –> Instancje –> (wybierz Hiveserver2 na master1 ) –> Akcja dla wybranych –> Zatrzymaj.

36. Kliknij „Zatrzymaj”. Po zatrzymaniu otrzymasz status „Zakończono”. Zweryfikuj Hiveserver2 na master1, przechodząc do Hive –> Instancje.

37. Wejdź na beeline i połącz się z Hiveserver2 przy użyciu tego samego ciągu połączenia JDBC z Zookeeper Discovery Tryb tak jak to zrobiliśmy w powyższych krokach.

[tecmint@master1 ~]$ beeline

beeline>!connect "jdbc:hive2://master1.linux-console.net:2181,master2.linux-console.net:2181,worker1.linux-console.net:2181/;serviceDiscoveryMode=zookeeper;zookeeperNamespace=hiveserver2"

Teraz będziesz połączony z Hiveserver2 działającym na master2.

38. Sprawdź poprawność za pomocą przykładowego zapytania.

0: jdbc:hive2://master1.linux-console.net:2181,mast> show databases;

Wniosek

W tym artykule omówiliśmy szczegółowe kroki, aby mieć model Hive Data Warehouse w naszym klastrze z wysoką dostępnością. W środowisku produkcyjnym czasu rzeczywistego zostaną umieszczone więcej niż trzy serwery Hiveserver2 z włączonym Trybem wykrywania zookeepera.

Tutaj wszystkie Hiveserver2 rejestrują się w Zookeeperze w ramach wspólnej przestrzeni nazw. Zookeeper Dynamicznie odkrywa dostępny serwer Hiveserver2 i ustanawia sesję Hive.