Hvordan installere og konfigurere Hive med høy tilgjengelighet – Del 7


Hive er en Data Warehouse-modell i Hadoop Eco-System. Det kan fungere som et ETL-verktøy på toppen av Hadoop. Å aktivere High Availability (HA) på Hive er ikke likt som vi gjør i Master Services som Namenode og Resource Manager.

Automatisk failover vil ikke skje i Hive (Hiveserver2). Hvis noen Hiveserver2 (HS2) mislykkes, vil kjøring av jobber på den mislykkede HS2 mislykkes. Vi må sende inn jobben på nytt slik at jobben kan kjøres på andre HiveServer2. Så å aktivere HAHS2 er ingenting annet enn å øke antallet HS2-komponenter i Cluster.

I denne artikkelen vil vi se trinnene for å installere og aktivere Høy tilgjengelighet til Hive.

Krav

  • Beste praksis for distribusjon av Hadoop Server på CentOS/RHEL 7 – Del 1
  • Sette opp Hadoop-forutsetninger og sikkerhetsherding – del 2
  • Hvordan installere og konfigurere Cloudera Manager på CentOS/RHEL 7 – Del 3
  • Hvordan installere CDH og konfigurere tjenesteplasseringer på CentOS/RHEL 7 – Del 4
  • Hvordan sette opp høy tilgjengelighet for Namenode – del 5
  • Hvordan sette opp høy tilgjengelighet for ressursbehandler – del 6

La oss komme i gang…

Hive installasjon og konfigurasjon

1. Logg på Cloudera Manager på nettadressen nedenfor og naviger til Cloudera Manager –> Legg til tjeneste .

http://13.233.129.39:7180/cmf/home

2. Velg tjenesten «Hive».

3. Tilordne tjenestene på noder.

  • Gateway – Det er klienttjenesten der brukeren kan få tilgang til Hive. Vanligvis vil denne tjenesten bli plassert i Edge-noder dedikert til brukerne.
  • Hive Metastore – Det er et sentralt depot for lagring av Hive-metadata.
  • WebHCat Server – Det er et web-API for Hcatalog og andre Hadoop-tjenester.
  • Hiveserver2 – Det er et grensesnitt for klienter for kjøring av spørringer på Hive.

Når du har valgt serverne, klikker du på «Fortsett» for å fortsette.

4. Hive Metastore trenger en underliggende database for lagring av metadata. Her bruker vi standard PostgreSQL-databasen som er innebygd med CDH.

Nedenfor nevnte databasedetaljer vil bli lagt inn automatisk, «Testforbindelse» vil bli hoppet over ettersom den nevnte databasen vil bli opprettet umiddelbart. I sanntid må vi opprette databasen i den eksterne databasen og teste tilkoblingen for å fortsette videre. Når du er ferdig, klikker du på «Fortsett».

5. Konfigurer Hive Warehouse-katalogen, /user/hive/warehouse er standard katalogbane for lagring av Hive-tabeller. Klikk på «Fortsett».

6. Installasjonen av Hive er startet.

7. Når installasjonen er fullført, kan du få «Ferdig»-statusen. Klikk «Fortsett» for å fortsette videre.

8. Hive-installasjon og -konfigurasjon er fullført. Klikk «Fullfør» for å fullføre installasjonsprosedyren.

9. Du kan se Hive-tjenesten lagt til i Cluster gjennom Cloudera Manager Dashboard.

10. Du kan se Hiveserver2 i Forekomster av Hive. Vi har lagt til Hiveserver2 i master1.

Cloudera Manager –> Hive –> Forekomster –> Hiveserver2.

Aktiverer høy tilgjengelighet på Hive

11. Legg deretter til Hive-rolle ved å gå til Cloudera Manager –> Hive –> Handlinger –> Legg til rolleforekomster.

12. Velg serverne der du vil plassere ekstra Hiveserver2. Du kan legge til mer enn to, det er ingen grense. Her legger vi til en ekstra Hiveserver2 i master2.

13. Når du har valgt serveren, klikker du «Fortsett».

14. En Hiverserver2 vil bli lagt til i Hive-forekomstene, du må starte den ved å gå til Cloudera Manager –> Hive –> Forekomster –> (Velg Hiveserver2 nylig lagt til) –> Handling for utvalgte –> Start.

15. Når Hiveserver2 startet på master2, får du statusen «Ferdig». Klikk Lukk.

16. Du kan se, begge Hiveserver2s kjører.

Bekrefte Hive-tilgjengeligheten

Vi kan koble til Hiveserver2 gjennom beeline som er en tynn klient og kommandolinje. Den bruker JDBC-driveren for å etablere forbindelsen.

17. Logg på serveren der Hive Gateway kjører.

[tecmint@master1 ~]$ beeline

18. Skriv inn JDBC-tilkoblingsstrengen for å koble til Hiveserver2. I denne forbindelse, strengen vi nevner Hiverserver2 (master2) med standard portnummer 10000. Denne tilkoblingsstrengen vil bare koble til Hiveserver2 som kjører på master2.

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

19. Kjør et eksempelsøk.

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

Dette er standarddatabasen som kommer innebygd.

20. Bruk kommandoen nedenfor for å avslutte Hive-økten.

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

21. Du kan bruke samme måte for å koble til Hiveserver2 som kjører på master2.

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

23. Vi kan koble til Hiveserver2 i Zookeeper Discovery-modus. I denne metoden trenger vi ikke å nevne Hiveserver2 i tilkoblingsstrengen, i stedet bruker vi Zookeeper for å finne den tilgjengelige Hiveserver2.

Her kan vi bruke en tredjeparts lastbalanser for å balansere lasten blant de tilgjengelige Hiverserver2. Konfigurasjonen nedenfor er nødvendig for å aktivere Zookeeper Discovery Mode ved å gå til Cloudera Manager –> Hive –> Configuration.

24. Deretter søker du etter egenskapen «HiveServer2 Advanced Configuration Snippet» og klikker på +-symbolet for å legge til egenskapen nedenfor.

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

25. Når du har kommet inn i egenskapen, klikker du på «Lagre endringer».

26. Ettersom vi gjorde endringer i konfigurasjonen, må du starte de berørte tjenestene på nytt ved å klikke på det oransje fargesymbolet for å starte tjenestene på nytt.

27. Klikk «Start Stale på nytt»-tjenester.

28. Det er to tilgjengelige alternativer. Hvis klyngen er i levende produksjon, må vi foretrekke rullende omstart for å minimere strømbruddet. Mens vi nylig installerer, kan vi velge det andre alternativet «Re-distribuer klientkonfigurasjon», og klikk «Start på nytt nå».

29. Når omstarten er fullført, får du statusen «Ferdig». Klikk «Fullfør» for å fullføre prosessen.

30. Nå kobler vi til Hiveserver2 ved å bruke Zookeeper Discovery-modus. I JDBC-tilkoblingen, strengen vi trenger for å bruke Zookeeper-serverne med portnummeret 2081. Samle Zookeeper-serverne ved å gå til Cloudera Manager –> Zookeeper –> Forekomster –> (noter servernavnene).

Dette er de tre serverne som har Zookeeper, 2181 er portnummeret.

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

31. Gå nå inn i beeline.

[tecmint@master1 ~]$ beeline

32. Skriv inn JDBC-tilkoblingsstrengen som nevnt nedenfor. Vi må nevne Service Discovery Mode og Zookeeper Namespace. «hiveserver2» er standardnavneområdet til 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. Nå er økten koblet til Hiveserver2 som kjører på master1. Kjør en prøvespørring for å validere. Bruk kommandoen nedenfor for å lage en database.

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

34. Bruk kommandoen nedenfor for å vise databasen.

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

35. Nå skal vi validere høy tilgjengelighet i Zookeeper Discovery Mode. Gå til Cloudera Manager og stopp Hiveserver2master1 som vi har testet ovenfor.

Cloudera Manager –> Hive –> Forekomster –> (velg Hiveserver2master1 ) –> Handling for valgte –> Stopp.

36. Klikk Stopp. Når du er stoppet, får du statusen «Ferdig». Bekreft Hiveserver2master1 ved å navigere til Hive –> Forekomster.

37. Gå inn på beeline og koble til Hiveserver2 ved å bruke den samme JDBC-forbindelsesstrengen med Zookeeper Discovery Modussom vi gjorde i trinnene ovenfor.

[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"

Nå vil du være koblet til Hiveserver2 som kjører på master2.

38. Valider med et eksempelsøk.

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

Konklusjon

I denne artikkelen har vi gått gjennom de detaljerte trinnene for å ha Hive Data Warehouse-modellen i vår Cluster med High Availability. I et sanntidsproduksjonsmiljø vil mer enn tre Hiveserver2 plasseres med Zookeeper Discovery Mode aktivert.

Her registrerer alle Hiveserver2 seg hos Zookeeper under et felles navneområde. Zookeeper Dynamically oppdager den tilgjengelige Hiveserver2 og etablerer Hive-økten.