Kako instalirati i konfigurirati Hive s visokom dostupnošću – 7. dio


Hive je model Skladišta podataka u Hadoop Eco-Systemu. Može raditi kao ETL alat na vrhu Hadoop-a. Omogućavanje visoke dostupnosti (HA) na Hive-u nije slično kao što radimo u Master uslugama kao što su Namenode i Resource Manager.

Automatsko prebacivanje se neće dogoditi u Hive (Hiveserver2). Ako bilo koji Hiveserver2 (HS2) ne uspije, izvršavanje poslova na tom neuspjelom HS2 neće uspjeti. Moramo ponovo poslati posao kako bi se posao mogao pokrenuti na drugom HiveServer2. Dakle, omogućavanje HA na HS2 nije ništa drugo nego povećanje broja HS2 komponenti u klasteru.

U ovom članku ćemo vidjeti korake za instaliranje i omogućavanje visoke dostupnosti za Hive.

Zahtjevi

  • Najbolje prakse za implementaciju Hadoop servera na CentOS/RHEL 7 – 1. dio
  • Postavljanje Hadoop preduvjeta i sigurnosno jačanje – 2. dio
  • Kako instalirati i konfigurirati Cloudera Manager na CentOS/RHEL 7 – dio 3
  • Kako instalirati CDH i konfigurirati servisna mjesta na CentOS/RHEL 7 – 4. dio
  • Kako postaviti visoku dostupnost za imenode – 5. dio
  • Kako postaviti visoku dostupnost za Resource Manager – 6. dio

Hajde da počnemo…

Instalacija i konfiguracija košnice

1. Prijavite se na Cloudera Manager na donjem URL-u i idite na Cloudera Manager –> Dodaj uslugu .

http://13.233.129.39:7180/cmf/home

2. Odaberite uslugu „Hive“.

3. Dodijelite usluge na čvorovima.

  • Gateway – To je klijentska usluga na kojoj korisnik može pristupiti košnici. Obično će ova usluga biti smještena u Edge čvorove namijenjene korisnicima.
  • Hive Metastore – To je centralno spremište za pohranjivanje Hive metapodataka.
  • WebHCat Server – To je Web API za HCatalog i druge Hadoop usluge.
  • Hiveserver2 – To je interfejs klijenata za izvršavanje upita na Hive-u.

Nakon što odaberete servere, kliknite na 'Nastavi' za nastavak.

4. Hive Metastore-u je potrebna osnovna baza podataka za pohranjivanje metapodataka. Ovdje koristimo zadanu PostgreSQL bazu podataka koja je ugrađena sa CDH.

Dolje navedeni detalji baze podataka bit će uneseni automatski, 'Test Connection' će biti preskočen jer će se spomenuta baza podataka kreirati u hodu. U realnom vremenu, trebamo kreirati bazu podataka u vanjskoj bazi podataka i testirati vezu da bismo nastavili dalje. Kada završite, kliknite na 'Nastavi'.

5. Konfigurirajte direktorij Hive Warehouse, /user/hive/warehouse je zadana putanja direktorija za pohranjivanje Hive tabela. Kliknite na 'Nastavi'.

6. Instalacija Hive je započeta.

7. Kada se instalacija završi, možete dobiti status 'Završeno'. Kliknite na 'Nastavi' da nastavite dalje.

8. Instalacija i konfiguracija košnice su uspješno završeni. Kliknite na 'Završi' da dovršite proceduru instalacije.

9. Možete vidjeti uslugu Hive dodanu u Cluster preko Cloudera Manager Dashboard.

10. Hiveserver2 možete pogledati u Instancama Hive. Dodali smo Hiveserver2 u master1.

Cloudera Manager –> Hive –> Instance –> Hiveserver2.

Omogućavanje visoke dostupnosti na košnici

11. Sljedeće dodajte ulogu Hive tako što ćete otići na Cloudera Manager –> Hive –> Radnje –> Dodaj instance uloge.

12. Odaberite servere na koje želite postaviti dodatni Hiveserver2. Možete dodati više od dva, nema ograničenja. Ovdje dodajemo još jedan Hiveserver2 u master2.

13. Kada odaberete server, kliknite na 'Nastavi'.

14. Hiverserver2 će biti dodan u Hive instance, morate ga pokrenuti odlaskom na Cloudera Manager –> Hive –> Instance –> (Odaberi Hiveserver2 dodano novo) –> Radnja za odabrane –> Pokreni.

15. Kada se Hiveserver2 pokrene na master2, dobićete status 'Završeno'. Kliknite na Zatvori.

16. Možete pogledati, oba Hiveserver2 rade.

Provjera dostupnosti košnice

Možemo povezati Hiveserver2 preko beeline-a koji je tanki klijent i komandne linije. Koristi JDBC drajver za uspostavljanje veze.

17. Prijavite se na server na kojem je pokrenut Hive Gateway.

[tecmint@master1 ~]$ beeline

18. Unesite JDBC niz veze da povežete Hiveserver2. S tim u vezi, u stringu spominjemo Hiverserver2 (master2) sa svojim zadanim brojem porta 10000. Ovaj niz veze će se povezati samo na Hiveserver2 koji radi na master2.

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

19. Pokrenite uzorak upita.

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

Ovo je podrazumevana baza podataka koja je ugrađena.

20. Koristite naredbu ispod da prekinete sesiju Hive.

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

21. Možete koristiti isti način za povezivanje Hiveserver2 koji radi na master2.

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

23. Možemo povezati Hiveserver2 u načinu Zookeeper Discovery. U ovoj metodi, ne moramo spominjati Hiveserver2 u nizu veze umjesto toga koristimo Zookeeper da otkrijemo dostupni Hiveserver2.

Ovdje možemo koristiti balanser opterećenja treće strane da uravnotežimo opterećenje između dostupnih Hiverserver2. Donja konfiguracija je potrebna da omogućite Zookeeper Discovery Mode tako što ćete otići na Cloudera Manager –> Hive –> Konfiguracija.

24. Zatim pretražite svojstvo “HiveServer2 napredni isječak konfiguracije ” i kliknite na simbol + da dodate svojstvo ispod.

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

25. Kada uđete u svojstvo, kliknite na 'Sačuvaj promjene'.

26. Kako smo napravili promjene u konfiguraciji, potrebno je ponovo pokrenuti pogođene usluge klikom na simbol narandžaste boje da ponovo pokrenete usluge.

27. Kliknite na „Ponovo pokreni zastarele“ usluge.

28. Dostupne su dvije opcije. Ako je klaster u živoj proizvodnji, trebamo preferirati ponovno pokretanje kako bismo minimizirali prekid. Kako se upravo instaliramo, možemo odabrati drugu opciju 'Ponovno implementiraj konfiguraciju klijenta' i kliknuti na 'Ponovo pokreni sada'.

29. Kada se ponovno pokretanje uspješno završi, dobit ćete status 'Završeno'. Kliknite na 'Završi' da dovršite proces.

30. Sada ćemo povezati Hiveserver2 koristeći Zookeeper Discovery način rada. U JDBC vezi, string koji nam je potreban za korištenje Zookeeper servera sa brojem porta 2081. Sakupite Zookeeper servere tako što ćete otići na Cloudera Manager –> Zookeeper –> Instance –> (Zabilježite nazive servera).

Ovo su tri servera koji imaju Zookeeper, 2181 je broj porta.

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

31. Sada uđite u beeline.

[tecmint@master1 ~]$ beeline

32. Unesite JDBC niz veze kao što je navedeno ispod. Moramo spomenuti Service Discovery Mode i Zookeeper Namespace. 'hiveserver2' je zadani prostor imena za 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. Sada je sesija povezana na Hiveserver2 koji radi na master1. Pokrenite uzorak upita za provjeru valjanosti. Koristite donju naredbu za kreiranje baze podataka.

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

34. Koristite naredbu ispod da izliste bazu podataka.

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

35. Sada ćemo potvrditi visoku dostupnost u Zookeeper Discovery načinu. Idite na Cloudera Manager i zaustavite Hiveserver2 na master1 koji smo testirali iznad.

Cloudera Manager –> Hive –> Instance –> (odaberite Hiveserver2 na master1 ) –> Radnja za odabrano –> Zaustavi.

36. Kliknite na "Stop". Kada se zaustavi, dobit ćete status 'Završeno'. Potvrdite Hiveserver2 na master1 navigacijom u Hive –> Instance.

37. Uđite u beeline i povežite Hiveserver2 koristeći isti JDBC niz veze sa Zookeeper Discoveryjem Način radakao što smo radili u gornjim koracima.

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

Sada ćete biti povezani na Hiveserver2 koji radi na master2.

38. Potvrdite uzorkom upita.

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

Zaključak

U ovom članku smo prošli kroz detaljne korake kako bismo imali model Hive Data Warehouse u našem klasteru sa visokom dostupnošću. U proizvodnom okruženju u realnom vremenu, više od tri Hiveservera2 će biti postavljeno sa omogućenim Zookeeper Discovery Mode.

Ovdje se svi Hiveserver2 registruju kod Zookeeper-a pod zajedničkim imenskim prostorom. Zookeeper Dinamički otkriva dostupni Hiveserver2 i uspostavlja sesiju Hive.