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


Hive je model Skladišta podataka u Hadoop eko-sustavu. Može raditi kao ETL alat povrh Hadoopa. Omogućivanje visoke dostupnosti (HA) na Hiveu nije slično kao što radimo u glavnim uslugama kao što su Namenode i Resource Manager.

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

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

Zahtjevi

  • Najbolje prakse za implementaciju Hadoop poslužitelja na CentOS/RHEL 7 – 1. dio
  • Postavljanje preduvjeta za Hadoop i jačanje sigurnosti – 2. dio
  • Kako instalirati i konfigurirati Cloudera Manager na CentOS/RHEL 7 – dio 3
  • Kako instalirati CDH i konfigurirati položaje usluga na CentOS/RHEL 7 – 4. dio
  • Kako postaviti visoku dostupnost za Namenode – 5. dio
  • Kako postaviti visoku dostupnost za Resource Manager – 6. dio

Započnimo…

Hive instalacija i konfiguracija

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 se ova usluga nalaziti u Edge čvorovima namijenjenim korisnicima.
  • Hive Metastore – To je središnje spremište za pohranjivanje metapodataka košnice.
  • WebHCat poslužitelj – To je web API za HCatalog i druge Hadoop usluge.
  • Hiveserver2 – To je sučelje klijenata za izvršavanje upita na Hiveu.

Nakon odabira poslužitelja kliknite na 'Nastavi' za nastavak.

4. Hive Metastore treba temeljnu bazu podataka za pohranu metapodataka. Ovdje koristimo zadanu bazu podataka PostgreSQL koja je ugrađena u CDH.

Dolje spomenuti detalji baze podataka unijet će se automatski, 'Testna veza' bit će preskočena jer će se spomenuta baza podataka kreirati u hodu. U stvarnom vremenu moramo izraditi bazu podataka u vanjskoj bazi podataka i testirati vezu kako bismo nastavili dalje. Kada završite, kliknite na "Nastavi".

5. Konfigurirajte direktorij Hive Warehouse, /user/hive/warehouse je zadana staza direktorija za pohranu Hive tablica. Kliknite na "Nastavi".

6. Instalacija Hive-a je započeta.

7. Nakon dovršetka instalacije, možete dobiti status 'Gotovo'. Kliknite "Nastavi" za nastavak.

8. Instalacija i konfiguracija košnice uspješno su dovršene. Kliknite ‘Završi’ da biste dovršili postupak instalacije.

9. Možete vidjeti uslugu Hive dodanu u Cluster putem Cloudera Manager nadzorne ploče.

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

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

Omogućivanje visoke dostupnosti na košnici

11. Zatim dodajte Hive ulogu odlaskom na Cloudera Manager –> Hive –> Actions –> Dodajte instance uloga.

12. Odaberite poslužitelje 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 poslužitelj, kliknite na 'Nastavi'.

14. Hiverserver2 bit će dodan u Hive instance, trebate ga pokrenuti odlaskom na Cloudera Manager –> Hive –> Instance –> (Select Hiveserver2 novo dodan) –> Akcija za odabrane –> Pokreni.

15. Nakon što se Hiveserver2 pokrene na master2, dobit ćete status 'Završeno'. Kliknite Zatvori.

16. Možete vidjeti, oba Hiveserver2 rade.

Provjera dostupnosti košnice

Možemo povezati Hiveserver2 putem bežične linije koja je tanki klijent i naredbenog retka. Za uspostavljanje veze koristi JDBC upravljački program.

17. Prijavite se na poslužitelj na kojem je pokrenut Hive Gateway.

[tecmint@master1 ~]$ beeline

18. Unesite niz JDBC veze za povezivanje s Hiveserver2. U vezi s tim, string spominjemo Hiverserver2 (master2) sa zadanim brojem porta 10000. Ovaj niz veze povezat će se samo na Hiveserver2 koji radi na master2.

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

19. Pokrenite ogledni upit.

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

Ovo je zadana baza podataka koja dolazi ugrađena.

20. Upotrijebite donju naredbu za prekid Hive sesije.

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

21. Na isti način možete povezati Hiveserver2 koji radi na master2.

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

23. Možemo povezati Hiveserver2 u modu Zookeeper Discovery. U ovoj metodi ne trebamo spominjati Hiveserver2 u nizu povezivanja umjesto toga koristimo Zookeeper da otkrijemo dostupni Hiveserver2.

Ovdje možemo upotrijebiti balanser opterećenja treće strane za uravnoteženje opterećenja među dostupnim Hiverserver2. Donja konfiguracija potrebna je za omogućavanje Zookeeper Discovery Mode odlaskom na Cloudera Manager –> Hive –> Configuration.

24. Zatim pretražite svojstvo “HiveServer2 Advanced Configuration Snippet ” i kliknite simbol + da dodate svojstvo u nastavku.

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

25. Kada uđete u svojstvo, kliknite 'Spremi promjene'.

26. Budući da smo napravili promjene u konfiguraciji, potrebno je ponovno pokrenuti zahvaćene usluge klikom na narančasti simbol za ponovno pokretanje usluga.

27. Kliknite "Ponovno pokreni zastarjele" usluge.

28. Dostupne su dvije opcije. Ako je klaster u živoj produkciji, trebamo preferirati ponovno pokretanje kako bismo smanjili prekid rada. Budući da smo nedavno instalirali, možemo odabrati drugu opciju 'Ponovno implementiraj konfiguraciju klijenta' i kliknuti 'Ponovo pokreni sada'.

29. Nakon što je ponovno pokretanje uspješno dovršeno, dobit ćete status 'Završeno'. Kliknite 'Završi' da biste dovršili postupak.

30. Sada ćemo povezati Hiveserver2 koristeći Zookeeper Discovery mod. U JDBC vezi, niz koji nam je potreban za korištenje Zookeeper poslužitelja sa svojim brojem priključka 2081. Prikupite Zookeeper poslužitelje odlaskom na Cloudera Manager –> Zookeeper –> Instance –> (Zabilježite nazive poslužitelja).

Ovo su tri poslužitelja 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 u nastavku. Moramo spomenuti Service Discovery Mode i Zookeeper Namespace. ‘hiveserver2’ je zadani imenski prostor 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 ogledni upit za potvrdu. Koristite donju naredbu za stvaranje baze podataka.

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

34. Koristite donju naredbu za popis baze podataka.

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

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

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

36. Kliknite na "Zaustavi". Nakon zaustavljanja, dobit ćete status "Gotovo". Provjerite Hiveserver2 na master1 navigacijom u Hive –> Instance.

37. Uključite se u beeline i povežite Hiveserver2 koristeći isti JDBC konekcioni niz s Zookeeper Discovery Načinkao što smo učinili 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 spojeni na Hiveserver2 koji radi na master2.

38. Provjerite pomoću uzorka upita.

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

Zaključak

U ovom smo članku prošli kroz detaljne korake kako bismo imali model Hive Data Warehouse u našem Clusteru s High Availability. U proizvodnom okruženju u stvarnom vremenu, više od tri Hiveserver2 bit će postavljeno s omogućenim Zookeeper Discovery Mode.

Ovdje se svi Hiveserver2 registriraju kod Zookeeper pod zajedničkim Prostorom imena. Zookeeper dinamički otkriva dostupni Hiveserver2 i uspostavlja Hive sesiju.