全部产品
Search
文档中心

E-MapReduce:Aktifkan akselerasi query berdasarkan mesin asli

更新时间:Jul 02, 2025

JindoTable menyediakan mesin asli untuk meningkatkan kecepatan penggunaan Spark, Hive, atau Presto dalam menanyakan file berformat ORC atau Parquet. Topik ini menjelaskan cara mengaktifkan akselerasi query berdasarkan mesin asli guna meningkatkan performa Spark, Hive, dan Presto.

Prasyarat

Cluster E-MapReduce (EMR) telah dibuat, dan file dalam format ORC atau Parquet disimpan di JindoFS atau Object Storage Service (OSS). Untuk informasi lebih lanjut tentang cara membuat cluster, lihat Buat Cluster.

Batasan

  • File biner tidak didukung.

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

  • Cluster EMR versi V5.X.X atau versi lebih baru tidak didukung.

  • spark.read.schema (userDefinedSchema) tidak didukung.

  • Data tipe DATE harus dalam format YYYY-MM-DD dan berkisar dari 1400-01-01 hingga 9999-12-31.

  • Jika sebuah tabel berisi dua kolom dengan nama kolom yang sama tetapi huruf besar/kecil berbeda, seperti NAME dan name, query pada kolom tersebut tidak dapat dipercepat.

  • Tabel berikut mencantumkan mesin Spark, Hive, dan Presto yang didukung serta format file yang didukung oleh setiap mesin.

    Mesin

    ORC

    Parquet

    Spark2

    Didukung

    Didukung

    Spark3

    Didukung

    Didukung

    Presto

    Didukung

    Didukung

    Hive2

    Tidak didukung

    Didukung

    Hive3

    Tidak didukung

    Didukung

  • Tabel berikut mencantumkan mesin Spark, Hive, dan Presto yang didukung serta sistem file yang didukung oleh setiap mesin.

    Mesin

    OSS

    JindoFS

    HDFS

    Spark2

    Didukung

    Didukung

    Didukung

    Presto

    Didukung

    Didukung

    Didukung

    Hive2

    Didukung

    Didukung

    Tidak didukung

    Hive3

    Didukung

    Didukung

    Tidak didukung

Tingkatkan performa Spark

  1. Aktifkan akselerasi query untuk file ORC atau Parquet di JindoTable.

    Catatan
    • Akselerasi query menggunakan memori off-heap. Kami sarankan Anda menambahkan --conf spark.executor.memoryOverhead=4g ke tugas Spark untuk mengajukan sumber daya tambahan guna mendukung akselerasi query.

    • Jika Anda menggunakan Spark untuk membaca data dari file ORC atau Parquet, API DataFrame atau Spark SQL diperlukan.

    • Konfigurasi Global

      1. Buka halaman Cluster Overview kluster Anda.

        1. Masuk ke Konsol EMR Alibaba Cloud.

        2. Di bilah navigasi atas, pilih wilayah tempat Anda ingin membuat kluster. Wilayah kluster tidak dapat diubah setelah kluster dibuat.

        3. Klik tab Cluster Management.

        4. Di halaman Cluster Management, temukan kluster Anda dan klik Details di kolom Aksi.

      2. Ubah parameter terkait.

        1. Di panel navigasi kiri halaman yang muncul, pilih Cluster Service > Spark.

        2. Di halaman layanan Spark, klik tab Configure.

        3. Cari parameter spark.sql.extensions dan ubah nilainya menjadi io.delta.sql.DeltaSparkSessionExtension,com.aliyun.emr.sql.JindoTableExtension.

      3. Simpan konfigurasi.

        1. Klik Save di pojok kanan atas.

        2. Di kotak dialog Confirm Changes, tentukan Description dan klik OK.

      4. Mulai ulang ThriftServer.

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

        2. Di kotak dialog Cluster Activities, tentukan Description dan klik OK.

        3. Di pesan Confirm, klik OK.

    • Konfigurasi Tingkat Pekerjaan

      Saat mengonfigurasi pekerjaan Spark Shell atau Spark SQL, tambahkan konfigurasi berikut ke kode:

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

      Untuk informasi lebih lanjut tentang cara mengonfigurasi pekerjaan Spark, lihat Konfigurasikan Pekerjaan Spark Shell atau Konfigurasikan Pekerjaan Spark SQL.

  2. Periksa apakah akselerasi query diaktifkan.

    1. Akses antarmuka web Spark History Server.

    2. Di tab SQL Spark, lihat informasi tentang tugas terkait.

      Jika JindoDataSourceV2Scan muncul, akselerasi query diaktifkan. Jika tidak, periksa konfigurasi di Langkah 1. check_Jindo

Tingkatkan performa Presto

Penting

Presto memiliki konkurensi query tinggi dan menggunakan memori off-heap untuk akselerasi query. Untuk menggunakan fitur akselerasi query, pastikan bahwa memori lebih besar dari 10 GB.

Secara default, catalog: hive-acc dari mesin asli sudah terpasang di layanan Presto. Anda dapat menggunakan catalog: hive-acc untuk mengaktifkan akselerasi query.

Contoh:

presto --server emr-header-1:9090 --catalog hive-acc --schema default
Catatan

Saat menggunakan fitur ini di Presto, tipe data kompleks seperti MAP, STRUCT, dan ARRAY tidak didukung.

Tingkatkan performa Hive

Penting

Jika Anda memiliki persyaratan tinggi untuk stabilitas pekerjaan, kami sarankan Anda tidak mengaktifkan akselerasi query.

Anda dapat menggunakan salah satu metode berikut untuk meningkatkan performa Hive:

  • Gunakan Konsol EMR

    Pada tab Configure di halaman layanan Hive, cari parameter hive.jindotable.native.enabled dan ubah nilainya menjadi true. Simpan konfigurasi tersebut dan mulai ulang layanan Hive. Metode ini berlaku untuk Hive pada MapReduce serta Hive pada pekerjaan Tez. hive

  • Gunakan CLI

    Setel hive.jindotable.native.enabled ke true di CLI untuk mengaktifkan akselerasi query. Secara default, plugin akselerasi query untuk file Parquet diterapkan di JindoTable di EMR V3.35.0 dan versi lebih baru. Anda dapat langsung mengonfigurasi parameter ini di EMR V3.35.0 dan versi lebih baru.

    set hive.jindotable.native.enabled=true;
Catatan

Saat menggunakan fitur ini di Hive, tipe data kompleks seperti MAP, STRUCT, dan ARRAY tidak didukung.