全部产品
Search
文档中心

DataWorks:Node EMR Spark SQL

更新时间:Feb 05, 2026

Anda dapat membuat node E-MapReduce (EMR) Spark SQL untuk memproses data terstruktur menggunakan mesin kueri SQL terdistribusi, sehingga meningkatkan efisiensi eksekusi pekerjaan.

Prasyarat

  • Untuk menyesuaikan lingkungan komponen suatu node, buat custom image berdasarkan image resmi dataworks_emr_base_task_pod. Untuk informasi selengkapnya, lihat Custom images dan gunakan image tersebut di Data Development.

    Sebagai contoh, Anda dapat mengganti paket JAR Spark atau menambahkan dependensi pada libraries, files, atau JAR packages tertentu saat membuat custom image.

  • Anda telah membuat kluster Alibaba Cloud E-MapReduce (EMR) dan mendaftarkannya ke DataWorks. Untuk informasi selengkapnya, lihat Data Studio: Mengaitkan sumber daya komputasi EMR.

  • (Opsional, wajib untuk pengguna RAM) Tambahkan Pengguna Resource Access Management (RAM) yang bertanggung jawab atas pengembangan tugas ke workspace dan berikan peran Developer atau Workspace Administrator. Peran Workspace Administrator memiliki izin yang luas, jadi berikan dengan hati-hati. Untuk informasi lebih lanjut tentang penambahan anggota, lihat Menambahkan anggota ke workspace.

    Jika Anda menggunakan akun Alibaba Cloud, Anda dapat melewati langkah ini.
  • Jika tugas Anda memerlukan lingkungan tertentu, Anda dapat menggunakan fitur custom image DataWorks untuk membuat image yang berisi komponen yang diperlukan. Untuk informasi selengkapnya, lihat Custom images.

Batasan

  • Jenis tugas ini hanya dapat dijalankan pada Serverless resource group (disarankan) atau grup sumber daya eksklusif untuk penjadwalan. Jika Anda menggunakan image di Data Development, Anda harus menggunakan Serverless resource group.

  • Untuk mengelola metadata DataLake atau kluster kustom di DataWorks, Anda harus mengonfigurasi EMR-HOOK pada kluster tersebut. Untuk informasi selengkapnya, lihat Mengonfigurasi EMR-HOOK untuk Spark SQL.

    Catatan

    Jika EMR-HOOK tidak dikonfigurasi pada kluster, Anda tidak dapat melihat metadata secara real time, menghasilkan log audit, menampilkan alur data, atau melakukan tugas tata kelola data terkait EMR di DataWorks.

  • Kluster EMR on ACK Spark tidak mendukung penampilan alur data, sedangkan kluster EMR Serverless Spark mendukungnya.

  • DataLake dan kluster kustom mendukung pendaftaran fungsi visual, tetapi kluster EMR on ACK dan EMR Serverless Spark tidak mendukungnya.

Catatan

Jika Anda mengaktifkan kontrol akses Ranger untuk Spark di kluster EMR yang dikaitkan dengan workspace saat ini:

  • Fitur ini tersedia secara default saat Anda menjalankan tugas Spark yang menggunakan image default.

  • Untuk menjalankan tugas Spark yang menggunakan custom image, Anda harus mengajukan tiket untuk meningkatkan image agar mendukung fitur ini.

Prosedur

  1. Di editor node EMR Spark SQL, lakukan langkah-langkah berikut.

    Kembangkan kode SQL

    Tulis kode tugas Anda di editor SQL. Anda dapat mendefinisikan variabel dengan menggunakan format ${variable_name} dalam kode Anda. Tetapkan nilai variabel tersebut di bagian Schedule di bawah Parameters di sisi kanan halaman editor node untuk mengaktifkan pengiriman parameter dinamis bagi pekerjaan terjadwal. Untuk informasi selengkapnya tentang parameter penjadwalan, lihat Sumber dan ekspresi parameter penjadwalan. Berikut adalah contohnya.

    SHOW TABLES; 
    -- Mendefinisikan variabel bernama var dengan menggunakan ${var}. Jika Anda memberikan nilai ${yyyymmdd} ke variabel ini, Anda dapat membuat tabel dengan tanggal bisnis sebagai sufiks.
    CREATE TABLE IF NOT EXISTS userinfo_new_${var} (
    ip STRING COMMENT 'IP address',
    uid STRING COMMENT 'User ID'
    )PARTITIONED BY(
    dt STRING
    ); -- Dapat digunakan bersama parameter penjadwalan.

    (Opsional) Konfigurasi parameter lanjutan

    Anda dapat mengonfigurasi parameter lanjutan yang tercantum dalam tabel-tabel berikut di bagian EMR Node Parameters or DataWorks Parameters di bawah di sisi kanan halaman.

    Catatan
    • Parameter lanjutan yang tersedia bervariasi tergantung pada jenis kluster EMR, seperti yang ditunjukkan dalam tabel-tabel berikut.

    • Properti Spark open-source tambahan dapat dikonfigurasi di EMR Node ParametersSpark Parameters di sisi kanan halaman.

    DataLake dan kluster kustom: EMR on ECS

    Parameter

    Deskripsi

    queue

    Antrian penjadwalan untuk pengiriman pekerjaan. Antrian default adalah default. Untuk informasi selengkapnya tentang EMR YARN, lihat Konfigurasi antrian dasar.

    priority

    Prioritas pekerjaan. Nilai default adalah 1.

    FLOW_SKIP_SQL_ANALYZE

    Menentukan cara eksekusi pernyataan SQL. Nilai yang valid:

    • true: Mengeksekusi beberapa pernyataan SQL sekaligus.

    • false (default): Mengeksekusi satu pernyataan SQL dalam satu waktu.

    Catatan

    Parameter ini hanya berlaku untuk pengujian di lingkungan Data Development.

    ENABLE_SPARKSQL_JDBC

    Menentukan metode pengiriman kode SQL. Nilai yang valid:

    • true: Mengirimkan kode SQL menggunakan JDBC (Java Database Connectivity). Jika kluster EMR tidak memiliki layanan Kyuubi, kode SQL dikirimkan ke Spark Thrift-Server. Jika kluster EMR memiliki layanan Kyuubi, kode SQL dikirimkan ke Kyuubi menggunakan JDBC. Mode ini mendukung parameter Spark kustom.

      Kedua metode mendukung metadata dan alur data. Namun, saat mengirimkan pekerjaan ke Thrift-Server, informasi output dari node terkait tidak termasuk dalam metadata.

    • false (default): Mengirimkan kode SQL menggunakan mode spark-submit cluster. Pada mode ini, baik Spark 2 maupun Spark 3 mendukung metadata, alur data, dan informasi output. Anda juga dapat menyesuaikan parameter Spark.

      Catatan
      • Secara default, mode spark-submit cluster membuat file dan direktori sementara di direktori /tmp HDFS kluster EMR. Anda harus memiliki izin baca dan tulis untuk direktori ini.

      • Saat menggunakan mode `spark-submit cluster`, Anda dapat menambahkan parameter SparkConf kustom di bagian konfigurasi lanjutan. DataWorks secara otomatis menambahkan parameter tersebut ke perintah saat mengirimkan kode. Contohnya, "spark.driver.memory" : "2g".

    DATAWORKS_SESSION_DISABLE

    Menentukan perilaku koneksi JDBC untuk pengujian di lingkungan Data Development. Nilai yang valid:

    • true: Membuat koneksi JDBC baru untuk setiap eksekusi pernyataan SQL.

    • false (default): Menggunakan kembali koneksi JDBC yang sama saat menjalankan pernyataan SQL berbeda dalam satu node.

    Catatan

    Jika parameter ini diatur ke false, yarn applicationId Hive tidak dicetak di log. Untuk mencetak yarn applicationId, atur parameter ini ke true.

    Others

    Parameter Konfigurasi Spark kustom. Anda dapat menambahkan properti khusus Spark.

    Gunakan format berikut: spark.eventLog.enabled : false . DataWorks secara otomatis menambahkan parameter tersebut ke kode yang dikirimkan ke kluster EMR dalam format --conf key=value. Untuk informasi selengkapnya tentang konfigurasi parameter, lihat Mengonfigurasi parameter Spark global.

    Catatan
    • DataWorks memungkinkan Anda menetapkan parameter Spark global di tingkat workspace. Parameter ini diterapkan ke semua modul DataWorks. Anda dapat menentukan apakah parameter global ini memiliki prioritas dibandingkan parameter Spark spesifik modul.

    • Untuk mengaktifkan kontrol izin Ranger, tambahkan konfigurasi spark.hadoop.fs.oss.authorization.method=ranger di bagian Spark Parameters untuk memastikan kontrol izin berlaku.

    EMR Serverless Spark

    Untuk informasi tentang cara mengatur parameter terkait, lihat Mengatur parameter untuk mengirimkan pekerjaan Spark.

    Parameter

    Deskripsi

    FLOW_SKIP_SQL_ANALYZE

    Menentukan cara eksekusi pernyataan SQL. Nilai yang valid:

    • true: Mengeksekusi beberapa pernyataan SQL sekaligus.

    • false (default): Mengeksekusi satu pernyataan SQL dalam satu waktu.

    Catatan

    Parameter ini hanya berlaku untuk pengujian di lingkungan Data Development.

    DATAWORKS_SESSION_DISABLE

    Menentukan metode pengiriman pekerjaan. Saat Anda menjalankan pekerjaan di Data Development, pekerjaan tersebut dikirimkan ke SQL Compute secara default. Anda dapat menggunakan parameter ini untuk menentukan apakah pekerjaan dikirimkan ke SQL Compute atau antrian sumber daya.

    • true: Pekerjaan dikirimkan ke antrian sumber daya. Secara default, menggunakan antrian default yang ditentukan saat sumber daya komputasi dikaitkan. Jika Anda mengatur DATAWORKS_SESSION_DISABLE ke true, Anda juga dapat mengonfigurasi parameter SERVERLESS_QUEUE_NAME untuk menentukan antrian pengiriman pekerjaan selama pengembangan dan eksekusi.

    • false (default): Pekerjaan dikirimkan ke SQL Compute.

      Catatan

      Parameter ini hanya berlaku saat Anda menjalankan pekerjaan di Data Development. Parameter ini tidak berlaku untuk eksekusi terjadwal.

    SERVERLESS_RELEASE_VERSION

    Menentukan versi mesin Spark. Secara default, pekerjaan menggunakan default engine version yang dikonfigurasi untuk kluster di bagian Compute Engines pada Management Center. Gunakan parameter ini untuk menentukan versi mesin berbeda untuk pekerjaan tertentu.

    Catatan

    Parameter SERVERLESS_RELEASE_VERSION di pengaturan lanjutan hanya berlaku jika SQL Compute (session) yang ditentukan untuk kluster terdaftar belum dimulai di konsol EMR Serverless Spark.

    SERVERLESS_QUEUE_NAME

    Menentukan antrian sumber daya untuk pengiriman pekerjaan. Secara default, pekerjaan dikirimkan ke default resource queue yang dikonfigurasi untuk kluster di bagian Cluster Management pada Management Center. Jika Anda memiliki kebutuhan isolasi dan manajemen sumber daya, Anda dapat menambahkan antrian dan menggunakan parameter ini untuk memilih antrian berbeda. Untuk informasi selengkapnya, lihat Mengelola antrian sumber daya.

    Metode konfigurasi:

    Catatan
    • Parameter SERVERLESS_QUEUE_NAME di pengaturan lanjutan hanya berlaku jika SQL Compute (session) yang ditentukan untuk kluster terdaftar belum dimulai di konsol EMR Serverless Spark.

    • Saat menjalankan pekerjaan di Data Development: Anda harus mengatur DATAWORKS_SESSION_DISABLE ke true untuk mengirimkan pekerjaan ke antrian. Parameter SERVERLESS_QUEUE_NAME hanya berlaku dalam skenario ini.

    • Saat menjalankan pekerjaan terjadwal dari Operation Center: Pekerjaan selalu dikirimkan ke antrian dan tidak dapat dikirimkan ke SQL Compute.

    SERVERLESS_SQL_COMPUTE

    Menentukan SQL Compute (sesi SQL). Secara default, default SQL Compute instance yang dikonfigurasi untuk kluster di bagian Compute Engines pada Management Center digunakan. Jika Anda perlu mengatur sesi SQL berbeda untuk pekerjaan berbeda, Anda dapat mengonfigurasi parameter ini. Untuk informasi selengkapnya tentang cara membuat dan mengelola sesi SQL, lihat Mengelola sesi SQL.

    Others

    Parameter Konfigurasi Spark kustom. Anda dapat menambahkan properti khusus Spark.

    Gunakan format berikut: spark.eventLog.enabled : false . DataWorks secara otomatis menambahkan parameter tersebut ke kode yang dikirimkan ke kluster EMR dalam format --conf key=value.

    Catatan

    DataWorks memungkinkan Anda menetapkan parameter Spark global di tingkat workspace. Parameter ini diterapkan ke semua modul DataWorks. Anda dapat menentukan apakah parameter global ini memiliki prioritas dibandingkan parameter Spark spesifik modul. Untuk informasi selengkapnya tentang cara menetapkan parameter Spark global, lihat Mengonfigurasi parameter Spark global.

    EMR on ACK Spark

    Parameter

    Deskripsi

    FLOW_SKIP_SQL_ANALYZE

    Menentukan cara eksekusi pernyataan SQL. Nilai yang valid:

    • true: Mengeksekusi beberapa pernyataan SQL sekaligus.

    • false (default): Mengeksekusi satu pernyataan SQL dalam satu waktu.

    Catatan

    Parameter ini hanya berlaku untuk pengujian di lingkungan Data Development.

    Others

    Parameter Konfigurasi Spark kustom. Anda dapat menambahkan properti khusus Spark.

    Gunakan format berikut: spark.eventLog.enabled : false . DataWorks secara otomatis menambahkan parameter tersebut ke kode yang dikirimkan ke kluster EMR dalam format --conf key=value.

    Catatan

    DataWorks memungkinkan Anda menetapkan parameter Spark global di tingkat workspace. Parameter ini diterapkan ke semua modul DataWorks. Anda dapat menentukan apakah parameter global ini memiliki prioritas dibandingkan parameter Spark spesifik modul. Untuk informasi selengkapnya tentang cara menetapkan parameter Spark global, lihat Mengonfigurasi parameter Spark global.

    EMR on ECS Hadoop

    Parameter

    Deskripsi

    queue

    Antrian penjadwalan untuk pengiriman pekerjaan. Antrian default adalah default. Untuk informasi selengkapnya tentang EMR YARN, lihat Konfigurasi antrian dasar.

    priority

    Prioritas pekerjaan. Nilai default adalah 1.

    FLOW_SKIP_SQL_ANALYZE

    Menentukan cara eksekusi pernyataan SQL. Nilai yang valid:

    • true: Mengeksekusi beberapa pernyataan SQL sekaligus.

    • false (default): Mengeksekusi satu pernyataan SQL dalam satu waktu.

    Catatan

    Parameter ini hanya berlaku untuk pengujian di lingkungan Data Development.

    USE_GATEWAY

    Menentukan apakah pekerjaan untuk node ini dikirimkan melalui kluster gateway. Nilai yang valid:

    • true: Mengirimkan pekerjaan melalui kluster gateway.

    • false (default): Mengirimkan pekerjaan ke node header, bukan ke kluster gateway.

    Catatan

    Jika Anda mengatur parameter ini ke true tetapi kluster tidak dikaitkan dengan kluster gateway, pengiriman pekerjaan EMR akan gagal.

    Others

    Parameter Konfigurasi Spark kustom. Anda dapat menambahkan properti khusus Spark.

    Gunakan format berikut: spark.eventLog.enabled : false . DataWorks secara otomatis menambahkan parameter tersebut ke kode yang dikirimkan ke kluster EMR dalam format --conf key=value. Untuk informasi selengkapnya tentang konfigurasi parameter, lihat Mengonfigurasi parameter Spark global.

    Catatan
    • DataWorks memungkinkan Anda menetapkan parameter Spark global di tingkat workspace. Parameter ini diterapkan ke semua modul DataWorks. Anda dapat menentukan apakah parameter global ini memiliki prioritas dibandingkan parameter Spark spesifik modul.

    • Untuk mengaktifkan kontrol izin Ranger, tambahkan konfigurasi spark.hadoop.fs.oss.authorization.method=ranger di bagian Spark Parameters untuk memastikan kontrol izin berlaku.

    Jalankan pekerjaan SQL

    1. Konfigurasikan Run Configuration, Compute Engines, dan resource groups.

      Catatan
      • Anda juga dapat mengonfigurasi scheduling CUs berdasarkan kebutuhan sumber daya pekerjaan. Nilai default adalah 0.25.

      • Untuk mengakses sumber data di jaringan publik atau VPC, Anda harus menggunakan scheduling resource group yang telah memiliki konektivitas dengan sumber data tersebut. Untuk informasi selengkapnya, lihat Solusi konektivitas jaringan.

    2. Di kotak dialog parameter pada bilah alat, pilih sumber data yang sesuai dan klik Run untuk menjalankan pekerjaan SQL.

  2. Untuk menjalankan tugas secara berkala, konfigurasikan jadwalnya sesuai kebutuhan bisnis Anda. Untuk informasi selengkapnya tentang konfigurasi tersebut, lihat Konfigurasi penjadwalan node.

    Catatan

    Untuk menyesuaikan lingkungan komponen, buat dataworks_emr_base_task_pod kustom berdasarkan image resmi dan lihat Custom images, serta gunakan image tersebut di Data Development.

    Sebagai contoh, Anda dapat mengganti paket JAR Spark atau menambahkan dependensi pada libraries, files, atau jar packages tertentu saat membuat custom image.

  3. Setelah mengonfigurasi tugas, Anda harus menerapkan node tersebut. Untuk informasi selengkapnya, lihat Penerapan node dan alur kerja.

  4. Setelah tugas diterapkan, Anda dapat melihat statusnya di Operation Center. Untuk informasi selengkapnya, lihat Memulai Operation Center.

FAQ

  • Kegagalan spark-submit dengan Kerberos

  • Saat menjalankan tugas EMR Spark SQL di Data Development yang mengirimkan pekerjaan ke SQL Compute, pastikan instans SQL Compute berada dalam status Running. Jika tidak, pekerjaan akan gagal. Untuk melihat status instans SQL Compute, lihat Mengelola sesi SQL.