Cara Memasang dan Mengonfigurasi Hive dengan Ketersediaan Tinggi – Bagian 7


Hive adalah model Data Warehouse di Eko-Sistem Hadoop. Ini dapat berfungsi sebagai alat ETL di atas Hadoop. Mengaktifkan Ketersediaan Tinggi (HA) di Hive tidak sama dengan yang kami lakukan di Layanan Master seperti Namenode dan Resource Manager.

Failover otomatis tidak akan terjadi di Hive (Hiveserver2). Jika ada Hiveserver2 (HS2) yang gagal, menjalankan tugas pada HS2 yang gagal tersebut akan gagal. Kami perlu mengirimkan ulang pekerjaan agar pekerjaan dapat berjalan di HiveServer2 lainnya. Jadi, mengaktifkan HA di HS2 tidak lain adalah meningkatkan jumlah komponen HS2 di Cluster.

Dalam artikel ini, kita akan melihat langkah-langkah untuk menginstal dan mengaktifkan Ketersediaan Tinggi dari Hive.

Persyaratan

  • Praktik Terbaik untuk Menerapkan Server Hadoop di CentOS/RHEL 7 – Bagian 1
  • Menyiapkan Prasyarat Hadoop dan Penguatan Keamanan – Bagian 2
  • Cara Install dan Konfigurasi Cloudera Manager di CentOS/RHEL 7 – Part 3
  • Cara Install CDH dan Konfigurasi Service Placement di CentOS/RHEL 7 – Part 4
  • Cara Mengatur Ketersediaan Tinggi untuk Namenode – Bagian 5
  • Cara Mengatur Ketersediaan Tinggi untuk Resource Manager – Bagian 6

Mari kita mulai…

Instalasi dan Konfigurasi Sarang

1. Masuk ke Cloudera Manager di URL di bawah dan navigasikan ke Cloudera Manager –> Tambahkan Layanan .

http://13.233.129.39:7180/cmf/home

2. Pilih layanan 'Hive'.

3. Tetapkan layanan pada node.

  • Gateway – Ini adalah layanan klien tempat pengguna dapat mengakses Hive. Biasanya, layanan ini akan ditempatkan di node Edge yang didedikasikan untuk pengguna.
  • Hive Metastore – Ini adalah repositori pusat untuk menyimpan Metadata Hive.
  • Server WebHCat – Ini adalah API Web untuk HCatalog dan Layanan Hadoop lainnya.
  • Hiveserver2 – Ini adalah antarmuka klien untuk eksekusi kueri di Hive.

Setelah memilih server, klik 'Lanjutkan' untuk melanjutkan.

4. Hive Metastore memerlukan Database dasar untuk menyimpan Metadata. Di sini kami menggunakan database PostgreSQL default yang terintegrasi dengan CDH.

Detail basis data yang disebutkan di bawah akan dimasukkan secara otomatis, 'Uji Koneksi' akan dilewati karena basis data yang disebutkan akan dibuat dengan cepat. Secara real-time, kita perlu membuat Database di database eksternal dan menguji koneksi untuk melangkah lebih jauh. Setelah selesai, silakan klik ‘Lanjutkan’.

5. Konfigurasikan direktori Hive Warehouse, /user/hive/warehouse adalah jalur direktori default untuk menyimpan tabel Hive. Klik 'Lanjutkan'.

6. Instalasi Hive dimulai.

7. Setelah instalasi selesai, Anda bisa mendapatkan status 'Selesai'. Klik 'Lanjutkan' untuk melanjutkan lebih jauh.

8. Instalasi dan Konfigurasi Hive berhasil diselesaikan. Klik 'Selesai' untuk menyelesaikan prosedur instalasi.

9. Anda dapat melihat layanan Hive yang ditambahkan di Cluster melalui Dasbor Cloudera Manager.

10. Anda dapat melihat Hiveserver2 di Instance dari Hive. Kami telah menambahkan Hiveserver2 di master1.

Manajer Cloudera –> Hive –> Instance –> Hiveserver2.

Mengaktifkan Ketersediaan Tinggi di Hive

11. Selanjutnya tambahkan peran Hive dengan membuka Cloudera Manager –> Hive –> Actions –> Tambahkan Instance Peran.

12. Pilih server tempat Anda ingin menempatkan Hiveserver2 tambahan. Boleh tambah lebih dari dua, tidak ada batasan. Di sini kami menambahkan satu Hiveserver2 tambahan di master2.

13. Setelah memilih server, klik 'Lanjutkan'.

14. Hiverserver2 akan ditambahkan ke Hive Instances, Anda harus memulainya dengan membuka Cloudera Manager –> Hive –> Instance –> (Select Hiveserver2 ditambahkan baru) –> Tindakan untuk Terpilih –> < kuat>Mulai.

15. Setelah Hiveserver2 dimulai di master2, Anda akan mendapatkan status 'Selesai'. Klik Tutup.

16. Anda dapat melihat, kedua Hiveserver2 sedang berjalan.

Memverifikasi Ketersediaan Hive

Kita dapat menghubungkan Hiveserver2 melalui langsung menuju yang merupakan klien tipis dan baris perintah. Ia menggunakan driver JDBC untuk membuat koneksi.

17. Masuk ke Server tempat Hive Gateway berjalan.

[tecmint@master1 ~]$ beeline

18. Masukkan string koneksi JDBC untuk menghubungkan Hiveserver2. Sehubungan dengan ini, string yang kami sebutkan adalah Hiverserver2 (master2) dengan nomor port defaultnya 10000. String koneksi ini hanya akan terhubung ke Hiveserver2 yang berjalan di master2.

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

19. Jalankan contoh kueri.

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

Ini adalah database default yang sudah ada di dalamnya.

20. Gunakan perintah di bawah ini untuk mengakhiri sesi Hive.

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

21. Anda dapat menggunakan cara yang sama untuk menghubungkan Hiveserver2 yang berjalan di master2.

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

23. Kita dapat menghubungkan Hiveserver2 dalam mode Zookeeper Discovery. Dalam metode ini, kita tidak perlu menyebutkan Hiveserver2 dalam string koneksi, melainkan kita menggunakan Zookeeper untuk menemukan Hiveserver2 yang tersedia.

Di sini kita dapat menggunakan penyeimbang beban pihak ketiga untuk menyeimbangkan beban di antara Hiverserver2 yang tersedia. Konfigurasi di bawah ini diperlukan untuk mengaktifkan Zookeeper Discovery Mode dengan membuka Cloudera Manager –> Hive –> Configuration.

24. Selanjutnya, cari properti “HiveServer2 Advanced Configuration Snippet ” dan klik simbol + untuk menambahkan properti di bawah ini.

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

25. Setelah memasuki properti, klik 'Simpan Perubahan'.

26. Saat kami melakukan perubahan pada Konfigurasi, perlu memulai ulang layanan yang terpengaruh dengan mengeklik Simbol Warna Oranye untuk memulai ulang layanan.

27. Klik layanan 'Restart Stale'.

28. Ada dua opsi yang tersedia. Jika klaster sedang dalam produksi langsung, kita perlu memilih restart bergulir untuk meminimalkan pemadaman. Saat kita baru menginstal, kita dapat memilih opsi kedua ‘Re-deploy Client Configuration’, dan klik ‘Restart Now’.

29. Setelah restart berhasil diselesaikan, Anda akan mendapatkan status 'Selesai'. Klik 'Selesai' untuk menyelesaikan prosesnya.

30. Sekarang kita akan menghubungkan Hiveserver2 menggunakan mode Zookeeper Discovery. Pada koneksi JDBC, string yang kita perlukan untuk menggunakan server Zookeeper dengan nomor portnya 2081. Kumpulkan server Zookeeper dengan membuka Cloudera Manager –> Zookeeper –> Instances –> (Catat nama server).

Ini adalah tiga server yang memiliki Zookeeper, 2181 adalah nomor portnya.

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

31. Sekarang langsung langsung.

[tecmint@master1 ~]$ beeline

32. Masukkan string koneksi JDBC seperti yang disebutkan di bawah. Kami harus menyebutkan Mode Penemuan Layanan dan Ruang Nama Penjaga Kebun Binatang. 'hiveserver2' adalah Namespace default 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. Sekarang sesi terhubung ke Hiveserver2 yang berjalan di master1. Jalankan contoh kueri untuk memvalidasi. Gunakan perintah di bawah ini untuk membuat database.

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

34. Gunakan perintah di bawah ini untuk membuat daftar database.

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

35. Sekarang kami akan memvalidasi Ketersediaan Tinggi dalam Mode Penemuan Penjaga Kebun Binatang. Buka Cloudera Manager dan hentikan Hiveserver2 di master1 yang telah kami uji di atas.

Cloudera Manager –> Hive –> Instances –> (pilih Hiveserver2 di master1 ) –> Tindakan untuk yang dipilih –> Berhenti.

36. Klik 'Berhenti'. Setelah dihentikan, Anda akan mendapatkan status 'Selesai'. Verifikasi Hiveserver2 di master1 dengan menavigasi ke Hive –> Instances.

37. Masuk ke langsung menuju dan sambungkan Hiveserver2 menggunakan string koneksi JDBC yang sama dengan Zookeeper Discovery Mode seperti yang kita lakukan pada langkah di atas.

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

Sekarang Anda akan terhubung ke Hiveserver2 yang berjalan di master2.

38. Validasi dengan contoh kueri.

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

Kesimpulan

Dalam artikel ini, kami telah melalui langkah-langkah mendetail untuk memiliki model Hive Data Warehouse di Kluster kami dengan Ketersediaan Tinggi. Dalam lingkungan produksi real-time, lebih dari tiga Hiveserver2 akan ditempatkan dengan Zookeeper Discovery Mode diaktifkan.

Di sini, semua Hiveserver2 mendaftar ke Zookeeper di bawah Namespace yang umum. Penjaga Kebun Binatang Secara Dinamis menemukan Hiveserver2 yang tersedia dan membuat sesi Hive.