Jika HiveServer2 diterapkan pada beberapa node dalam kluster E-MapReduce (EMR), Anda dapat menggunakan ZooKeeper atau Server Load Balancer (SLB) untuk menyeimbangkan beban HiveServer2. Topik ini menjelaskan metode yang dapat digunakan untuk menyeimbangkan beban HiveServer2, yang dapat dipilih berdasarkan apakah otentikasi Kerberos diaktifkan pada kluster EMR Anda.
Prasyarat
Kluster EMR dengan ketersediaan tinggi telah dibuat. Untuk informasi lebih lanjut, lihat Membuat Kluster.
Batasan
Topik ini hanya berlaku untuk kluster tempat High Service Availability diaktifkan.
Kluster EMR umum
Bagian ini menjelaskan cara menyeimbangkan beban HiveServer2 untuk kluster tempat Kerberos Authentication tidak diaktifkan.
Menggunakan ZooKeeper untuk menyeimbangkan beban HiveServer2
Secara default, ZooKeeper diinstal pada kluster dengan ketersediaan tinggi. Untuk menerapkan penyeimbangan beban pada HiveServer2 menggunakan ZooKeeper, ikuti langkah-langkah berikut:
Masuk ke kluster Anda dalam mode SSH. Untuk informasi lebih lanjut, lihat Masuk ke Kluster.
Jalankan perintah berikut untuk mengizinkan ZooKeeper memilih dan terhubung ke node tempat HiveServer2 diterapkan:
beeline -u 'jdbc:hive2://master-1-1:2181,master-1-2:2181,master-1-3:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2'CatatanDalam perintah sebelumnya,
master-1-1:2181,master-1-2:2181,master-1-3:2181adalah alamat ZooKeeper.Untuk menghubungkan Hue ke HiveServer2 berdasarkan metode penyeimbangan beban ini, tambahkan parameter berikut pada tab hue halaman layanan Hue di konsol EMR.
Parameter
Deskripsi
zookeeper.clusters.default.hostports
Alamat ZooKeeper. Konfigurasikan parameter ini sesuai dengan kebutuhan bisnis Anda. Dalam contoh ini, master-1-1:2181,master-1-2:2181,master-1-3:2181 digunakan.
beeswax.hive_discovery_hs2
Atur parameter ini ke
true.beeswax.hive_discovery_hiveserver2_znode
Atur parameter ini ke
/hiveserver2.
Menggunakan SLB untuk menyeimbangkan beban HiveServer2
Buat instance SLB. Untuk informasi lebih lanjut, lihat Membuat dan Mengelola Instance CLB.
Tambahkan instance Elastic Compute Service (ECS) tempat HiveServer2 diterapkan ke default server group dan konfigurasikan bobot instance ECS sesuai kebutuhan bisnis Anda.
Untuk informasi lebih lanjut, lihat Menambahkan dan Mengelola Server Backend di Kelompok Server Default.

Atur parameter Pilih Protokol Listener ke TCP dan konfigurasikan parameter Port Mendengarkan sesuai kebutuhan bisnis Anda. Atur parameter Backend Protocol/Port ke TCP:10000.
Konfigurasikan parameter Algoritma Penjadwalan sesuai kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Menambahkan Listener TCP.
Akses HiveServer2.
Masuk ke kluster Anda dalam mode SSH. Untuk informasi lebih lanjut, lihat Masuk ke Kluster.
Jalankan perintah berikut untuk terhubung ke HiveServer2 pada beberapa node kluster guna menerapkan penyeimbangan beban:
beeline -u 'jdbc:hive2://<slb_ip_or_host>:<slb_port>'Konfigurasikan parameter berikut sesuai kebutuhan bisnis Anda:
<slb_ip_or_host>: menunjukkan alamat IP instance SLB atau nama host yang terkait dengan alamat IP instance SLB.<slb_port>: menunjukkan port mendengarkan frontend instance SLB.
Untuk menghubungkan Hue ke HiveServer2 berdasarkan metode penyeimbangan beban ini, ubah parameter berikut pada tab hue halaman layanan Hue di konsol EMR.
Parameter
Deskripsi
hive_server2_host
Alamat IP instance SLB atau nama host yang terkait dengan alamat IP instance SLB.
hive_server2_port
Port mendengarkan frontend instance SLB.
Kluster EMR dengan otentikasi Kerberos diaktifkan
Bagian ini menjelaskan cara menyeimbangkan beban HiveServer2 untuk kluster tempat Kerberos Authentication diaktifkan.
Menggunakan ZooKeeper untuk menyeimbangkan beban HiveServer2
Jalankan perintah
kinituntuk mendapatkan Tiket Pemberian (TGT). Untuk informasi lebih lanjut, lihat Gunakan Otentikasi Kerberos untuk Mengakses Klien Hive.Akses HiveServer2.
Masuk ke kluster Anda dalam mode SSH. Untuk informasi lebih lanjut, lihat Masuk ke Kluster.
Jalankan perintah berikut untuk mengizinkan ZooKeeper memilih dan terhubung ke node tempat HiveServer2 diterapkan:
beeline -u 'jdbc:hive2://master-1-1:2181,master-1-2:2181,master-1-3:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2'CatatanDalam perintah sebelumnya,
master-1-1:2181,master-1-2:2181,master-1-3:2181adalah alamat ZooKeeper.Hue tidak dapat terhubung ke HiveServer2 kluster EMR Kerberos berdasarkan metode penyeimbangan beban ini. Untuk menghubungkan Hue ke HiveServer2 kluster EMR Kerberos, gunakan SLB untuk menerapkan penyeimbangan beban.
Menggunakan SLB untuk menyeimbangkan beban HiveServer2
Anda dapat membuat dan mengonfigurasi instance SLB dengan mengikuti instruksi yang dijelaskan dalam bagian Kluster EMR Umum dalam topik ini. Untuk mengakses HiveServer2 kluster Kerberos, Anda harus mengonfigurasi principal Kerberos yang diperlukan oleh HiveServer2.
Dalam contoh ini, alamat IP instance SLB adalah 121.40.**.**, dan port mendengarkan frontend adalah 10000. Anda dapat mengubah alamat IP dan port mendengarkan frontend sesuai kebutuhan bisnis Anda.
Jalankan perintah
kinituntuk mendapatkan TGT. Untuk informasi lebih lanjut, lihat Gunakan Otentikasi Kerberos untuk Mengakses Klien Hive.Buat principal Hive yang sesuai dengan alamat IP 121.40.**.** dan ekspor principal ke file keytab yang baru dibuat.
Masuk ke node master-1-1. Untuk informasi lebih lanjut, lihat Masuk ke Kluster.
Jalankan perintah berikut untuk mengaktifkan alat administrasi Kerberos:
kadmin.localJalankan perintah berikut untuk membuat principal dan mengekspor principal ke direktori
/tmp/slb.keytab:addprinc -randkey hive/121.40.**.** xst -k /tmp/slb.keytab hive/121.40.**.** exitJika kluster EMR Kerberos menggunakan MIT Kerberos sumber terbuka untuk otentikasi, gunakan CLI kadmin.local atau kadmin untuk terhubung ke Key Distribution Center (KDC) dan jalankan perintah
addprincdanxst.PentingJika Anda mengekspor principal beberapa kali, file keytab yang dihasilkan sebelumnya menjadi tidak valid. Pastikan file
slb.keytabhanya berisi principal terbaru. Jika Anda ingin mengekspor principal lagi, Anda harus menghapus file keytab yang dihasilkan sebelumnya.
Jalankan perintah berikut untuk mentransfer file
slb.keytabke semua node tempat HiveServer2 diterapkan dan impor isi file slb.keytab ke direktori/etc/ecm/hive-conf/hive.keytabsetiap node:ktutil rkt /tmp/slb.keytab wkt /etc/taihao-apps/hive-conf/keytab/hive.keytab quitJalankan perintah berikut untuk melihat isi file hive.keytab:
klist -kt /etc/taihao-apps/hive-conf/keytab/hive.keytab
Ubah konfigurasi Hive.
Pada tab Configure halaman layanan Hive di konsol EMR, cari parameter hive.server2.authentication.kerberos.principal dan atur nilainya ke principal yang dibuat pada langkah sebelumnya. Dalam contoh ini, nilainya adalah hive/121.40.**.**@EMR.**.COM. Simpan konfigurasi dan buat konfigurasi tersebut berlaku.

Mulai ulang HiveServer.
Pada tab Status halaman layanan Hive di konsol EMR, temukan HiveServer dan klik Restart di kolom Tindakan.
Dalam kotak dialog yang muncul, konfigurasikan parameter Alasan Eksekusi dan klik OK.
Dalam pesan Confirm, klik OK.
Jalankan perintah berikut pada node master-1-1 untuk mengakses HiveServer2:
beeline -u 'jdbc:hive2://121.40.**.**:10000/default;principal=hive/121.40.**.**@EMR.**.COM'