ວິທີການຕິດຕັ້ງແລະການຕັ້ງຄ່າຮັງທີ່ມີຄວາມພ້ອມສູງ - ພາກ 7


Hive ແມ່ນຕົວແບບ Data Warehouse ໃນ Hadoop Eco-System. ມັນສາມາດປະຕິບັດເປັນເຄື່ອງມື ETL ຢູ່ດ້ານເທິງຂອງ Hadoop. ການເຮັດໃຫ້ມີຄວາມພ້ອມສູງສຸດ (HA) ກ່ຽວກັບ Hive ແມ່ນບໍ່ຄືກັນກັບທີ່ພວກເຮົາເຮັດໃນ Master Services ເຊັ່ນ Namenode ແລະຜູ້ຈັດການຊັບພະຍາກອນ.

ການລົ້ມເຫຼວໂດຍອັດຕະໂນມັດຈະບໍ່ເກີດຂື້ນໃນ Hive (Hiveserver2). ຖ້າ Hiveserver2 (HS2) ລົ້ມເຫລວ, ການເຮັດວຽກທີ່ເຮັດວຽກກ່ຽວກັບ HS2 ທີ່ລົ້ມເຫລວຈະລົ້ມເຫລວ. ພວກເຮົາ ຈຳ ເປັນຕ້ອງຍື່ນໃບສະ ໝັກ ວຽກຄືນ ໃໝ່ ເພື່ອວ່າວຽກຈະສາມາດ ດຳ ເນີນການກັບ HiveServer2 ອື່ນໆ. ດັ່ງນັ້ນ, ການເຮັດໃຫ້ HA ໃນ HS2 ບໍ່ມີຫຍັງເລີຍນອກ ເໜືອ ຈາກ, ເພີ່ມ ຈຳ ນວນຂອງສ່ວນປະກອບ HS2 ໃນ Cluster.

ໃນບົດຂຽນນີ້, ພວກເຮົາຈະເຫັນຂັ້ນຕອນໃນການຕິດຕັ້ງແລະເປີດໃຊ້ງານ High Availability of Hive.

  • ການປະຕິບັດທີ່ດີທີ່ສຸດ ສຳ ລັບການ ນຳ ໃຊ້ Server Hadoop ໃນ CentOS/RHEL 7 - ພາກທີ 1
  • ການຕັ້ງຄ່າ Hadoop ກ່ອນຄວາມ ຈຳ ເປັນແລະຄວາມເຂັ້ມແຂງໃນການຮັກສາຄວາມປອດໄພ - ພາກທີ 2
  • ວິທີການຕິດຕັ້ງແລະ ກຳ ຫນົດຄ່າ Cloudera Manager ໃນ CentOS/RHEL 7 - ພາກທີ 3
  • ວິທີການຕິດຕັ້ງ CDH ແລະຕັ້ງຄ່າສະຖານທີ່ບໍລິການໃນ CentOS/RHEL 7 - ພາກທີ 4
  • ວິທີການຕັ້ງຄ່າຄວາມພ້ອມ ສຳ ລັບ Namenode - ພາກທີ 5
  • ວິທີການສ້າງຄວາມພ້ອມທີ່ມີຄວາມສາມາດສູງ ສຳ ລັບຜູ້ບໍລິຫານຊັບພະຍາກອນ - ພາກ 6

ເລີ່ມຕົ້ນ…

Hive ຕິດຕັ້ງແລະຕັ້ງຄ່າ

1. ເຂົ້າສູ່ Cloudera Manager ທີ່ຢູ່ URL ຂ້າງລຸ່ມນີ້ແລະເຂົ້າຫາ Cloudera Manager -> ເພີ່ມບໍລິການ.

http://13.233.129.39:7180/cmf/home

2. ເລືອກບໍລິການ ‘Hive’.

3. ມອບ ໝາຍ ການບໍລິການໃນຂໍ້.

  • ຄ່າຜ່ານປະຕູ - ມັນແມ່ນການບໍລິການລູກຄ້າທີ່ຜູ້ໃຊ້ສາມາດເຂົ້າເຖິງ Hive. ໂດຍປົກກະຕິແລ້ວ, ບໍລິການນີ້ຈະຖືກຈັດໃສ່ໃນ Edge nodes ທີ່ອຸທິດໃຫ້ຜູ້ໃຊ້.
  • Hive Metastore - ມັນເປັນຫໍສະ ໝຸດ ກາງ ສຳ ລັບເກັບຮັກສາ Metiveata Hive
  • WebHCat Server - ມັນແມ່ນ Web Web ສຳ ລັບ HCatalog ແລະ Hadoop Services ອື່ນໆ.
  • Hiveserver2 - ມັນແມ່ນການໂຕ້ຕອບຂອງລູກຄ້າ ສຳ ລັບການ ດຳ ເນີນການສອບຖາມກ່ຽວກັບ Hive.

ເມື່ອໄດ້ເລືອກເຄື່ອງແມ່ຂ່າຍແລ້ວ, ໃຫ້ຄລິກໃສ່ 'ສືບຕໍ່' ເພື່ອ ດຳ ເນີນການ.

4. Hive Metastore ຕ້ອງການຖານຂໍ້ມູນພື້ນຖານໃນການເກັບຮັກສາເມຕາເດຕາ. ນີ້ພວກເຮົາ ກຳ ລັງໃຊ້ຖານຂໍ້ມູນ PostgreSQL ໃນຕອນຕົ້ນເຊິ່ງ ກຳ ລັງກໍ່ສ້າງກັບ CDH.

ລາຍລະອຽດຂອງຖານຂໍ້ມູນທີ່ກ່າວມາຂ້າງລຸ່ມນີ້ຈະຖືກປ້ອນໂດຍອັດຕະໂນມັດ, 'ການທົດສອບການເຊື່ອມຕໍ່' ຈະຖືກຂ້າມຍ້ອນວ່າຖານຂໍ້ມູນທີ່ກ່າວມາຈະຖືກສ້າງຂື້ນຢ່າງໄວວາ ໃນເວລາຈິງ, ພວກເຮົາຕ້ອງສ້າງ Database ໃນຖານຂໍ້ມູນພາຍນອກແລະທົດສອບການເຊື່ອມຕໍ່ເພື່ອ ດຳ ເນີນການຕໍ່ໄປ. ເມື່ອເຮັດແລ້ວ, ກະລຸນາກົດປຸ່ມ 'ສືບຕໍ່'.

5. ຕັ້ງຄ່າ Hive Warehouse,/user/hive/ສາງແມ່ນເສັ້ນທາງໄດເລກະທໍລີ ສຳ ລັບເກັບຕາຕະລາງ Hive. ກົດ 'ສືບຕໍ່'.

6. ການຕິດຕັ້ງ Hive ແມ່ນເລີ່ມຕົ້ນ.

7. ເມື່ອການຕິດຕັ້ງ ສຳ ເລັດແລ້ວ, ທ່ານສາມາດໄດ້ຮັບສະຖານະພາບ 'ສຳ ເລັດຮູບ'. ກົດ 'ສືບຕໍ່' ເພື່ອ ດຳ ເນີນການຕໍ່ໄປ.

8. Hive ຕິດຕັ້ງແລະຕັ້ງຄ່າ ສຳ ເລັດແລ້ວ. ກົດ 'ສຳ ເລັດ' ເພື່ອ ສຳ ເລັດຂັ້ນຕອນການຕິດຕັ້ງ.

9. ທ່ານສາມາດເຫັນການບໍລິການ Hive ເພີ່ມໃນ Cluster ຜ່ານ Cloudera Manager Dashboard.

10. ທ່ານສາມາດເບິ່ງ Hiveserver2 ໃນຕົວຢ່າງ Hiveerver2. ພວກເຮົາໄດ້ເພີ່ມ Hiveserver2 ໃນ master1.

ຜູ້ຈັດການ Cloudera -> Hive -> Instances -> Hiveserver2.

ເຮັດໃຫ້ສາມາດມີໄດ້ສູງສຸດ Hive

11. ຕໍ່ໄປເພີ່ມບົດບາດ Hive ໂດຍເຂົ້າ Cloudera Manager -> Hive -> ການກະ ທຳ -> ເພີ່ມພາລະບົດບາດ.

ເລືອກ server ທີ່ທ່ານຕ້ອງການວາງ Hiveserver2 ພິເສດ. ທ່ານສາມາດເພີ່ມຫຼາຍກ່ວາສອງ, ບໍ່ມີຂອບເຂດຈໍາກັດ. ນີ້ພວກເຮົາ ກຳ ລັງເພີ່ມຕື່ມ Hiveserver2 ໜຶ່ງ ໃນ master2.

13. ເມື່ອໄດ້ເລືອກ server ແລ້ວ, ໃຫ້ກົດ 'ສືບຕໍ່'.

14. Hiverserver2 ຈະຖືກເພີ່ມເຂົ້າໃນ Hive Instances, ທ່ານ ຈຳ ເປັນຕ້ອງເລີ່ມຕົ້ນໂດຍເຂົ້າ Cloudera Manager -> Hive -> Instances -> (ເລືອກ Hiveserver2 ເພີ່ມ ໃໝ່) -> Action for Selected -> Start.

15. ເມື່ອ Hiveserver2 ເລີ່ມຕົ້ນໃນ master2, ທ່ານຈະໄດ້ຮັບສະຖານະພາບ 'ສຳ ເລັດຮູບ'. ກົດປິດ.

16. ທ່ານສາມາດເບິ່ງໄດ້, ທັງສອງ Hiveserver2s ກຳ ລັງແລ່ນຢູ່.

ການກວດສອບຄວາມເປັນໄປໄດ້ຂອງ Hive

ພວກເຮົາສາມາດເຊື່ອມຕໍ່ Hiveserver2 ຜ່ານ Beeline ເຊິ່ງເປັນລູກຄ້າບາງໆແລະສາຍບັນຊາ. ມັນໃຊ້ຕົວຂັບ JDBC ເພື່ອສ້າງຕັ້ງການເຊື່ອມຕໍ່.

17. ເຂົ້າສູ່ລະບົບ Server ເຊິ່ງ Hive Gateway ກຳ ລັງແລ່ນຢູ່.

[[email  ~]$ beeline

18. ໃສ່ສາຍເຊື່ອມຕໍ່ JDBC ເພື່ອເຊື່ອມຕໍ່ Hiveserver2. ໃນການເຊື່ອມຕໍ່ນີ້, ສະຕິງທີ່ພວກເຮົາ ກຳ ລັງກ່າວເຖິງ Hiverserver2 (master2) ກັບ ໝາຍ ເລກພອດເລີ່ມຕົ້ນຂອງມັນແມ່ນ 10000. ສາຍເຊື່ອມຕໍ່ນີ້ຈະເຊື່ອມຕໍ່ກັບ Hiveserver2 ທີ່ ກຳ ລັງເຮັດວຽກຢູ່ master2 ເທົ່ານັ້ນ.

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

19. ດຳ ເນີນການສອບຖາມຕົວຢ່າງ.

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

ນີ້ແມ່ນຖານຂໍ້ມູນເລີ່ມຕົ້ນທີ່ເກີດຂື້ນ.

20. ໃຊ້ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້ເພື່ອສິ້ນສຸດ Hive.

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

21. ທ່ານສາມາດໃຊ້ວິທີດຽວກັນໃນການເຊື່ອມຕໍ່ Hiveserver2 ທີ່ແລ່ນຢູ່ master2.

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

23. ພວກເຮົາສາມາດເຊື່ອມຕໍ່ Hiveserver2 ໃນຮູບແບບ Zookeeper Discovery. ໃນວິທີການນີ້, ພວກເຮົາບໍ່ ຈຳ ເປັນຕ້ອງກ່າວເຖິງ Hiveserver2 ໃນສາຍເຊື່ອມຕໍ່ແທນທີ່ພວກເຮົາ ກຳ ລັງໃຊ້ Zookeeper ເພື່ອຄົ້ນພົບ Hiveserver2 ທີ່ມີຢູ່.

ໃນທີ່ນີ້ພວກເຮົາສາມາດນໍາໃຊ້ຕົວສົມສ່ວນການໂຫຼດຂອງພາກສ່ວນທີສາມເພື່ອດຸ່ນດ່ຽງການໂຫຼດລະຫວ່າງ Hiverserver2 ທີ່ມີຢູ່. ການຕັ້ງຄ່າດ້ານລຸ່ມນີ້ແມ່ນຕ້ອງການເປີດໃຊ້ Zookeeper Discovery Mode ໂດຍເຂົ້າໄປທີ່ Cloudera Manager -> Hive -> ການຕັ້ງຄ່າ.

24. ຕໍ່ໄປ, ຄົ້ນຫາຄຸນສົມບັດ“ HiveServer2 Advanced Configuration Snippet” ແລະກົດປຸ່ມ + ເພື່ອເພີ່ມຄຸນສົມບັດລຸ່ມນີ້.

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

25. ເມື່ອໄດ້ເຂົ້າຊັບສິນແລ້ວ, ກົດ“ ບັນທຶກການປ່ຽນແປງ”.

26. ໃນຂະນະທີ່ພວກເຮົາໄດ້ປ່ຽນແປງການຕັ້ງຄ່າ, ຈຳ ເປັນຕ້ອງເລີ່ມການບໍລິການທີ່ຖືກກະທົບໂດຍການກົດປຸ່ມສີສັນສີສັນເພື່ອເລີ່ມການບໍລິການ.

27. ກົດທີ່“ Restart Stale ’services.

28. ມີສອງທາງເລືອກໃຫ້. ຖ້າຫາກວ່າກຸ່ມບ້ານຢູ່ໃນການຜະລິດທີ່ມີຊີວິດຊີວາ, ພວກເຮົາຕ້ອງການໃຫ້ມີການເລີ່ມຕົ້ນຂອງການລອກລອກເພື່ອຫຼຸດຜ່ອນການຫຼຸດຜ່ອນການຫຼຸດຜ່ອນ. ເມື່ອພວກເຮົາ ກຳ ລັງຕິດຕັ້ງ ໃໝ່, ພວກເຮົາສາມາດເລືອກຕົວເລືອກທີສອງ 'ນຳ ໃຊ້ການຕັ້ງຄ່າລູກຄ້າ ໃໝ່', ແລະກົດ 'Restart Now'.

29. ເມື່ອການເລີ່ມຕົ້ນ ໃໝ່ ສຳ ເລັດແລ້ວ, ທ່ານຈະໄດ້ຮັບສະຖານະພາບ“ ສຳ ເລັດຮູບ”. ກົດ 'ສຳ ເລັດຮູບ' ເພື່ອ ສຳ ເລັດຂັ້ນຕອນ.

30. ຕອນນີ້ພວກເຮົາຈະເຊື່ອມຕໍ່ Hiveserver2 ໂດຍໃຊ້ໂຫມດ Zookeeper Discovery. ໃນການເຊື່ອມຕໍ່ JDBC, ສະຕິງທີ່ພວກເຮົາຕ້ອງການ ນຳ ໃຊ້ເຊີບເວີ Zookeeper ດ້ວຍເລກພອດ 2081. ເກັບເຄື່ອງແມ່ຂ່າຍ Zookeeper ໂດຍໄປທີ່ Cloudera Manager -> Zookeeper -> Instances -> (ໝາຍ ເຫດຊື່ເຄື່ອງແມ່ຂ່າຍ).

ນີ້ແມ່ນສາມເຊີບເວີທີ່ມີ Zookeeper, 2181 ແມ່ນ ໝາຍ ເລກພອດ.

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

31. ດຽວນີ້ເຂົ້າສູ່ລະບົບ Beeline.

[[email  ~]$ beeline

32. ໃສ່ສາຍເຊື່ອມຕໍ່ JDBC ດັ່ງທີ່ກ່າວມາຂ້າງລຸ່ມ. ພວກເຮົາຕ້ອງໄດ້ກ່າວເຖິງ ໂໝດ ບໍລິການຄົ້ນພົບແລະ Zookeeper Namespace. 'hiveserver2' ແມ່ນ Namespace ຂອງ 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. ດຽວນີ້ພາກໄດ້ຖືກເຊື່ອມຕໍ່ກັບ Hiveserver2 ທີ່ແລ່ນຢູ່ master1. ດໍາເນີນການສອບຖາມຕົວຢ່າງເພື່ອເຮັດໃຫ້ຖືກຕ້ອງ. ໃຊ້ ຄຳ ສັ່ງດ້ານລຸ່ມເພື່ອສ້າງຖານຂໍ້ມູນ.

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. ດຽວນີ້ພວກເຮົາຈະກວດສອບຄວາມພ້ອມທີ່ມີຄວາມພ້ອມສູງໃນ Zookeeper Discovery Mode. ໄປທີ່ Cloudera Manager ແລະຢຸດ Hiveserver2 ໃນ master1 ທີ່ພວກເຮົາໄດ້ທົດສອບຢູ່ຂ້າງເທິງ.

ຜູ້ຈັດການ Cloudera -> Hive -> Instances -> (ເລືອກ Hiveserver2 on master1) -> Action for selected -> Stop.

36. ກົດປຸ່ມ 'Stop'. ເມື່ອຢຸດເຊົາແລ້ວ, ທ່ານຈະໄດ້ຮັບສະຖານະພາບ 'ສຳ ເລັດຮູບ'. ກວດສອບ Hiveserver2 ໃນ master1 ໂດຍ ນຳ ທາງ Hive -> Instances.

37. ເຂົ້າໄປໃນ Beeline ແລະເຊື່ອມຕໍ່ Hiveserver2 ໂດຍໃຊ້ສາຍເຊື່ອມຕໍ່ JDBC ດຽວກັນກັບ Zookeeper Discovery Mode ດັ່ງທີ່ພວກເຮົາໄດ້ເຮັດໃນຂັ້ນຕອນຂ້າງເທິງ.

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

ຕອນນີ້ທ່ານຈະເຊື່ອມຕໍ່ກັບ Hiveserver2 ທີ່ແລ່ນຢູ່ master2.

38. ກວດສອບຄວາມຖືກຕ້ອງດ້ວຍແບບສອບຖາມຕົວຢ່າງ.

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

ໃນບົດຂຽນນີ້, ພວກເຮົາໄດ້ຜ່ານຂັ້ນຕອນລະອຽດເພື່ອໃຫ້ມີຕົວແບບ Hive Data Warehouse ໃນ Cluster ຂອງພວກເຮົາທີ່ມີຄວາມພ້ອມສູງ. ໃນສະພາບແວດລ້ອມການຜະລິດໃນເວລາຈິງ, ຫຼາຍກ່ວາສາມ Hiveserver2 ຈະຖືກຈັດໃສ່ກັບ Zookeeper Discovery Mode ເປີດໃຊ້ງານ.

ທີ່ນີ້, Hiveserver2 ທຸກຄົນລົງທະບຽນກັບ Zookeeper ພາຍໃຕ້ Namespace ທົ່ວໄປ. Zookeeper ແບບເຄື່ອນໄຫວຄົ້ນພົບ Hiveserver2 ທີ່ມີຢູ່ແລະສ້າງ Hive session.