Zoeken op website

Hive installeren en configureren met hoge beschikbaarheid – Deel 7


Hive is een Data Warehouse-model in het Hadoop Eco-systeem. Het kan functioneren als een ETL-tool bovenop Hadoop. Het inschakelen van hoge beschikbaarheid (HA) op Hive is niet vergelijkbaar met het inschakelen van Master Services zoals Namenode en Resource Manager.

Er vindt geen automatische failover plaats in Hive (Hiveserver2). Als een Hiveserver2 (HS2) faalt, zullen de uitvoering van taken op die mislukte HS2 mislukken. We moeten de taak opnieuw indienen, zodat de taak op een andere HiveServer2 kan worden uitgevoerd. Het inschakelen van HA op HS2 is dus niets anders dan het vergroten van het aantal HS2 componenten in Cluster.

In dit artikel zien we de stappen voor het installeren en inschakelen van de Hoge beschikbaarheid van Hive.

Vereisten

  • Best practices voor het implementeren van Hadoop Server op CentOS/RHEL 7 – Deel 1
  • Hadoop-vereisten en beveiliging instellen – Deel 2
  • Hoe u de Cloudera Manager op CentOS/RHEL 7 installeert en configureert – Deel 3
  • CDH installeren en serviceplaatsingen configureren op CentOS/RHEL 7 – Deel 4
  • Hoe u hoge beschikbaarheid voor Namenode instelt – deel 5
  • Hoe u hoge beschikbaarheid voor Resource Manager instelt – deel 6

Laten we beginnen…

Hive-installatie en -configuratie

1. Log in op Cloudera Manager op de onderstaande URL en navigeer naar Cloudera Manager –> Service toevoegen .

http://13.233.129.39:7180/cmf/home

2. Selecteer de dienst ‘Hive‘.

3. Wijs de services toe aan knooppunten.

  • Gateway – Het is de klantenservice waar de gebruiker toegang heeft tot de Hive. Normaal gesproken wordt deze service geplaatst in Edge knooppunten die speciaal voor de gebruikers bedoeld zijn.
  • Hive Metastore – Het is een centrale opslagplaats voor het opslaan van Hive-metagegevens.
  • WebHCat Server – Het is een web-API voor HCatalog en andere Hadoop-services.
  • Hiveserver2 – Het is een interface van clients voor het uitvoeren van zoekopdrachten op Hive.

Nadat u de servers heeft geselecteerd, klikt u op ‘Doorgaan’ om door te gaan.

4. Hive Metastore heeft een onderliggende database nodig voor het opslaan van metadata. Hier gebruiken we de standaard PostgreSQL database die is ingebouwd met CDH.

Onderstaande databasegegevens worden automatisch ingevoerd, ‘Testverbinding’ wordt overgeslagen omdat de genoemde database direct wordt aangemaakt. In realtime moeten we de database in de externe database maken en de verbinding testen om verder te gaan. Als u klaar bent, klikt u op ‘Doorgaan’.

5. Configureer de map Hive Warehouse, /user/hive/warehouse is het standaard mappad voor het opslaan van Hive-tabellen. Klik op ‘Doorgaan’.

6. De installatie van Hive is gestart.

7. Zodra de installatie is voltooid, kunt u de status 'Voltooid' krijgen. Klik op ‘Doorgaan’ om verder te gaan.

8. Hive-installatie en -configuratie zijn met succes voltooid. Klik op ‘Voltooien’ om de installatieprocedure te voltooien.

9. U kunt zien dat de Hive-service is toegevoegd aan Cluster via het Cloudera Manager Dashboard.

10. U kunt de Hiveserver2 bekijken in Instances van Hive. We hebben Hiveserver2 toegevoegd aan master1.

Cloudera Manager –> Hive –> Instances –> Hiveserver2.

Hoge beschikbaarheid op Hive inschakelen

11. Voeg vervolgens de Hive-rol toe door naar Cloudera Manager –> Hive –> Acties –> te gaan Rolinstanties toevoegen.

12. Selecteer de servers waar u extra Hiveserver2 wilt plaatsen. Je kunt er meer dan twee toevoegen, er is geen limiet. Hier voegen we een extra Hiveserver2 toe in master2.

13. Nadat u de server heeft geselecteerd, klikt u op ‘Doorgaan’.

14. Er wordt een Hiverserver2 toegevoegd aan de Hive Instances. U moet deze starten door naar Cloudera Manager te gaan –> Hive –> Instances –> (Select Hiveserver2 nieuw toegevoegd) –> Actie voor geselecteerde –> Start.

15. Zodra Hiveserver2 is gestart op master2, krijgt u de status ‘Voltooid’. Klik op Sluiten.

16. U kunt zien dat beide Hiveserver2s actief zijn.

De beschikbaarheid van de Hive verifiëren

We kunnen de Hiveserver2 verbinden via de beeline, een thin client en opdrachtregel. Het gebruikt het JDBC-stuurprogramma om de verbinding tot stand te brengen.

17. Log in op de server waarop Hive Gateway actief is.

[tecmint@master1 ~]$ beeline

18. Voer de JDBC-verbindingsreeks in om verbinding te maken met de Hiveserver2. In dit verband noemen we de string de Hiverserver2 (master2) met het standaardpoortnummer 10000. Deze verbindingsreeks maakt alleen verbinding met de Hiveserver2 die op master2 draait.

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

19. Voer een voorbeeldquery uit.

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

Dit is de standaarddatabase die ingebouwd is.

20. Gebruik de onderstaande opdracht om de Hive-sessie te beëindigen.

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

21. U kunt op dezelfde manier verbinding maken met Hiveserver2 dat draait op master2.

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

23. We kunnen de Hiveserver2 verbinden in de modus Zookeeper Discovery. Bij deze methode hoeven we de Hiveserver2 niet in de verbindingsreeks te vermelden, maar gebruiken we Zookeeper om de beschikbare Hiveserver2 te ontdekken.

Hier kunnen we een load balancer van derden gebruiken om de belasting te verdelen over de beschikbare Hiverserver2. De onderstaande configuratie is nodig om de Zookeeper Discovery Mode in te schakelen door naar Cloudera Manager –> Hive –> Configuratie te gaan.

24. Zoek vervolgens naar de eigenschap “HiveServer2 Advanced Configuration Snippet ” en klik op het + symbool om de onderstaande eigenschap toe te voegen.

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

25. Zodra u de eigenschap heeft betreden, klikt u op ‘Wijzigingen opslaan’.

26. Omdat we wijzigingen in de configuratie hebben aangebracht, moeten de betrokken services opnieuw worden opgestart door op het oranje kleursymbool te klikken om de services opnieuw te starten.

27. Klik op 'Verouderde opnieuw starten'-services.

28. Er zijn twee opties beschikbaar. Als het cluster live in productie is, moeten we de voorkeur geven aan een rollende herstart om de uitval te minimaliseren. Omdat we net bezig zijn met installeren, kunnen we de tweede optie ‘Cliëntconfiguratie opnieuw implementeren’ kiezen en op ‘Nu opnieuw opstarten’ klikken.

29. Zodra het opnieuw opstarten succesvol is voltooid, krijgt u de status ‘Voltooid’. Klik op ‘Voltooien’ om het proces te voltooien.

30. Nu gaan we de Hiveserver2 verbinden met behulp van de Zookeeper Discovery-modus. In de JDBC-verbinding is dit de tekenreeks die we nodig hebben om de Zookeeper-servers met poortnummer 2081 te gebruiken. Verzamel de Zookeeper-servers door naar Cloudera Manager –> Zookeeper –> Instances –> te gaan (noteer de servernamen).

Dit zijn de drie servers met Zookeeper, 2181 is het poortnummer.

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

31. Ga nu naar beeline.

[tecmint@master1 ~]$ beeline

32. Voer de JDBC-verbindingsreeks in zoals hieronder vermeld. We moeten de Service Discovery Mode en Zookeeper Namespace vermelden. ‘hiveserver2’ is de standaardnaamruimte van 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. De sessie is nu verbonden met Hiveserver2 dat draait op master1. Voer een voorbeeldquery uit om te valideren. Gebruik de onderstaande opdracht om een database te maken.

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

34. Gebruik het onderstaande commando om de database weer te geven.

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

35. Nu gaan we de hoge beschikbaarheid valideren in de Zookeeper Discovery-modus. Ga naar Cloudera Manager en stop de Hiveserver2 op master1 die we hierboven hebben getest.

Cloudera Manager –> Hive –> Instances –> (selecteer Hiveserver2 op master1 ) –> Actie voor geselecteerd –> Stop.

36. Klik op 'Stoppen'. Eenmaal gestopt, krijgt u de status ‘Voltooid’. Verifieer de Hiveserver2 op master1 door naar Hive –> Instances te navigeren.

37. Ga naar de beeline en verbind de Hiveserver2 met behulp van dezelfde JDBC verbindingsreeks met Zookeeper Discovery Modus zoals we deden in de bovenstaande stappen.

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

Nu wordt u verbonden met Hiveserver2 dat draait op master2.

38. Valideer met een voorbeeldquery.

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

Conclusie

In dit artikel hebben we de gedetailleerde stappen doorlopen om het Hive Data Warehouse-model in ons Cluster te krijgen met Hoge beschikbaarheid. In een realtime productieomgeving worden meer dan drie Hiveserver2 geplaatst met de Zookeeper Discovery Mode ingeschakeld.

Hier registreren alle Hiveserver2's zich bij Zookeeper onder een gemeenschappelijke Naamruimte. Zookeeper ontdekt dynamisch de beschikbare Hiveserver2 en brengt de Hive-sessie tot stand.