ഉയർന്ന ലഭ്യതയോടെ ഹൈവ് എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം, കോൺഫിഗർ ചെയ്യാം - ഭാഗം 7


ഹഡൂപ്പ് ഇക്കോ സിസ്റ്റത്തിലെ ഒരു ഡാറ്റ വെയർഹൗസ് മോഡലാണ് ഹൈവ്. ഇതിന് ഹഡൂപ്പിന് മുകളിൽ ഒരു ETL ടൂളായി പ്രവർത്തിക്കാനാകും. റിസോഴ്uസ് മാനേജർ പോലുള്ള മാസ്റ്റർ സേവനങ്ങളിൽ ഞങ്ങൾ ചെയ്യുന്നതുപോലെ ഹൈവിലെ ഉയർന്ന ലഭ്യത (HA) പ്രവർത്തനക്ഷമമാക്കുന്നത് സമാനമല്ല.

ഹൈവിൽ (Hiveserver2) ഓട്ടോമാറ്റിക് പരാജയം സംഭവിക്കില്ല. ഏതെങ്കിലും Hiveserver2 (HS2) പരാജയപ്പെടുകയാണെങ്കിൽ, പരാജയപ്പെട്ട HS2-ൽ പ്രവർത്തിപ്പിക്കുന്ന ജോലികൾ പരാജയപ്പെടും. മറ്റ് HiveServer2-ൽ ജോലി പ്രവർത്തിപ്പിക്കുന്നതിന് ഞങ്ങൾക്ക് ജോലി വീണ്ടും സമർപ്പിക്കേണ്ടതുണ്ട്. അതിനാൽ, HS2-ൽ HA പ്രവർത്തനക്ഷമമാക്കുന്നത് ക്ലസ്റ്ററിലെ HS2 ഘടകങ്ങളുടെ എണ്ണം വർദ്ധിപ്പിക്കുകയല്ലാതെ മറ്റൊന്നുമല്ല.

ഈ ലേഖനത്തിൽ, ഹൈവിൻറെ ഉയർന്ന ലഭ്യത ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനും പ്രവർത്തനക്ഷമമാക്കുന്നതിനുമുള്ള ഘട്ടങ്ങൾ ഞങ്ങൾ കാണും.

  • CentOS/RHEL 7-ൽ ഹഡൂപ്പ് സെർവർ വിന്യസിക്കുന്നതിനുള്ള മികച്ച സമ്പ്രദായങ്ങൾ - ഭാഗം 1
  • ഹഡൂപ്പ് പ്രീ-ആവശ്യകതകളും സുരക്ഷാ കാഠിന്യവും സജ്ജീകരിക്കുന്നു - ഭാഗം 2
  • CentOS/RHEL 7-ൽ ക്ലൗഡറ മാനേജർ എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യുകയും കോൺഫിഗർ ചെയ്യുകയും ചെയ്യാം - ഭാഗം 3
  • CentOS/RHEL 7-ൽ CDH എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം, സർവീസ് പ്ലേസ്uമെന്റുകൾ കോൺഫിഗർ ചെയ്യാം - ഭാഗം 4
  • നെയിംനോഡിനായി ഉയർന്ന ലഭ്യത എങ്ങനെ സജ്ജീകരിക്കാം - ഭാഗം 5
  • റിസോഴ്സ് മാനേജറിനായി ഉയർന്ന ലഭ്യത എങ്ങനെ സജ്ജീകരിക്കാം - ഭാഗം 6

നമുക്ക് തുടങ്ങാം…

ഹൈവ് ഇൻസ്റ്റാളേഷനും കോൺഫിഗറേഷനും

1. താഴെയുള്ള URL-ൽ Cloudera Manager-ലേക്ക് ലോഗിൻ ചെയ്ത് Cloudera Manager-> Add Service-ലേക്ക് നാവിഗേറ്റ് ചെയ്യുക.

http://13.233.129.39:7180/cmf/home

2. സേവനം 'ഹൈവ്' തിരഞ്ഞെടുക്കുക.

3. നോഡുകളിൽ സേവനങ്ങൾ നൽകുക.

  • ഗേറ്റ്uവേ - ഉപയോക്താവിന് ഹൈവിലേക്ക് പ്രവേശിക്കാൻ കഴിയുന്ന ക്ലയന്റ് സേവനമാണിത്. സാധാരണയായി, ഈ സേവനം ഉപയോക്താക്കൾക്കായി സമർപ്പിച്ചിരിക്കുന്ന എഡ്ജ് നോഡുകളിൽ സ്ഥാപിക്കും.
  • ഹൈവ് മെറ്റാസ്റ്റോർ - ഇത് ഹൈവ് മെറ്റാഡാറ്റ സംഭരിക്കുന്നതിനുള്ള ഒരു കേന്ദ്ര ശേഖരമാണ്.
  • WebHCat സെർവർ - ഇത് HCatalog-നും മറ്റ് Hadoop സേവനങ്ങൾക്കുമുള്ള ഒരു വെബ് API ആണ്.
  • Hiveserver2 - ഇത് ഹൈവിലെ അന്വേഷണ നിർവ്വഹണത്തിനുള്ള ക്ലയന്റുകളുടെ ഒരു ഇന്റർഫേസാണ്.

സെർവറുകൾ തിരഞ്ഞെടുത്തുകഴിഞ്ഞാൽ, തുടരാൻ 'തുടരുക' ക്ലിക്ക് ചെയ്യുക.

4. മെറ്റാഡാറ്റ സംഭരിക്കുന്നതിന് ഹൈവ് മെറ്റാസ്റ്റോറിന് ഒരു അടിസ്ഥാന ഡാറ്റാബേസ് ആവശ്യമാണ്. CDH-ൽ ഇൻബിൽറ്റ് ചെയ്തിട്ടുള്ള സ്ഥിരസ്ഥിതി PostgreSQL ഡാറ്റാബേസാണ് ഞങ്ങൾ ഇവിടെ ഉപയോഗിക്കുന്നത്.

ചുവടെ സൂചിപ്പിച്ച ഡാറ്റാബേസ് വിശദാംശങ്ങൾ സ്വയമേവ നൽകപ്പെടും, സൂചിപ്പിച്ച ഡാറ്റാബേസ് ഫ്ലൈയിൽ സൃഷ്ടിക്കപ്പെടുന്നതിനാൽ 'ടെസ്റ്റ് കണക്ഷൻ' ഒഴിവാക്കപ്പെടും. തത്സമയം, ഞങ്ങൾ ബാഹ്യ ഡാറ്റാബേസിൽ ഡാറ്റാബേസ് സൃഷ്uടിക്കുകയും കൂടുതൽ മുന്നോട്ട് പോകുന്നതിന് കണക്ഷൻ പരിശോധിക്കുകയും വേണം. ചെയ്തുകഴിഞ്ഞാൽ, ദയവായി 'തുടരുക' ക്ലിക്ക് ചെയ്യുക.

5. ഹൈവ് വെയർഹൗസ് ഡയറക്uടറി കോൺഫിഗർ ചെയ്യുക, ഹൈവ് ടേബിളുകൾ സംഭരിക്കുന്നതിനുള്ള ഡിഫോൾട്ട് ഡയറക്uടറി പാതയാണ് /user/hive/warehouse. 'തുടരുക' ക്ലിക്ക് ചെയ്യുക.

6. കൂട് സ്ഥാപിക്കൽ ആരംഭിച്ചു.

7. ഇൻസ്റ്റാളേഷൻ പൂർത്തിയായിക്കഴിഞ്ഞാൽ, നിങ്ങൾക്ക് 'പൂർത്തിയായി' നില ലഭിക്കും. തുടരാൻ 'തുടരുക' ക്ലിക്ക് ചെയ്യുക.

8. കൂട് ഇൻസ്റ്റാളേഷനും കോൺഫിഗറേഷനും വിജയകരമായി പൂർത്തിയാക്കി. ഇൻസ്റ്റാളേഷൻ നടപടിക്രമം പൂർത്തിയാക്കാൻ 'പൂർത്തിയാക്കുക' ക്ലിക്ക് ചെയ്യുക.

9. ക്ലൗഡറ മാനേജർ ഡാഷ്uബോർഡ് വഴി ക്ലസ്റ്ററിൽ ചേർത്ത ഹൈവ് സേവനം നിങ്ങൾക്ക് കാണാൻ കഴിയും.

10. ഹൈവ് ഇൻസ്uറ്റൻസുകളിൽ നിങ്ങൾക്ക് ഹൈവ്സെർവർ2 കാണാൻ കഴിയും. ഞങ്ങൾ മാസ്റ്റർ 1 ൽ Hiveserver2 ചേർത്തു.

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

പുഴയിൽ ഉയർന്ന ലഭ്യത പ്രവർത്തനക്ഷമമാക്കുന്നു

11. അടുത്തതായി Cloudera Manager –> Hive –> Actions –> Add Role Instances എന്നതിലേക്ക് പോയി ഹൈവ് റോൾ ചേർക്കുക.

12. അധിക Hiveserver2 സ്ഥാപിക്കാൻ ആഗ്രഹിക്കുന്ന സെർവറുകൾ തിരഞ്ഞെടുക്കുക. നിങ്ങൾക്ക് രണ്ടിൽ കൂടുതൽ ചേർക്കാം, പരിധിയില്ല. ഇവിടെ ഞങ്ങൾ master2-ൽ ഒരു Hiveserver2 അധികമായി ചേർക്കുന്നു.

13. സെർവർ തിരഞ്ഞെടുത്തുകഴിഞ്ഞാൽ, 'തുടരുക' ക്ലിക്ക് ചെയ്യുക.

14. Hive Instances-ലേക്ക് ഒരു Hiverserver2 ചേർക്കപ്പെടും, നിങ്ങൾ Cloudera Manager –> Hive –> Instances –> (Hiveserver2 പുതുതായി ചേർത്തത് തിരഞ്ഞെടുക്കുക) –> തിരഞ്ഞെടുത്തവയ്ക്കുള്ള പ്രവർത്തനം –> ആരംഭിക്കുക എന്നതിലേക്ക് പോയി അത് ആരംഭിക്കേണ്ടതുണ്ട്.

15. മാസ്റ്റർ2-ൽ Hiveserver2 ആരംഭിച്ചുകഴിഞ്ഞാൽ, നിങ്ങൾക്ക് 'പൂർത്തിയായി' എന്ന സ്റ്റാറ്റസ് ലഭിക്കും. അടയ്ക്കുക ക്ലിക്ക് ചെയ്യുക.

16. നിങ്ങൾക്ക് കാണാൻ കഴിയും, രണ്ട് Hiveserver2s പ്രവർത്തിക്കുന്നു.

കൂട് ലഭ്യത പരിശോധിക്കുന്നു

ഒരു നേർത്ത ക്ലയന്റും കമാൻഡ്-ലൈനുമായ ബീലൈൻ വഴി നമുക്ക് Hiveserver2 ബന്ധിപ്പിക്കാൻ കഴിയും. കണക്ഷൻ സ്ഥാപിക്കാൻ ഇത് JDBC ഡ്രൈവർ ഉപയോഗിക്കുന്നു.

17. ഹൈവ് ഗേറ്റ്uവേ പ്രവർത്തിക്കുന്ന സെർവറിലേക്ക് ലോഗിൻ ചെയ്യുക.

[[email  ~]$ beeline

18. Hiveserver2 ബന്ധിപ്പിക്കുന്നതിന് JDBC കണക്ഷൻ സ്ട്രിംഗ് നൽകുക. ഈ ബന്ധത്തിൽ, 10000 എന്ന ഡിഫോൾട്ട് പോർട്ട് നമ്പർ ഉള്ള Hiverserver2 (master2) സ്ട്രിംഗ് ഞങ്ങൾ പരാമർശിക്കുന്നു. ഈ കണക്ഷൻ സ്uട്രിംഗ്, master2-ൽ പ്രവർത്തിക്കുന്ന Hiveserver2-ലേക്ക് മാത്രമേ കണക്uറ്റുചെയ്യൂ.

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

19. ഒരു സാമ്പിൾ അന്വേഷണം പ്രവർത്തിപ്പിക്കുക.

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

ഇൻബിൽറ്റിൽ വരുന്ന ഡിഫോൾട്ട് ഡാറ്റാബേസ് ഇതാണ്.

20. ഹൈവ് സെഷൻ അവസാനിപ്പിക്കാൻ താഴെയുള്ള കമാൻഡ് ഉപയോഗിക്കുക.

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

21. master2-ൽ പ്രവർത്തിക്കുന്ന Hiveserver2 കണക്uറ്റുചെയ്യാൻ നിങ്ങൾക്ക് ഇതേ രീതിയിൽ ഉപയോഗിക്കാം.

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

23. സൂക്കീപ്പർ ഡിസ്കവറി മോഡിൽ നമുക്ക് Hiveserver2 കണക്ട് ചെയ്യാം. ഈ രീതിയിൽ, കണക്ഷൻ സ്ട്രിംഗിൽ Hiveserver2 പരാമർശിക്കേണ്ടതില്ല, പകരം ലഭ്യമായ Hiveserver2 കണ്ടെത്താൻ ഞങ്ങൾ Zookeeper ഉപയോഗിക്കുന്നു.

ലഭ്യമായ Hiverserver2-ൽ ലോഡ് ബാലൻസ് ചെയ്യുന്നതിന് ഇവിടെ നമുക്ക് ഒരു മൂന്നാം കക്ഷി ലോഡ് ബാലൻസർ ഉപയോഗിക്കാം. Cloudera Manager –> Hive –> Configuration എന്നതിലേക്ക് പോയി സൂക്കീപ്പർ ഡിസ്കവറി മോഡ് പ്രവർത്തനക്ഷമമാക്കാൻ താഴെയുള്ള കോൺഫിഗറേഷൻ ആവശ്യമാണ്.

24. അടുത്തതായി, \HiveServer2 അഡ്വാൻസ്ഡ് കോൺഫിഗറേഷൻ സ്നിപ്പറ്റ് എന്ന പ്രോപ്പർട്ടി തിരഞ്ഞ് താഴെയുള്ള പ്രോപ്പർട്ടി ചേർക്കുന്നതിന് + ചിഹ്നത്തിൽ ക്ലിക്ക് ചെയ്യുക.

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

25. പ്രോപ്പർട്ടിയിൽ പ്രവേശിച്ചുകഴിഞ്ഞാൽ, 'മാറ്റങ്ങൾ സംരക്ഷിക്കുക' ക്ലിക്ക് ചെയ്യുക.

26. ഞങ്ങൾ കോൺഫിഗറേഷനിൽ മാറ്റങ്ങൾ വരുത്തിയതിനാൽ, സേവനങ്ങൾ പുനരാരംഭിക്കുന്നതിന് ഓറഞ്ച് കളർ ചിഹ്നത്തിൽ ക്ലിക്കുചെയ്ത് ബാധിച്ച സേവനങ്ങൾ പുനരാരംഭിക്കേണ്ടതുണ്ട്.

27. സേവനങ്ങൾ ‘റീസ്റ്റാർട്ട് സ്റ്റേൽ’ ക്ലിക്ക് ചെയ്യുക.

28. രണ്ട് ഓപ്ഷനുകൾ ലഭ്യമാണ്. ക്ലസ്റ്റർ തത്സമയ നിർമ്മാണത്തിലാണെങ്കിൽ, തടസ്സം കുറയ്ക്കുന്നതിന് റോളിംഗ് പുനരാരംഭിക്കുന്നതിന് ഞങ്ങൾ മുൻഗണന നൽകേണ്ടതുണ്ട്. ഞങ്ങൾ പുതുതായി ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനാൽ, രണ്ടാമത്തെ ഓപ്ഷൻ 'റീ-ഡിപ്ലോയ് ക്ലയന്റ് കോൺഫിഗറേഷൻ' തിരഞ്ഞെടുത്ത് 'ഇപ്പോൾ പുനരാരംഭിക്കുക' ക്ലിക്ക് ചെയ്യുക.

29. പുനരാരംഭിക്കൽ വിജയകരമായി പൂർത്തിയായിക്കഴിഞ്ഞാൽ, നിങ്ങൾക്ക് 'പൂർത്തിയായി' എന്ന സ്റ്റാറ്റസ് ലഭിക്കും. പ്രക്രിയ പൂർത്തിയാക്കാൻ 'പൂർത്തിയാക്കുക' ക്ലിക്ക് ചെയ്യുക.

30. ഇപ്പോൾ നമ്മൾ സൂക്കീപ്പർ ഡിസ്കവറി മോഡ് ഉപയോഗിച്ച് Hiveserver2 ബന്ധിപ്പിക്കും. JDBC കണക്ഷനിൽ, 2081 എന്ന പോർട്ട് നമ്പറുള്ള സൂക്കീപ്പർ സെർവറുകൾ ഉപയോഗിക്കേണ്ട സ്ട്രിംഗ്. Cloudera Manager –> Zookeeper –> Instances –> (സെർവർ പേരുകൾ ശ്രദ്ധിക്കുക) എന്നതിലേക്ക് പോയി സൂക്കീപ്പർ സെർവറുകൾ ശേഖരിക്കുക.

സൂക്കീപ്പർ ഉള്ള മൂന്ന് സെർവറുകൾ ഇവയാണ്, 2181 ആണ് പോർട്ട് നമ്പർ.

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

31. ഇപ്പോൾ ബീലൈനിൽ പ്രവേശിക്കുക.

[[email  ~]$ beeline

32. താഴെ പറയുന്നതുപോലെ JDBC കണക്ഷൻ സ്ട്രിംഗ് നൽകുക. സർവീസ് ഡിസ്uകവറി മോഡും സൂക്കീപ്പർ നെയിംസ്uപേസും നമ്മൾ പരാമർശിക്കേണ്ടതുണ്ട്. 'hiveserver2' എന്നത് 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. ഇപ്പോൾ സെഷൻ മാസ്റ്റർ 1-ൽ പ്രവർത്തിക്കുന്ന Hiveserver2-ലേക്ക് ബന്ധിപ്പിച്ചിരിക്കുന്നു. സാധൂകരിക്കാൻ ഒരു സാമ്പിൾ അന്വേഷണം പ്രവർത്തിപ്പിക്കുക. ഒരു ഡാറ്റാബേസ് സൃഷ്ടിക്കാൻ താഴെയുള്ള കമാൻഡ് ഉപയോഗിക്കുക.

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

34. ഡാറ്റാബേസ് ലിസ്റ്റ് ചെയ്യാൻ താഴെയുള്ള കമാൻഡ് ഉപയോഗിക്കുക.

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

35. ഇപ്പോൾ ഞങ്ങൾ സൂക്കീപ്പർ ഡിസ്കവറി മോഡിലെ ഉയർന്ന ലഭ്യത സാധൂകരിക്കും. Cloudera Manager-ലേക്ക് പോയി, ഞങ്ങൾ മുകളിൽ പരീക്ഷിച്ച മാസ്റ്റർ1-ൽ Hiveserver2 നിർത്തുക.

Cloudera Manager –> Hive –> Instances –> (master1-ൽ Hiveserver2 തിരഞ്ഞെടുക്കുക) –> തിരഞ്ഞെടുത്തവയ്ക്കുള്ള പ്രവർത്തനം –> നിർത്തുക.

36. 'നിർത്തുക' ക്ലിക്ക് ചെയ്യുക. ഒരിക്കൽ നിർത്തിയാൽ, നിങ്ങൾക്ക് 'പൂർത്തിയായി' എന്ന സ്റ്റാറ്റസ് ലഭിക്കും. Hive –> Instances-ലേക്ക് നാവിഗേറ്റ് ചെയ്തുകൊണ്ട് master1-ൽ Hiveserver2 പരിശോധിച്ചുറപ്പിക്കുക.

37. ബീലൈനിലേക്ക് പ്രവേശിച്ച്, മുകളിൽ പറഞ്ഞ ഘട്ടങ്ങളിൽ ഞങ്ങൾ ചെയ്തത് പോലെ സൂക്കീപ്പർ ഡിസ്കവറി മോഡ് ഉപയോഗിച്ച് അതേ JDBC കണക്ഷൻ സ്ട്രിംഗ് ഉപയോഗിച്ച് Hiveserver2 ബന്ധിപ്പിക്കുക.

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

ഇപ്പോൾ നിങ്ങൾ master2-ൽ പ്രവർത്തിക്കുന്ന Hiveserver2-ലേക്ക് കണക്ട് ചെയ്യപ്പെടും.

38. ഒരു സാമ്പിൾ ചോദ്യം ഉപയോഗിച്ച് സാധൂകരിക്കുക.

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

ഈ ലേഖനത്തിൽ, ഉയർന്ന ലഭ്യതയോടെ ഞങ്ങളുടെ ക്ലസ്റ്ററിൽ ഹൈവ് ഡാറ്റ വെയർഹൗസ് മോഡൽ ലഭിക്കുന്നതിനുള്ള വിശദമായ ഘട്ടങ്ങളിലൂടെ ഞങ്ങൾ കടന്നുപോയി. ഒരു തത്സമയ പ്രൊഡക്ഷൻ പരിതസ്ഥിതിയിൽ, മൂന്നിൽ കൂടുതൽ Hiveserver2 സൂക്കീപ്പർ ഡിസ്കവറി മോഡ് പ്രവർത്തനക്ഷമമാക്കി സ്ഥാപിക്കും.

ഇവിടെ, എല്ലാ Hiveserver2-കളും ഒരു പൊതു നെയിംസ്പേസിന് കീഴിൽ Zookeeper-ൽ രജിസ്റ്റർ ചെയ്യുന്നു. മൃഗശാലാ സൂക്ഷിപ്പുകാരന് ലഭ്യമായ Hiveserver2 ചലനാത്മകമായി കണ്ടെത്തുകയും ഹൈവ് സെഷൻ സ്ഥാപിക്കുകയും ചെയ്യുന്നു.