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
Aktifkan akselerasi query untuk file ORC atau Parquet di JindoTable.
CatatanAkselerasi query menggunakan memori off-heap. Kami sarankan Anda menambahkan
--conf spark.executor.memoryOverhead=4gke 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
Buka halaman Cluster Overview kluster Anda.
Masuk ke Konsol EMR Alibaba Cloud.
Di bilah navigasi atas, pilih wilayah tempat Anda ingin membuat kluster. Wilayah kluster tidak dapat diubah setelah kluster dibuat.
Klik tab Cluster Management.
Di halaman Cluster Management, temukan kluster Anda dan klik Details di kolom Aksi.
Ubah parameter terkait.
Di panel navigasi kiri halaman yang muncul, pilih .
Di halaman layanan Spark, klik tab Configure.
Cari parameter spark.sql.extensions dan ubah nilainya menjadi io.delta.sql.DeltaSparkSessionExtension,com.aliyun.emr.sql.JindoTableExtension.
Simpan konfigurasi.
Klik Save di pojok kanan atas.
Di kotak dialog Confirm Changes, tentukan Description dan klik OK.
Mulai ulang ThriftServer.
Pilih di pojok kanan atas.
Di kotak dialog Cluster Activities, tentukan Description dan klik OK.
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.JindoTableExtensionUntuk informasi lebih lanjut tentang cara mengonfigurasi pekerjaan Spark, lihat Konfigurasikan Pekerjaan Spark Shell atau Konfigurasikan Pekerjaan Spark SQL.
Periksa apakah akselerasi query diaktifkan.
Akses antarmuka web Spark History Server.
Di tab SQL Spark, lihat informasi tentang tugas terkait.
Jika JindoDataSourceV2Scan muncul, akselerasi query diaktifkan. Jika tidak, periksa konfigurasi di Langkah 1.

Tingkatkan performa Presto
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 defaultSaat menggunakan fitur ini di Presto, tipe data kompleks seperti MAP, STRUCT, dan ARRAY tidak didukung.
Tingkatkan performa Hive
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.

Gunakan CLI
Setel
hive.jindotable.native.enabledketruedi 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;
Saat menggunakan fitur ini di Hive, tipe data kompleks seperti MAP, STRUCT, dan ARRAY tidak didukung.