All Products
Search
Document Center

E-MapReduce:Aktifkan akselerasi kueri native

Last Updated:Mar 27, 2026

Mesin native JindoTable mempercepat kueri Spark, Hive, dan Presto pada file ORC dan Parquet yang disimpan di JindoFS atau Object Storage Service (OSS). Fitur ini dinonaktifkan secara default.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Kluster E-MapReduce (EMR) yang menjalankan V3.35.0 atau versi lebih baru, atau V4.9.0 atau versi lebih baru

  • File ORC atau Parquet yang disimpan di JindoFS atau OSS

Untuk petunjuk membuat kluster EMR, lihat Create a cluster.

Engine dan format yang didukung

Mesin native mendukung kombinasi engine dan format file berikut:

Engine ORC Parquet
Spark2 Supported Supported
Presto Supported Unsupported
Hive2 Unsupported Supported

Batasan

  • Data bertipe binary tidak didukung.

  • Tabel terpartisi yang nilai kolom kunci partisinya disimpan dalam file tidak didukung.

  • Mendefinisikan skema dengan spark.read.schema (userDefinedSchema) tidak diperbolehkan karena skema tersebut dapat bertentangan dengan skema file yang sudah ada.

  • Data bertipe date harus dalam format YYYY-MM-DD dan berada dalam rentang 1400-01-01 hingga 9999-12-31.

  • Kueri pada kolom case-sensitive dalam tabel yang sama tidak dapat dipercepat. Misalnya, jika sebuah tabel memiliki kolom ID dan kolom id, kueri pada kolom-kolom tersebut tidak dapat dipercepat.

Aktifkan akselerasi kueri untuk Spark

Catatan

Akselerasi kueri menggunakan memori off-heap. Tambahkan --conf spark.executor.memoryOverhead=4g ke tugas Spark Anda untuk mengalokasikan memori yang cukup bagi mesin native.

Konfigurasikan parameter global

Untuk menerapkan akselerasi kueri ke semua pekerjaan Spark dalam suatu kluster, atur parameter spark.sql.extensions secara global:

  1. Masuk ke Alibaba Cloud EMR console.

  2. Pada bilah navigasi atas, pilih wilayah tempat kluster Anda berada dan pilih kelompok sumber daya.

  3. Klik tab Cluster Management.

  4. Temukan kluster Anda dan klik Details di kolom Actions.

  5. Pada panel navigasi kiri, pilih Cluster Service > Spark.

  6. Klik tab Configure.

  7. Temukan parameter spark.sql.extensions dan atur nilainya menjadi:

    io.delta.sql.DeltaSparkSessionExtension,com.aliyun.emr.sql.JindoTableExtension
  8. Klik Save di pojok kanan atas bagian Service Configuration.

  9. Pada kotak dialog Confirm Changes, masukkan Description lalu klik OK.

  10. Pilih Actions > Restart ThriftServer di pojok kanan atas.

  11. Pada kotak dialog Cluster Activities, masukkan Description lalu klik OK.

  12. Pada pesan Confirm, klik OK.

Konfigurasikan parameter tingkat pekerjaan

Untuk mengaktifkan akselerasi kueri pada satu pekerjaan Spark Shell atau Spark SQL, tambahkan parameter startup berikut saat mengirimkan pekerjaan:

spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension,com.aliyun.emr.sql.JindoTableExtension

Untuk detail konfigurasi, lihat Configure a Spark Shell job dan Configure a Spark SQL job.

Verifikasi bahwa akselerasi aktif

  1. Buka antarmuka web UI Spark History Server.

  2. Pada tab SQL, buka tugas eksekusi untuk pekerjaan Anda. Jika JindoDataSourceV2Scan muncul dalam rencana eksekusi, akselerasi kueri aktif. Jika tidak muncul, periksa konfigurasi Anda pada langkah-langkah di atas.

    check_Jindo

Aktifkan akselerasi kueri untuk Presto

Presto menyertakan katalog bawaan bernama hive-acc. Terhubung ke katalog ini untuk mengaktifkan akselerasi kueri:

presto --server https://emr-header-1.cluster-xxx:7778/ --catalog hive-acc --schema default

Ganti emr-header-1.cluster-xxx dengan hostname node emr-header-1 Anda.

Catatan

Tipe data kompleks (MAP, STRUCT, dan ARRAY) tidak didukung saat menggunakan fitur ini di Presto.

Aktifkan akselerasi kueri untuk Hive

Penting

Jika penjadwalan pekerjaan yang stabil menjadi prioritas utama, biarkan fitur ini dinonaktifkan di Hive.

EMR Hive V2.3.7 (EMR V3.35.0) menyertakan Plugin JindoTable yang mempercepat kueri Parquet. Atur parameter hive.jindotable.native.enabled untuk mengaktifkannya.

Opsi 1: Atur parameter dalam pekerjaan Hive Anda

set hive.jindotable.native.enabled=true;

Opsi 2: Atur parameter pada halaman konfigurasi Hive (Hive on MapReduce dan Hive on Tez)

  1. Pada halaman konfigurasi Hive, klik tab hive-site.xml.

  2. Tambahkan parameter kustom hive.jindotable.native.enabled dan atur nilainya menjadi true.

  3. Simpan konfigurasi dan restart Hive.

Catatan

Tipe data kompleks (MAP, STRUCT, dan ARRAY) tidak didukung saat menggunakan fitur ini di Hive.