Jinsi ya Kusakinisha na Kusanidi Hive yenye Upatikanaji wa Juu - Sehemu ya 7


Hive ni mfano wa Ghala la Data katika Hadoop Eco-System. Inaweza kufanya kama zana ya ETL juu ya Hadoop. Kuwasha Upatikanaji wa Juu (HA) kwenye Hive si sawa na sisi katika Huduma Kuu kama vile Kidhibiti Rasilimali.

Kushindwa kiotomatiki haitatokea katika Hive (Hiveserver2). Ikiwa Hiveserver2 yoyote (HS2) itashindwa, kuendesha kazi kwenye HS2 iliyoshindwa itashindwa. Tunahitaji kuwasilisha kazi tena ili kazi iweze kufanya kazi kwenye HiveServer2 nyingine. Kwa hivyo, kuwezesha HA kwenye HS2 sio chochote lakini, kuongeza idadi ya vifaa vya HS2 kwenye Nguzo.

Katika makala hii, tutaona hatua za kusakinisha na kuwezesha Upatikanaji wa Juu wa Hive.

  • Mbinu Bora za Kutuma Seva ya Hadoop kwenye CentOS/RHEL 7 – Sehemu ya 1
  • Kuweka Masharti ya Awali ya Hadoop na Ugumu wa Usalama - Sehemu ya 2
  • Jinsi ya Kusakinisha na Kuweka Mipangilio ya Kidhibiti cha Cloudera kwenye CentOS/RHEL 7 – Sehemu ya 3
  • Jinsi ya Kusakinisha CDH na Kuweka Mipangilio ya Huduma kwenye CentOS/RHEL 7 – Sehemu ya 4
  • Jinsi ya Kuweka Upatikanaji wa Juu wa Namenodi - Sehemu ya 5
  • Jinsi ya Kuweka Upatikanaji wa Juu wa Kidhibiti Rasilimali - Sehemu ya 6

Tuanze…

Ufungaji na Usanidi wa Hive

1. Ingia kwa Kidhibiti cha Cloudera kwenye URL iliyo hapa chini na uende kwenye Kidhibiti cha Cloudera -> Ongeza Huduma.

http://13.233.129.39:7180/cmf/home

2. Chagua huduma ya ‘Mzinga’.

3. Agiza huduma kwenye nodi.

  • Lango - Ni huduma ya mteja ambapo mtumiaji anaweza kufikia Hive. Kwa kawaida, huduma hii itawekwa katika nodi za Edge zilizotolewa kwa watumiaji.
  • Hive Metastore - Ni hazina kuu ya kuhifadhi Metadata ya Hive.
  • Seva ya WebHCat - Ni API ya Wavuti ya HCatalog na Huduma zingine za Hadoop.
  • Hiveserver2 - Ni kiolesura cha wateja kwa ajili ya utekelezaji wa hoja kwenye Hive.

Mara baada ya kuchagua seva, bofya 'Endelea' ili kuendelea.

4. Hive Metastore inahitaji Hifadhidata ya msingi ili kuhifadhi Metadata. Hapa tunatumia hifadhidata chaguomsingi ya PostgreSQL ambayo imejengwa ndani na CDH.

Maelezo ya hifadhidata yaliyotajwa hapo chini yataingizwa kiotomatiki, 'Muunganisho wa Majaribio' utarukwa kwani hifadhidata iliyotajwa itaundwa kwa haraka. Kwa wakati halisi, tunahitaji kuunda Hifadhidata katika hifadhidata ya nje na kujaribu muunganisho ili kuendelea zaidi. Mara baada ya kumaliza, tafadhali bofya 'Endelea'.

5. Sanidi saraka ya Hive Warehouse, /mtumiaji/mzinga/ghala ndiyo njia chaguomsingi ya saraka ya kuhifadhi majedwali ya Hive. Bonyeza 'Endelea'.

6. Ufungaji wa Hive umeanza.

7. Usakinishaji ukishakamilika, unaweza kupata hali ya ‘Imekamilika’. Bofya ‘Endelea’ ili kuendelea zaidi.

8. Usakinishaji wa mizinga na Usanidi umekamilika kwa mafanikio. Bofya 'Maliza' ili kukamilisha utaratibu wa usakinishaji.

9. Unaweza kuona huduma ya Hive iliyoongezwa katika Kundi kupitia Dashibodi ya Kidhibiti cha Cloudera.

10. Unaweza kutazama Hiveserver2 katika Matukio ya Hive. Tumeongeza Hiveserver2 katika master1.

Kidhibiti cha Cloudera -> Mzinga -> Matukio -> Hiveserver2.

Kuwezesha Upatikanaji wa Juu kwenye Hive

11. Kisha ongeza jukumu la Hive kwa kwenda kwa Kidhibiti cha Cloudera -> Hive -> Vitendo -> Ongeza Matukio ya Jukumu.

12. Chagua seva ambapo unataka kuweka Hiveserver2 ya ziada. Unaweza kuongeza zaidi ya mbili, hakuna kikomo. Hapa tunaongeza Hiveserver2 ya ziada katika master2.

13. Mara baada ya kuchaguliwa seva, bofya 'Endelea'.

14. Hiverserver2 itaongezwa kwenye Matukio ya Mzinga, unahitaji kuianzisha kwa kwenda kwa Kidhibiti cha Cloudera -> Hive -> Matukio -> (Chagua Hiveserver2 imeongezwa hivi karibuni) -> Kitendo cha Kuchaguliwa -> Anza.

15. Mara baada ya Hiveserver2 kuanza kwenye master2, utapata hali ya 'Imekamilika'. Bofya Funga.

16. Unaweza kutazama, Hiveserver2s zote mbili zinafanya kazi.

Kuthibitisha Upatikanaji wa Mzinga

Tunaweza kuunganisha Hiveserver2 kupitia beeline ambayo ni mteja mwembamba na mstari wa amri. Inatumia kiendeshi cha JDBC kuanzisha muunganisho.

17. Ingia kwenye Seva ambapo Hive Gateway inaendeshwa.

[[email  ~]$ beeline

18. Ingiza kamba ya unganisho ya JDBC ili kuunganisha Hiveserver2. Katika uhusiano huu, kamba tunayotaja Hiverserver2 (master2) na nambari yake ya bandari chaguo-msingi 10000. Mstari huu wa uunganisho utaunganishwa tu na Hiveserver2 ambayo inaendesha kwenye master2.

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

19. Tekeleza swali la sampuli.

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

Hii ni hifadhidata chaguo-msingi inayokuja ikiwa imejengwa ndani.

20. Tumia amri iliyo hapa chini ili kusitisha kipindi cha Hive.

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

21. Unaweza kutumia njia sawa ya kuunganisha Hiveserver2 inayoendesha kwenye master2.

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

23. Tunaweza kuunganisha Hiveserver2 katika hali ya Ugunduzi wa Zookeeper. Kwa njia hii, hatuhitaji kutaja Hiveserver2 kwenye kamba ya unganisho badala yake tunatumia Zookeeper kugundua Hiveserver2 inayopatikana.

Hapa tunaweza kutumia kusawazisha mzigo wa wahusika wengine kusawazisha mzigo kati ya Hiverserver2 inayopatikana. Usanidi ulio hapa chini unahitajika kuwezesha Hali ya Ugunduzi wa Zookeeper kwa kwenda kwa Kidhibiti cha Cloudera -> Hive -> Usanidi.

24. Kisha, tafuta kipengele \HiveServer2 Advanced Configuration Snippet na ubofye alama ya + ili kuongeza sifa iliyo hapa chini.

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

25. Mara baada ya kuingia mali, bofya 'Hifadhi Mabadiliko'.

26. Tulipofanya mabadiliko kwenye Usanidi, tunahitaji kuanzisha upya huduma zilizoathirika kwa kubofya Alama ya Rangi ya Chungwa ili kuanzisha upya huduma.

27. Bofya ‘Anzisha upya huduma za Stale’.

28. Kuna chaguzi mbili zinazopatikana. Ikiwa nguzo iko katika uzalishaji wa moja kwa moja, tunahitaji kupendelea kuwasha tena ili kupunguza kukatika. Tunaposakinisha upya, tunaweza kuchagua chaguo la pili 'Tekeleza Usanidi wa Mteja', na ubofye 'Anzisha Upya Sasa'.

29. Mara baada ya kuanzisha upya kukamilika kwa ufanisi, utakuwa unapata hali ya 'Imekamilika'. Bofya 'Maliza' ili kukamilisha mchakato.

30. Sasa tutaunganisha Hiveserver2 kwa kutumia Zookeeper Discovery mode. Katika muunganisho wa JDBC, kamba tunayohitaji kutumia seva za Zookeeper na nambari yake ya bandari 2081. Kusanya seva za Zookeeper kwa kwenda kwa Meneja wa Cloudera -> Zookeeper -> Matukio -> (Kumbuka chini ya majina ya seva).

Hizi ndizo seva tatu zilizo na Zookeeper, 2181 ndio nambari ya bandari.

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

31. Sasa ingia kwenye beeline.

[[email  ~]$ beeline

32. Ingiza mfuatano wa unganisho wa JDBC kama inavyotajwa hapa chini. Tunapaswa kutaja Modi ya Ugunduzi wa Huduma na Nafasi ya Jina ya Mtunza Zookeeper. 'hiveserver2' ndio Nafasi ya Majina chaguo-msingi ya 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. Sasa kipindi kimeunganishwa na Hiveserver2 inayoendesha master1. Tekeleza hoja ya sampuli ili kuthibitisha. Tumia amri iliyo hapa chini kuunda hifadhidata.

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

34. Tumia amri iliyo hapa chini kuorodhesha hifadhidata.

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

35. Sasa tutathibitisha Upatikanaji wa Juu katika Modi ya Ugunduzi wa Zookeeper. Nenda kwa Kidhibiti cha Cloudera na usimamishe Hiveserver2 kwenye master1 ambayo tumejaribu hapo juu.

Kidhibiti cha Cloudera -> Hive -> Matukio -> (chagua Hiveserver2 kwenye master1) -> Kitendo cha kuchaguliwa -> Acha.

36. Bonyeza 'Stop'. Mara baada ya kusimamishwa, utakuwa unapata hali ya 'Imekamilika'. Thibitisha Hiveserver2 kwenye master1 kwa kuabiri kwenye Hive -> Matukio.

37. Ingia kwenye mstari wa pembeni na uunganishe Hiveserver2 kwa kutumia kamba sawa ya unganisho ya JDBC na Njia ya Ugunduzi ya Zookeeper kama tulivyofanya katika hatua zilizo hapo juu.

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

Sasa utaunganishwa kwa Hiveserver2 inayoendesha master2.

38. Thibitisha kwa sampuli ya hoja.

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

Katika makala haya, tumepitia hatua za kina ili kuwa na modeli ya Hive Data Warehouse katika Nguzo yetu yenye Upatikanaji wa Juu. Katika mazingira ya uzalishaji wa wakati halisi, zaidi ya Hiveserver2 tatu zitawekwa na Hali ya Ugunduzi ya Zookeeper imewashwa.

Hapa, Hiveserver2 zote zinajiandikisha na Zookeeper chini ya Nafasi ya Majina ya kawaida. Zookeeper Dynamically hugundua Hiveserver2 inayopatikana na kuanzisha kipindi cha Hive.