All Products
Search
Document Center

E-MapReduce:Load balancing HiveServer2

Last Updated:Jun 21, 2026

Saat kluster E-MapReduce (EMR) menjalankan beberapa layanan HiveServer2, Anda dapat menggunakan ZooKeeper dan Server Load Balancer (SLB) untuk menerapkan load balancing dan mendistribusikan beban di beberapa node. Topik ini menjelaskan cara mengonfigurasi dan menggunakan load balancing HiveServer2 baik untuk kluster standar maupun kluster yang diaktifkan dengan Kerberos.

Batasan

Topik ini hanya berlaku untuk kluster yang telah mengaktifkan fitur High Service Availability.

Anda harus terlebih dahulu membuat kluster ketersediaan tinggi. Untuk informasi selengkapnya, lihat Create a cluster. Fitur High Service Availability harus diaktifkan. Setelah fitur ini diaktifkan, E-MapReduce mendistribusikan node master di perangkat keras dasar yang berbeda untuk mengurangi risiko kegagalan.

Kluster E-MapReduce standar

Metode berikut berlaku untuk kluster yang menonaktifkan Kerberos Authentication.

Load balancing ZooKeeper

ZooKeeper diinstal secara default pada kluster ketersediaan tinggi. Anda dapat menggunakan metode berikut agar ZooKeeper memilih instans HiveServer2 untuk koneksi Anda, yang menyediakan load balancing.

  1. Lakukan koneksi ke kluster melalui SSH. Untuk informasi selengkapnya, lihat Log on to a cluster.

  2. Jalankan perintah berikut. ZooKeeper akan memilih instans HiveServer2 yang tersedia untuk koneksi.

    beeline -u 'jdbc:hive2://master-1-1:2181,master-1-2:2181,master-1-3:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2'
    Catatan

    Dalam perintah tersebut, master-1-1:2181,master-1-2:2181,master-1-3:2181 adalah string koneksi untuk ZooKeeper.

    Untuk mengizinkan Hue terhubung ke instans HiveServer2 yang telah dilengkapi load balancing, tambahkan tiga parameter kustom berikut pada tab hue dalam konfigurasi Hue.

    Parameter

    Deskripsi

    zookeeper.clusters.default.hostports

    String koneksi untuk ZooKeeper. Ganti contoh tersebut dengan nilai aktual Anda. Contoh: master-1-1:2181,master-1-2:2181,master-1-3:2181.

    beeswax.hive_discovery_hs2

    Atur nilainya menjadi true.

    beeswax.hive_discovery_hiveserver2_znode

    Atur nilainya menjadi /hiveserver2.

Load balancing SLB

  1. Buat instans Server Load Balancer (SLB). Untuk informasi selengkapnya, lihat Create and manage a CLB instance.

  2. Tambahkan instans ECS yang menjalankan layanan HiveServer2 ke default server group. Konfigurasikan bobot setiap instans ECS sesuai kebutuhan.

    Untuk informasi selengkapnya, lihat Manage a default server group.

  3. Konfigurasikan listener TCP. Anda dapat menyesuaikan port antarmuka depan. Atur Backend Protocol/Port menjadi TCP:10000.

    Pilih algoritma penjadwalan sesuai kebutuhan Anda. Untuk informasi selengkapnya, lihat Add a TCP listener.

  4. Hubungkan ke HiveServer2.

    1. Hubungkan ke kluster melalui SSH. Untuk informasi selengkapnya, lihat Log on to a cluster.

    2. Jalankan perintah berikut untuk terhubung ke layanan HiveServer2 melalui load balancer.

      beeline -u 'jdbc:hive2://<slb_ip_or_host>:<slb_port>'

      Ganti parameter berikut dengan nilai aktual Anda:

      1. <slb_ip_or_host>: Alamat IP instans SLB atau hostname yang terikat dengannya.

      2. <slb_port>: Port listener antarmuka depan dari instans SLB.

    Untuk mengonfigurasi Hue agar berkomunikasi dengan HiveServer2 melalui load balancer ini, ubah parameter berikut pada tab hue dalam konfigurasi Hue.

    Parameter

    Deskripsi

    hive_server2_host

    Alamat IP instans SLB atau hostname yang terikat dengannya.

    hive_server2_port

    Port listener antarmuka depan dari instans SLB.

Kluster E-MapReduce yang diaktifkan dengan Kerberos

Metode berikut berlaku untuk kluster yang mengaktifkan Kerberos Authentication.

Load balancing ZooKeeper

  1. Jalankan perintah kinit untuk melakukan otentikasi dengan Kerberos dan mendapatkan tiket-granting ticket. Untuk informasi selengkapnya, lihat Use Kerberos authentication.

  2. Hubungkan ke HiveServer2.

    1. Hubungkan ke kluster melalui SSH. Untuk informasi selengkapnya, lihat Log on to a cluster.

    2. Jalankan perintah berikut. ZooKeeper akan memilih instans HiveServer2 yang tersedia untuk koneksi.

      beeline -u 'jdbc:hive2://master-1-1:2181,master-1-2:2181,master-1-3:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2'
      Catatan

      Dalam perintah tersebut, master-1-1:2181,master-1-2:2181,master-1-3:2181 adalah string koneksi untuk ZooKeeper.

      Hue tidak mendukung koneksi ke HiveServer2 yang telah dilengkapi load balancing melalui ZooKeeper pada kluster E-MapReduce yang diaktifkan dengan Kerberos. Oleh karena itu, gunakan metode SLB untuk koneksi dari Hue.

Load balancing SLB

Anda dapat membuat dan mengonfigurasi instans SLB seperti yang dijelaskan dalam bagian Standard E-MapReduce clusters. Pada kluster yang diaktifkan dengan Kerberos, Anda juga harus mengonfigurasi principal Kerberos yang digunakan oleh HiveServer2 agar koneksi berhasil.

Contoh ini mengasumsikan alamat IP SLB adalah 121.40.. dan port listener antarmuka depan adalah 10000. Ganti nilai-nilai tersebut dengan nilai aktual Anda.

  1. Jalankan perintah kinit untuk melakukan otentikasi dengan Kerberos dan mendapatkan tiket-granting ticket. Untuk informasi selengkapnya, lihat Use Kerberos authentication.

  2. Buat principal Hive untuk alamat 121.40.**.** dan ekspor keytab-nya.

    1. Login ke node master-1-1 kluster. Untuk informasi selengkapnya, lihat Log on to a cluster.

    2. Jalankan perintah berikut untuk masuk ke tool admin Kerberos:

      kadmin.local
    3. Jalankan perintah berikut untuk membuat principal dan mengekspornya ke /tmp/slb.keytab:

      addprinc -randkey hive/121.40..
      xst -k /tmp/slb.keytab hive/121.40.**.**
      exit

      Jika kluster Kerberos E-MapReduce Anda terintegrasi dengan instans MIT Kerberos eksternal, gunakan kadmin.local atau kadmin untuk terhubung ke KDC dan jalankan perintah addprinc dan xst.

      Penting

      Mengekspor Kerberos keytab beberapa kali dapat membatalkan file keytab sebelumnya. Pastikan bahwa slb.keytab hanya berisi principal yang paling baru diekspor. Jika Anda perlu mengekspor principal lagi, Anda harus menghapus file keytab yang sebelumnya dihasilkan terlebih dahulu.

  3. Transfer file slb.keytab ke semua node yang menjalankan layanan HiveServer2. Kemudian, pada masing-masing node tersebut, gunakan tool ktutil untuk menggabungkan isi slb.keytab ke dalam file /etc/taihao-apps/hive-conf/keytab/hive.keytab dengan menjalankan perintah berikut:

    ktutil
    rkt /tmp/slb.keytab
    wkt /etc/taihao-apps/hive-conf/keytab/hive.keytab
    quit
  4. Jalankan perintah berikut untuk melihat isi file hive.keytab:

    klist -kt /etc/taihao-apps/hive-conf/keytab/hive.keytab
    [root@master-1-1(172.16.xxx) ~]# klist -kt /etc/taihao-apps/hive-conf/keytab/hive.keytab
    Keytab name: FILE:/etc/taihao-apps/hive-conf/keytab/hive.keytab
    KVNO Timestamp              Principal
    ---- ------------------- ------------------------------------------------------
       2 10/30/2024 14:12:05 hive/master-1-1.c-7d27ce0e7xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-7D27CE0E7xxx.COM
       2 10/30/2024 14:12:05 hive/master-1-1.c-7d27ce0e7xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-7D27CE0E7xxx.COM
       2 10/30/2024 14:12:06 hive/master-1-1.c-7d27ce0e7xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-7D27CE0E7xxx.COM
       2 10/30/2024 14:12:06 hive/master-1-1.c-7d27ce0e7xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-7D27CE0E7xxx.COM
       2 10/30/2024 14:12:06 hive/master-1-1.c-7d27ce0e7xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-7D27CE0E7xxx.COM
       2 10/30/2024 14:12:06 hive/master-1-1.c-7d27ce0e7xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-7D27CE0E7xxx.COM
       2 10/30/2024 14:26:56 hive/121.40.xxx @EMR.C-7D27CE0E77xxx.COM
       2 10/30/2024 14:26:56 hive/121.40.xxx @EMR.C-7D27CE0E77xxx.COM
       2 10/30/2024 14:26:56 hive/121.40.xxx @EMR.C-7D27CE0E77xxx.COM
       2 10/30/2024 14:26:56 hive/121.40.xxx @EMR.C-7D27CE0E77xxx.COM
       2 10/30/2024 14:26:56 hive/121.40.xxx @EMR.C-7D27CE0E77xxx.COM
       2 10/30/2024 14:26:56 hive/121.40.xxx @EMR.C-7D27CE0E77xxx.COM
       2 10/30/2024 14:26:56 hive/121.40.xxx @EMR.C-7D27CE0E77xxx.COM
  5. Ubah konfigurasi Hive untuk kluster tersebut.

    Pada Konsol EMR, buka tab Configure layanan Hive. Cari parameter hive.server2.authentication.kerberos.principal dan ubah nilainya menjadi hive/121.40..@EMR...COM, yaitu principal yang Anda buat pada langkah sebelumnya. Lalu, simpan dan terapkan konfigurasi tersebut.

  6. Mulai ulang layanan HiveServer2.

    1. Pada Konsol EMR, buka tab Status layanan Hive. Pada baris HiveServer2, klik Restart di kolom Actions.

    2. Masukkan alasan eksekusi dan klik OK.

    3. Pada kotak dialog Confirm, klik OK.

  7. Pada node master-1-1, jalankan perintah berikut untuk terhubung ke HiveServer2:

    beeline -u 'jdbc:hive2://121.40.**.**:10000/default;principal=hive/121.40.**.**@EMR.**.COM'