All Products
Search
Document Center

E-MapReduce:Mengelola engine Kyuubi

Last Updated:Jul 18, 2026

Kyuubi mendukung beberapa tingkat berbagi engine yang mengatur cara alokasi engine Spark di berbagai sesi, pengguna, dan kelompok.

Engine yang didukung

Instalasi Kyuubi dalam klaster E-MapReduce juga mencakup YARN dan Spark 3 sebagai dependensi. Kyuubi pada E-MapReduce hanya mendukung Spark 3 di atas YARN. Flink, Trino, dan Spark 2 tidak didukung. Setiap engine Spark berkorespondensi dengan satu aplikasi Spark di YARN. Untuk informasi selengkapnya, lihat Contoh.

Tingkat berbagi

Untuk mengatur tingkat berbagi engine, konfigurasikan parameter kyuubi.engine.share.level pada tab kyuubi-defaults.conf di halaman konfigurasi layanan Kyuubi.

Tingkat berbagi

Deskripsi

Kasus penggunaan

Tingkat isolasi

Kemampuan berbagi

CONNECTION

Satu engine diluncurkan per session.

  • Ekstrak, transformasi, dan muat (ETL) skala besar

  • Kueri ad-hoc

Tinggi

Rendah

USER

Satu engine per pengguna.

Sedang

Sedang

GROUP

Satu engine per kelompok sumber daya.

Rendah

Tinggi

SERVER

Satu engine per kluster.

Administrator

Tertinggi untuk kluster berkeamanan tinggi, dan terendah untuk kluster standar.

Kluster berkeamanan tinggi hanya tersedia untuk administrator.

Contoh

Contoh berikut menggunakan tingkat berbagi USER (kyuubi.engine.share.level diatur ke USER) dan mengasumsikan semua pengguna diautentikasi melalui Lightweight Directory Access Protocol (LDAP) atau Kerberos.

  1. Meluncurkan engine sesuai permintaan

    Ketika pengguna baru, user1, mengirim pekerjaan menggunakan tool kyuubi-beeline, server Kyuubi meluncurkan engine Spark baru untuk memprosesnya.

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

    Jika pengguna lain, user2, perlu menentukan resource untuk engine Spark, mereka dapat menggunakan salah satu metode berikut:

    • Metode 1: Atur resource, seperti executor aplikasi Spark, dalam URL JDBC.

      # 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: Atur resource untuk engine Spark dalam file konfigurasi kyuubi-defaults.conf.

      # 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. Mengirim pekerjaan ke engine tertentu

    Setelah pekerjaan selesai, engine Spark yang diluncurkan oleh Kyuubi tetap aktif selama periode yang dapat dikonfigurasi. Pekerjaan baru dapat menggunakan kembali engine idle ini, sehingga meningkatkan performa karena tidak perlu meluncurkan aplikasi YARN baru. Jika tidak ada pekerjaan baru yang dikirim dalam periode tersebut, engine akan secara otomatis dihentikan. Parameter kyuubi.session.engine.idle.timeout menentukan periode timeout idle, yang secara default bernilai PT30M (30 menit). Anda dapat mengonfigurasi parameter ini pada tab kyuubi-defaults.conf.

    Kyuubi memungkinkan Anda membuat subdomain dalam tingkat berbagi yang sama. Misalnya, jika pengguna user4 memerlukan resource engine berbeda untuk skenario bisnis yang berbeda, mereka dapat mengatur parameter kyuubi.engine.share.level.subdomain dalam URL JDBC untuk mengirim pekerjaan ke engine 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. Satu engine mendukung beberapa sesi Spark

    Beberapa sesi Spark dapat menggunakan satu engine Spark secara bersamaan. Misalnya, jika pengguna user1 mengirim dua pekerjaan dari dua terminal berbeda secara bersamaan, kedua pekerjaan tersebut berjalan pada engine Spark yang sama. Spark mengalokasikan resource executor ke pekerjaan berdasarkan mekanisme penjadwalan internal default-nya.

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

Referensi