全部产品
Search
文档中心

E-MapReduce:Mengelola Mesin Kyuubi

更新时间:Jun 24, 2025

Topik ini menjelaskan tentang mesin Kyuubi dan tingkat berbagi mereka, serta memberikan contoh cara memulai mesin Kyuubi dan mengirimkan pekerjaan ke mesin tersebut.

Mesin Kyuubi

Saat menginstal Kyuubi di kluster E-MapReduce (EMR), pastikan bahwa mesin YARN dan Spark 3.x telah diinstal terlebih dahulu. Kyuubi di kluster EMR mendukung Spark 3.x pada YARN, tetapi tidak mendukung Flink, Trino, atau mesin Spark 2.x. Dalam contoh-contoh berikut, mesin Spark 3.x digunakan untuk menggambarkan cara mengelola mesin Kyuubi. Setiap mesin Spark 3.x sesuai dengan aplikasi Spark pada YARN. Untuk informasi lebih lanjut, lihat Contoh.

Tingkat Berbagi

Untuk mengonfigurasi tingkat berbagi mesin Kyuubi, buka tab kyuubi-defaults.conf pada halaman layanan Kyuubi di konsol EMR dan konfigurasikan parameter kyuubi.engine.share.level. Tabel berikut menjelaskan detail dari berbagai tingkat berbagi.

Tingkat Berbagi

Deskripsi

Skenario

Tingkat Isolasi

Tingkat Berbagi

CONNECTION

Satu mesin per sesi

  • Ekstraksi, transformasi, dan pemuatan berskala besar (ETL)

  • Kueri ad-hoc

Tinggi

Rendah

USER

Satu mesin per pengguna

Sedang

Sedang

GROUP

Satu mesin per grup sumber daya

Rendah

Tinggi

SERVER

Satu mesin per kluster

Administrator

Paling tinggi untuk kluster keamanan tinggi, dan paling rendah untuk kluster standar

Kluster keamanan tinggi hanya tersedia untuk administrator

Contoh

Contoh berikut menggunakan tingkat berbagi USER untuk menggambarkan cara mengelola mesin Kyuubi. Dalam contoh-contoh tersebut, parameter kyuubi.engine.share.level disetel ke USER, dan semua pengguna telah melewati otentikasi Lightweight Directory Access Protocol (LDAP) atau Kerberos.

  1. Mulai mesin Kyuubi sesuai kebutuhan.

    Jika pengguna baru bernama user1 perlu menggunakan mesin Spark 3.x, jalankan perintah berikut. Setelah pekerjaan dikirimkan menggunakan kyuubi-beeline, server Kyuubi memulai mesin Spark 3.x baru untuk memproses pekerjaan tersebut.

    kyuubi-beeline -n user1 \
      -u "jdbc:hive2://master-1-1:10009/tpcds_parquet_1000" \
      -f query1.sql

    Jika pengguna baru lainnya bernama user2 perlu mengonfigurasi sumber daya yang digunakan oleh mesin Spark 3.x, gunakan salah satu metode berikut:

    • Metode 1: Konfigurasikan sumber daya seperti eksekutor aplikasi Spark dalam URL Java Database Connectivity (JDBC). Contoh kode:

      # Setel konfigurasi Pengguna melalui URL Koneksi JDBC
      
      kyuubi-beeline -n user2 \
        -u "jdbc:hive2://master-1-1:10009/tpcds_parquet_1000?spark.dynamicAllocation.enabled=false;spark.executor.cores=2;spark.executor.memory=4g;spark.executor.instances=4" \
        -f query1.sql
    • Metode 2: Konfigurasikan sumber daya yang digunakan oleh mesin Spark 3.x dalam file konfigurasi kyuubi-defaults.conf. Contoh kode:

      # Setel konfigurasi default Pengguna di kyuubi-defatuls.conf
      # ___user2___.spark.dynamicAllocation.enabled=false
      # ___user2___.spark.executor.memory=5g
      # ___user2___.spark.executor.cores=2
      # ___user2___.spark.executor.instances=10
      
      kyuubi-beeline -n user2 \
        -u "jdbc:hive2://master-1-1:10009/tpcds_parquet_1000" \
        -f query1.sql
  2. Kirimkan pekerjaan ke mesin Spark 3.x yang ditentukan.

    Setelah pekerjaan selesai, mesin Spark 3.x yang dimulai oleh server Kyuubi tetap berjalan selama periode waktu tertentu. Jika Anda ingin mengirimkan pekerjaan lain ke mesin tersebut, Anda dapat langsung menggunakan kembali mesin tanpa meluncurkan aplikasi YARN baru. Ini meningkatkan performa pekerjaan atau kueri SQL. Jika tidak ada pekerjaan yang dikirimkan dalam periode waktu tersebut, mesin secara otomatis keluar dari status berjalan. Periode waktu selama mesin Spark 3.x tetap berjalan ditentukan oleh parameter kyuubi.session.engine.idle.timeout. Secara default, mesin menunggu 30 menit untuk digunakan kembali. Untuk memodifikasi periode waktu, Anda dapat mengubah nilai parameter ini dari PT30M ke nilai lain pada tab kyuubi-defaults.conf halaman layanan Kyuubi.

    Kyuubi memungkinkan Anda membuat subdomain pada tingkat berbagi yang sama. Sebagai contoh, jika pengguna baru bernama user4 perlu menggunakan sumber daya mesin yang berbeda dalam skenario bisnis yang berbeda, Anda dapat mengonfigurasi parameter kyuubi.engine.share.level.subdomain dalam URL JDBC lalu mengirimkan pekerjaan ke mesin yang berbeda.

    kyuubi-beeline -n user4 \
      -u "jdbc:hive2://master-1-1:10009/biz1?kyuubi.engine.share.level.subdomain=biz1" \
      -f query1.sql
    
    kyuubi-beeline -n user4 \
      -u "jdbc:hive2://master-1-1:10009/biz2?kyuubi.engine.share.level.subdomain=biz2" \
      -f query2.sql
    
     kyuubi-beeline -n user4 \
      -u "jdbc:hive2://master-1-1:10009/biz3?kyuubi.engine.share.level.subdomain=biz3" \
      -f query3.sql
  3. Gunakan mesin Spark 3.x dalam beberapa sesi Spark.

    Kyuubi memungkinkan mesin Spark 3.x digunakan dalam beberapa sesi Spark. Sebagai contoh, jika pengguna bernama user1 mengirimkan dua pekerjaan dari dua terminal secara bersamaan, kedua pekerjaan tersebut dapat menggunakan mesin Spark 3.x yang sama untuk komputasi. Eksekutor dialokasikan ke pekerjaan berdasarkan aturan penjadwalan default Spark.

    # Konsol 1
    kyuubi-beeline -n user1 \
      -u "jdbc:hive2://master-1-1:10009/biz1" \
      -f query1.sql
    
    # Konsol 2
    kyuubi-beeline -n user1 \
      -u "jdbc:hive2://master-1-1:10009/biz2" \
      -f query2.sql

Referensi