Kako namestiti in konfigurirati panj z visoko razpoložljivostjo - 7. del


Hive je model skladišča podatkov v Hadoop Eco-System. Lahko deluje kot orodje ETL na vrhu Hadoopa. Omogočanje visoke razpoložljivosti (HA) v panju ni podobno kot v glavnih storitvah, kot je Resource Manager.

Samodejna preusmeritev se v panju ne zgodi (Hiveserver2). Če kateri koli strežnik Hiveserver2 (HS2) ne uspe, bodo zagnana opravila na tem neuspelem HS2 izpadla. Nalogo moramo znova oddati, da se lahko opravilo izvaja na drugih HiveServer2. Omogočanje HA na HS2 ni nič drugega kot povečanje števila komponent HS2 v grozdu.

V tem članku bomo videli korake za namestitev in omogočanje visoke razpoložljivosti panja.

  • Najboljše prakse za razmestitev strežnika Hadoop na CentOS/RHEL 7 - 1. del
  • Nastavitev predpogojev za Hadoop in varnostno utrjevanje - 2. del
  • Kako namestiti in konfigurirati Cloudera Manager na CentOS/RHEL 7 - 3. del
  • Kako namestiti CDH in konfigurirati umestitve storitev na CentOS/RHEL 7 - 4. del
  • Kako nastaviti visoko razpoložljivost za Namenode - 5. del
  • Kako nastaviti visoko razpoložljivost za upravitelja virov - 6. del

Začnimo…

Namestitev in konfiguracija panja

1. Prijavite se v Cloudera Manager na spodnjem URL-ju in se pomaknite do Cloudera Manager -> Dodaj storitev.

http://13.233.129.39:7180/cmf/home

2. Izberite storitev ‘Panj’.

3. Dodelite storitve vozliščem.

  • Prehod - to je odjemalska storitev, kjer lahko uporabnik dostopa do panja. Običajno bo ta storitev nameščena v vozliščih Edge, namenjenih uporabnikom.
  • Hive Metastore - je osrednje skladišče za shranjevanje metapodatkov o panju.
  • WebHCat Server - je spletni API za HCatalog in druge storitve Hadoop.
  • Hiveserver2 - je vmesnik odjemalcev za izvajanje poizvedb v Hive.

Ko izberete strežnike, za nadaljevanje kliknite »Nadaljuj«.

4. Hive Metastore potrebuje osnovno bazo podatkov za shranjevanje metapodatkov. Tu uporabljamo privzeto bazo podatkov PostgreSQL, ki je vgrajena s CDH.

Spodaj omenjene podrobnosti baze podatkov bodo samodejno vnesene, preskusna povezava bo preskočena, saj bo omenjena baza podatkov ustvarjena sproti. V realnem času moramo ustvariti bazo podatkov v zunanji bazi podatkov in preizkusiti povezavo za nadaljevanje. Ko končate, kliknite »Nadaljuj«.

5. Konfigurirajte imenik Hive Warehouse,/user/hive/warehouse je privzeta pot imenika za shranjevanje tabel Hive. Kliknite »Nadaljuj«.

6. Začela se je namestitev panja.

7. Ko je namestitev končana, lahko dobite status "Končano". Za nadaljevanje kliknite »Nadaljuj«.

8. Namestitev panja in konfiguracija sta uspešno zaključena. Kliknite »Dokončaj«, da dokončate postopek namestitve.

9. Storitev Hive, dodano v grozdu, si lahko ogledate prek nadzorne plošče Cloudera Manager.

10. Hiveserver2 si lahko ogledate v Primerih panja. V master1 smo dodali Hiveserver2.

Cloudera Manager -> Panj -> Primerki -> Hiveserver2.

Omogočanje visoke razpoložljivosti v panju

11. Nato dodajte vlogo panj, tako da odprete Cloudera Manager -> Panj -> Dejanja -> Dodaj primere vloge.

12. Izberite strežnike, kamor želite namestiti dodaten Hiveserver2. Dodate lahko več kot dve, omejitev ni. Tu dodajamo še enega Hiveserver2 v master2.

13. Ko izberete strežnik, kliknite »Nadaljuj«.

14. Hiverserver2 bo dodan v primerke panja, zagnati ga morate tako, da odprete Cloudera Manager -> Panj -> Primerki -> (Izberite Hiveserver2 dodan na novo) -> Dejanje za izbrane -> Začni.

15. Ko se Hiveserver2 zažene na master2, boste dobili status 'Končano'. Kliknite Zapri.

16. Ogledate si lahko, da se izvajata oba strežnika Hiveserver2.

Preverjanje razpoložljivosti panja

Hiveserver2 lahko povežemo prek linije, ki je tanek odjemalec in ukazna vrstica. Za vzpostavitev povezave uporablja gonilnik JDBC.

17. Prijavite se v strežnik, kjer se izvaja Hive Gateway.

[[email  ~]$ beeline

18. Vnesite niz povezave JDBC, da povežete Hiveserver2. V tej povezavi niz, ki ga omenjamo Hiverserver2 (master2) s privzeto številko vrat 10000. Ta niz povezave se bo povezal samo s Hiveserver2, ki se izvaja na master2.

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

19. Zaženite vzorčno poizvedbo.

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

To je privzeta baza podatkov, ki je vgrajena.

20. Uporabite spodnji ukaz za prekinitev seje Panj.

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

21. Na enak način lahko uporabite Hiveserver2, ki deluje na master2.

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

23. Hiveserver2 lahko povežemo v načinu Zookeeper Discovery. Pri tej metodi nam ni treba omeniti Hiveserver2 v veznem nizu, temveč uporabljamo Zookeeper za odkrivanje razpoložljivega Hiveserver2.

Tu lahko za uravnoteženje obremenitve med razpoložljivim Hiverserver2 uporabimo neodvisni izravnalnik obremenitve. Spodnja konfiguracija mora omogočiti način odkrivanja Zookeeper tako, da odprete Cloudera Manager -> Hive -> Configuration.

24. Nato poiščite lastnost\"HiveServer2 Advanced Configuration Snippet" in kliknite simbol + , da dodate spodnjo lastnost.

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

25. Ko vnesete lastnost, kliknite »Shrani spremembe«.

26. Ko smo spremenili konfiguracijo, moramo znova zagnati prizadete storitve s klikom na oranžni simbol, da znova zaženemo storitve.

27. Kliknite »Restart Stale« storitve.

28. Na voljo sta dve možnosti. Če je grozd v aktivni produkciji, moramo dati prednost ponovnemu zagonu, da zmanjšamo izpad. Ko na novo nameščamo, lahko izberemo drugo možnost »Ponovno razmestite konfiguracijo odjemalca« in kliknite »Znova zaženi zdaj«.

29. Po uspešnem ponovnem zagonu boste dobili status 'Končano'. Za dokončanje postopka kliknite »Končaj«.

30. Zdaj bomo Hiveserver2 povezali z načinom Zookeeper Discovery. V povezavi JDBC, niz moramo uporabiti strežnike Zookeeper s številko vrat 2081. Zberite strežnike Zookeeper, tako da odprete Cloudera Manager -> Zookeeper -> Primeri -> (Zapišite imena strežnikov).

To so trije strežniki, ki imajo Zookeeper, 2181 je številka vrat.

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

31. Zdaj pojdite na pot.

[[email  ~]$ beeline

32. Vnesite niz povezave JDBC, kot je omenjeno spodaj. Omeniti moramo način odkrivanja storitev in imenski prostor Zookeeper. „Hiveserver2“ je privzeti imenski prostor 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. Zdaj je seja povezana s Hiveserver2, ki se izvaja na master1. Za potrditev preverite vzorec poizvedbe. Uporabite spodnji ukaz za ustvarjanje baze podatkov.

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

34. Uporabite spodnji ukaz za seznam baze podatkov.

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

35. Zdaj bomo potrdili visoko razpoložljivost v načinu odkrivanja Zookeeper. Pojdite v Cloudera Manager in ustavite Hiveserver2 na master1, ki smo ga preizkusili zgoraj.

Cloudera Manager -> Panj -> Primerki -> (izberite Hiveserver2 na master1) -> Dejanje za izbrano -> Stop.

36. Kliknite na 'Stop'. Ko se ustavite, boste dobili status "Končano". Preverite Hiveserver2 na master1, tako da se pomaknete v Hive -> Instance.

37. Pojdite na pot in povežite Hiveserver2 z istim nizom povezave JDBC z načinom odkrivanja Zookeeper, kot smo to storili v zgornjih korakih.

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

Zdaj boste povezani s Hiveserver2, ki deluje na master2.

38. Potrdite z vzorčno poizvedbo.

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

V tem članku smo opravili podrobne korake za vključitev modela Hive Data Warehouse v naš grozd z visoko razpoložljivostjo. V produkcijskem okolju v realnem času bodo nameščeni več kot trije Hiveserver2 z omogočenim načinom Zookeeper Discovery.

Tu se vsi Hiveserver2 registrirajo pri Zookeeperju pod skupnim imenskim prostorom. Zookeeper dinamično odkrije razpoložljivi Hiveserver2 in vzpostavi sejo Hive.