全部产品
Search
文档中心

E-MapReduce:Menyeimbangkan beban HiveServer2

更新时间:Jul 02, 2025

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.HA

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:

  1. Masuk ke kluster Anda dalam mode SSH. Untuk informasi lebih lanjut, lihat Masuk ke Kluster.

  2. 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'
    Catatan

    Dalam perintah sebelumnya, master-1-1:2181,master-1-2:2181,master-1-3:2181 adalah 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

  1. Buat instance SLB. Untuk informasi lebih lanjut, lihat Membuat dan Mengelola Instance CLB.

  2. 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.image

  3. 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.

  4. Akses HiveServer2.

    1. Masuk ke kluster Anda dalam mode SSH. Untuk informasi lebih lanjut, lihat Masuk ke Kluster.

    2. 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:

      1. <slb_ip_or_host>: menunjukkan alamat IP instance SLB atau nama host yang terkait dengan alamat IP instance SLB.

      2. <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

  1. Jalankan perintah kinit untuk mendapatkan Tiket Pemberian (TGT). Untuk informasi lebih lanjut, lihat Gunakan Otentikasi Kerberos untuk Mengakses Klien Hive.

  2. Akses HiveServer2.

    1. Masuk ke kluster Anda dalam mode SSH. Untuk informasi lebih lanjut, lihat Masuk ke Kluster.

    2. 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'
      Catatan

      Dalam perintah sebelumnya, master-1-1:2181,master-1-2:2181,master-1-3:2181 adalah 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.

  1. Jalankan perintah kinit untuk mendapatkan TGT. Untuk informasi lebih lanjut, lihat Gunakan Otentikasi Kerberos untuk Mengakses Klien Hive.

  2. Buat principal Hive yang sesuai dengan alamat IP 121.40.**.** dan ekspor principal ke file keytab yang baru dibuat.

    1. Masuk ke node master-1-1. Untuk informasi lebih lanjut, lihat Masuk ke Kluster.

    2. Jalankan perintah berikut untuk mengaktifkan alat administrasi Kerberos:

      kadmin.local
    3. Jalankan 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.**.**
      exit

      Jika 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 addprinc dan xst.

      Penting

      Jika Anda mengekspor principal beberapa kali, file keytab yang dihasilkan sebelumnya menjadi tidak valid. Pastikan file slb.keytab hanya berisi principal terbaru. Jika Anda ingin mengekspor principal lagi, Anda harus menghapus file keytab yang dihasilkan sebelumnya.

  3. Jalankan perintah berikut untuk mentransfer file slb.keytab ke semua node tempat HiveServer2 diterapkan dan impor isi file slb.keytab ke direktori /etc/ecm/hive-conf/hive.keytab setiap node:

    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

    image

  5. 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.image

  6. Mulai ulang HiveServer.

    1. Pada tab Status halaman layanan Hive di konsol EMR, temukan HiveServer dan klik Restart di kolom Tindakan.

    2. Dalam kotak dialog yang muncul, konfigurasikan parameter Alasan Eksekusi dan klik OK.

    3. Dalam pesan Confirm, klik OK.

  7. 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'