Sådan installeres og konfigureres Hive med høj tilgængelighed - Del 7


Hive er en Data Warehouse-model i Hadoop Eco-System. Det kan fungere som et ETL-værktøj oven på Hadoop. Aktivering af høj tilgængelighed (HA) på Hive er ikke ens, som vi gør i Master Services som Namenode og Resource Manager.

Automatisk failover sker ikke i Hive (Hiveserver2). Hvis nogen Hiveserver2 (HS2) mislykkes, mislykkes det at køre job på den mislykkede HS2. Vi er nødt til at indsende jobbet igen, så jobbet kan køre på anden HiveServer2. Aktivering af HA på HS2 er altså intet andet end at øge antallet af HS2-komponenter i Cluster.

I denne artikel vil vi se trinene til installation og aktivering af den høje tilgængelighed af bikube.

  • Best Practices for Deploying Hadoop Server on CentOS/RHEL 7 – Part 1
  • Setting Up Hadoop Pre-requisites and Security Hardening – Part 2
  • How to Install and Configure the Cloudera Manager on CentOS/RHEL 7 – Part 3
  • How to Install CDH and Configure Service Placements on CentOS/RHEL 7 – Part 4
  • How to Set Up High Availability for Namenode – Part 5
  • How to Set Up High Availability for Resource Manager – Part 6

Lad os komme igang…

Hive Installation og konfiguration

1. Log ind på Cloudera Manager på nedenstående URL og naviger til Cloudera Manager -> Tilføj service.

http://13.233.129.39:7180/cmf/home

2. Vælg tjenesten 'Hive'.

3. Tildel tjenesterne på noder.

  • Gateway – It is the client service where the user can access the Hive. Usually, this service will be placed in Edge nodes dedicated to the users.
  • Hive Metastore – It is a central repository for storing Hive Metadata.
  • WebHCat Server – It is a Web API for HCatalog and other Hadoop Services.
  • Hiveserver2 – It is an interface of clients for query execution on Hive.

Når du har valgt serverne, skal du klikke på 'Fortsæt' for at fortsætte.

4. Hive Metastore har brug for en underliggende database til lagring af metadata. Her bruger vi standard PostgreSQL-databasen, der er indbygget i CDH.

Nedenfor nævnte databaseoplysninger vil blive indtastet automatisk, 'Testforbindelse' springes over, da den nævnte database oprettes på farten. I realtid er vi nødt til at oprette databasen i den eksterne database og teste forbindelsen for at gå videre. Når du er færdig, skal du klikke på 'Fortsæt'.

5. Konfigurer Hive Warehouse-biblioteket,/user/hive/warehouse er standardkatalogstien til lagring af Hive-tabeller. Klik på 'Fortsæt'.

6. Installation af Hive startes.

7. Når installationen er gennemført, kan du få status 'Færdig'. Klik på 'Fortsæt' for at gå videre.

8. Hive-installation og konfiguration blev gennemført. Klik på 'Udfør' for at afslutte installationsproceduren.

9. Du kan se Hive-tjenesten tilføjet i Cluster via Cloudera Manager Dashboard.

10. Du kan se Hiveserver2 i Instances of Hive. Vi har tilføjet Hiveserver2 i master1.

Cloudera Manager -> Hive -> Instanser -> Hiveserver2.

Aktivering af høj tilgængelighed på bikube

11. Tilføj derefter Hive-rollen ved at gå til Cloudera Manager -> Hive -> Handlinger -> Tilføj rolleforekomster.

12. Vælg de servere, hvor du vil placere ekstra Hiveserver2. Du kan tilføje mere end to, der er ingen grænse. Her tilføjer vi en ekstra Hiveserver2 i master2.

13. Når du har valgt serveren, skal du klikke på 'Fortsæt'.

14. En Hiverserver2 tilføjes til Hive-forekomsterne, du skal starte den ved at gå til Cloudera Manager -> Hive -> Forekomster -> (Vælg Hiveserver2 tilføjet for nylig) -> Handling for valgt -> Start.

15. Når Hiveserver2 startede på master2, får du status 'Færdig'. Klik på Luk.

16. Du kan se, begge Hiveserver2'erne kører.

Bekræftelse af bikubetilgængelighed

Vi kan forbinde Hiveserver2 gennem beeline, som er en tynd klient og kommandolinje. Det bruger JDBC-driveren til at oprette forbindelsen.

17. Log ind på serveren, hvor Hive Gateway kører.

[[email  ~]$ beeline

18. Indtast JDBC-forbindelsesstrengen for at forbinde Hiveserver2. I denne forbindelse er den streng, vi nævner Hiverserver2 (master2) med standardportnummer 10000. Denne forbindelsesstreng forbinder kun til Hiveserver2, der kører på master2.

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

19. Kør en prøveforespørgsel.

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

Dette er standarddatabasen, der kommer indbygget.

20. Brug nedenstående kommando til at afslutte Hive-sessionen.

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

21. Du kan bruge samme måde til at forbinde Hiveserver2, der kører på master2.

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

23. Vi kan forbinde Hiveserver2 i Zookeeper Discovery-tilstand. I denne metode behøver vi ikke nævne Hiveserver2 i forbindelsesstrengen i stedet for vi bruger Zookeeper til at finde den tilgængelige Hiveserver2.

Her kan vi bruge en tredjeparts load balancer til at afbalancere belastningen blandt den tilgængelige Hiverserver2. Konfigurationen nedenfor er behov for at aktivere Zookeeper Discovery Mode ved at gå til Cloudera Manager -> Hive -> Configuration.

24. Søg derefter efter ejendommen "HiveServer2 Advanced Configuration Snippet" og klik på + -symbolet for at tilføje nedenstående egenskab.

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

25. Når du er indtastet i ejendommen, skal du klikke på 'Gem ændringer'.

26. Da vi foretog ændringer i konfigurationen, skal du genstarte de berørte tjenester ved at klikke på det orange farvesymbol for at genstarte tjenesterne.

27. Klik på 'Genstart forældede' tjenester.

28. Der er to muligheder. Hvis klyngen er i live produktion, er vi nødt til at foretrække rullende genstart for at minimere udfaldet. Da vi for nylig installerer, kan vi vælge den anden mulighed 'Geninstallér klientkonfiguration' og klikke på 'Genstart nu'.

29. Når genstart er gennemført, får du status 'Færdig'. Klik på 'Udfør' for at afslutte processen.

30. Nu forbinder vi Hiveserver2 ved hjælp af Zookeeper Discovery-tilstand. I JDBC-forbindelsen er den streng, vi har brug for, til at bruge Zookeeper-serverne med dets portnummer 2081. Saml Zookeeper-serverne ved at gå til Cloudera Manager -> Zookeeper -> Instanser -> (Noter servernavne).

Dette er de tre servere, der har Zookeeper, 2181 er portnummeret.

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

31. Gå nu ind i beeline.

[[email  ~]$ beeline

32. Indtast JDBC-forbindelsesstrengen som nævnt nedenfor. Vi er nødt til at nævne Service Discovery Mode og Zookeeper Namespace. 'Hiveserver2' er standardnavneområdet for 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. Nu er sessionen forbundet til Hiveserver2, der kører på master1. Kør en prøveforespørgsel for at validere. Brug nedenstående kommando til at oprette en database.

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

34. Brug nedenstående kommando til at liste databasen.

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

35. Nu validerer vi den høje tilgængelighed i Zookeeper Discovery Mode. Gå til Cloudera Manager og stop Hiveserver2 på master1, som vi har testet ovenfor.

Cloudera Manager -> Hive -> Instances -> (vælg Hiveserver2 på master1) -> Handling for valgt -> Stop.

36. Klik på 'Stop'. Når du er stoppet, får du status 'Færdig'. Bekræft Hiveserver2 på master1 ved at navigere ind i Hive -> Instanser.

37. Gå ind i beeline og forbind Hiveserver2 ved hjælp af den samme JDBC-forbindelsesstreng med Zookeeper Discovery Mode, som vi gjorde i ovenstående trin.

[[email  ~]$ beeline

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

Nu får du forbindelse til Hiveserver2, der kører på master2.

38. Valider med en prøveforespørgsel.

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

I denne artikel har vi gennemgået de detaljerede trin for at få Hive Data Warehouse-modellen i vores klynge med høj tilgængelighed. I et produktionsmiljø i realtid placeres mere end tre Hiveserver2 med Zookeeper Discovery Mode aktiveret.

Her registrerer alle Hiveserver2'er sig hos Zookeeper under et fælles navneområde. Zookeeper opdager dynamisk den tilgængelige Hiveserver2 og etablerer Hive-sessionen.