All Products
Search
Document Center

DataWorks:Node EMR Spark SQL

Last Updated:Feb 26, 2026

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

Prasyarat

  • Sebelum mengembangkan node, buat custom image berdasarkan image resmi dataworks_emr_base_task_pod dan gunakan image tersebut di Data Studio untuk menyesuaikan lingkungan komponen.

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

  • Anda telah membuat kluster Alibaba Cloud EMR dan mengaitkannya ke DataWorks. Untuk informasi selengkapnya, lihat Data Studio: Mengaitkan resource komputasi EMR.

  • (Opsional) Jika Anda adalah pengguna Resource Access Management (RAM), pastikan Anda telah ditambahkan ke ruang kerja untuk pengembangan tugas dan telah diberikan peran Developer atau Workspace Administrator. Peran Workspace Administrator memiliki izin yang luas; berikan peran ini dengan hati-hati. Untuk informasi selengkapnya tentang penambahan anggota, lihat Menambahkan anggota ke ruang kerja.

    Jika Anda menggunakan akun Alibaba Cloud, Anda dapat melewati langkah ini.
  • Jika Anda memerlukan lingkungan pengembangan tertentu untuk tugas Anda, Anda dapat menggunakan fitur custom image yang disediakan oleh DataWorks untuk membangun image komponen kustom guna eksekusi tugas. Untuk informasi selengkapnya, lihat Custom images.

Batasan

  • Jenis node ini hanya dapat dijalankan pada serverless resource group (disarankan) atau exclusive resource group for scheduling. Untuk menggunakan image di Data Studio, Anda perlu menggunakan serverless resource group.

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

    Catatan

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

  • Alur data didukung untuk kluster EMR Serverless Spark, tetapi tidak didukung untuk kluster EMR on ACK Spark.

  • Pendaftaran fungsi visual didukung untuk DataLake dan kluster kustom, tetapi tidak didukung untuk kluster EMR on ACK Spark atau EMR Serverless Spark.

Catatan

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

  • Fitur ini tersedia secara default saat 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. Pada halaman pengeditan node EMR Spark SQL, lakukan langkah-langkah berikut.

    Kembangkan kode SQL

    Kembangkan kode tugas Anda di editor SQL. Anda dapat mendefinisikan variabel dalam format ${variable_name} di dalam kode dan memberikan nilai pada bagian Scheduling Parameters pada panel Scheduling Configuration di sebelah kanan. Hal ini memungkinkan pengiriman parameter dinamis untuk eksekusi terjadwal. Untuk informasi selengkapnya tentang penggunaan parameter penjadwalan, lihat Sumber dan ekspresi parameter penjadwalan. Kode berikut menunjukkan contohnya.

    SHOW TABLES; 
    -- Anda dapat menggunakan ${var} untuk mendefinisikan variabel bernama 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
    ); -- Ini dapat digunakan bersama parameter penjadwalan.

    (Opsional) Konfigurasikan parameter node EMR

    Pada panel Run Configuration di sebelah kanan, konfigurasikan parameter pada bagian EMR Node Parameters:

    • Spark Parameters: Ini adalah properti Spark native. Untuk informasi selengkapnya, lihat Open-source Spark properties. Untuk menyederhanakan konfigurasi dan memastikan konsistensi, Anda dapat langsung memuat Spark configuration template dari Serverless Spark.

    • DataWorks Parameters: Parameter lanjutan yang tersedia bervariasi tergantung pada jenis kluster EMR. Tabel berikut menjelaskan parameter tersebut.

    DataLake dan custom (EMR on ECS)

    Parameter

    Deskripsi

    queue

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

    priority

    Prioritas. Nilai default adalah 1.

    FLOW_SKIP_SQL_ANALYZE

    Metode 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 Studio.

    ENABLE_SPARKSQL_JDBC

    Metode pengiriman kode SQL. Nilai yang valid:

    • true: Mengirim kode SQL menggunakan JDBC. Jika kluster EMR tidak memiliki layanan Kyuubi, kode SQL dikirim ke Spark Thrift Server. Jika kluster EMR memiliki layanan Kyuubi, kode SQL dikirim ke Kyuubi melalui JDBC dan mendukung parameter Spark kustom.

      Kedua metode mendukung alur data untuk metadata. Namun, pekerjaan yang dikirim ke Thrift Server tidak menyediakan informasi output untuk tugas node.

    • false (Default): Mengirim kode SQL menggunakan mode cluster spark-submit. Dalam mode ini, baik Spark 2 maupun Spark 3 mendukung alur data untuk metadata dan informasi output. Parameter Spark kustom juga didukung.

      Catatan
      • Mode cluster spark-submit membuat file dan direktori sementara di direktori /tmp HDFS kluster EMR secara default. Anda harus memiliki izin baca dan tulis pada direktori ini.

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

    DATAWORKS_SESSION_DISABLE

    Parameter ini berlaku untuk pengujian di lingkungan Data Studio. Nilai yang valid:

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

    • false (Default): Menggunakan kembali koneksi JDBC yang sama ketika pengguna menjalankan pernyataan SQL berbeda dalam satu node.

    Catatan

    Mengatur parameter ini ke false mencegah pencetakan yarn applicationId Hive. Untuk mencetaknya, atur parameter ini ke true.

    Other

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

    Format: spark.eventLog.enabled : false . DataWorks secara otomatis melengkapi perintah dalam format --conf key=value saat mengirimkannya ke kluster EMR. Untuk informasi selengkapnya, lihat Menyetel parameter Spark global.

    Catatan
    • Anda dapat menyetel parameter Spark global di tingkat ruang kerja untuk berbagai modul DataWorks dan menentukan apakah parameter global ini menggantikan parameter spesifik modul.

    • Untuk mengaktifkan kontrol akses Ranger, tambahkan konfigurasi spark.hadoop.fs.oss.authorization.method=ranger di Menyetel parameter Spark global.

    EMR Serverless Spark

    Untuk informasi selengkapnya tentang pengaturan parameter, lihat Menyetel parameter untuk mengirim pekerjaan Spark.

    Parameter

    Deskripsi

    FLOW_SKIP_SQL_ANALYZE

    Metode 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 Studio.

    DATAWORKS_SESSION_DISABLE

    Metode pengiriman pekerjaan. Saat menjalankan tugas di Data Studio, tugas tersebut dikirim ke SQL Compute secara default. Anda dapat menggunakan parameter ini untuk menentukan apakah tugas dieksekusi oleh SQL Compute atau dikirim ke antrian.

    • true: Tugas dikirim ke antrian untuk dieksekusi. Secara default, tugas dikirim ke antrian default yang ditentukan saat resource komputasi dikaitkan. Ketika DATAWORKS_SESSION_DISABLE diatur ke true, Anda dapat mengonfigurasi parameter SERVERLESS_QUEUE_NAME untuk menentukan antrian pengiriman tugas di Data Studio.

    • false (Default): Tugas dikirim ke SQL Compute untuk dieksekusi.

      Catatan

      Parameter ini hanya berlaku untuk eksekusi di Data Studio. Tidak berlaku untuk eksekusi terjadwal.

    SERVERLESS_RELEASE_VERSION

    Versi mesin Spark. Secara default, tugas menggunakan Default Engine Version yang dikonfigurasi untuk kluster di Computing Resources pada Management Center. Anda dapat menyetel parameter ini untuk menentukan versi mesin yang berbeda untuk tugas tertentu.

    Catatan

    Parameter SERVERLESS_RELEASE_VERSION dalam pengaturan lanjutan hanya berlaku jika SQL Compute (session) untuk kluster terdaftar tidak berada dalam status Running di konsol EMR Serverless Spark.

    SERVERLESS_QUEUE_NAME

    Menentukan antrian sumber daya untuk pengiriman pekerjaan. Saat pekerjaan dikirim ke antrian, pekerjaan tersebut menggunakan Default Resource Queue yang dikonfigurasi untuk kluster di Cluster Management pada Management Center secara default. Anda dapat menambahkan antrian untuk menerapkan isolasi dan manajemen sumber daya. Untuk informasi selengkapnya, lihat Mengelola antrian sumber daya.

    Metode konfigurasi:

    Catatan
    • Parameter SERVERLESS_QUEUE_NAME dalam pengaturan lanjutan hanya berlaku jika SQL Compute (session) untuk kluster terdaftar tidak berada dalam status Running di konsol EMR Serverless Spark.

    • Untuk eksekusi di Data Studio: Anda harus terlebih dahulu menyetel DATAWORKS_SESSION_DISABLE ke true untuk mengirim tugas ke antrian. Parameter SERVERLESS_QUEUE_NAME kemudian berlaku.

    • Untuk eksekusi terjadwal di Operation Center: Tugas selalu dikirim ke antrian dan tidak dapat dikirim ke SQL Compute.

    SERVERLESS_SQL_COMPUTE

    Menentukan SQL Compute (SQL session). Secara default, tugas menggunakan Default SQL Compute yang dikonfigurasi untuk kluster di Computing Resources pada Management Center. Anda dapat menyetel parameter ini untuk menentukan sesi SQL yang berbeda untuk tugas tertentu. Untuk membuat dan mengelola sesi SQL, lihat Mengelola sesi SQL.

    Other

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

    Format: spark.eventLog.enabled : false . DataWorks secara otomatis melengkapi perintah dalam format --conf key=value.

    Catatan

    DataWorks memungkinkan Anda menyetel parameter Spark global di tingkat ruang kerja untuk berbagai modul DataWorks. Anda dapat menentukan apakah parameter global ini menggantikan parameter dalam modul tertentu. Untuk informasi selengkapnya tentang cara menyetel parameter Spark global, lihat Menyetel parameter Spark global.

    EMR on ACK

    Parameter

    Deskripsi

    FLOW_SKIP_SQL_ANALYZE

    Metode 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 Studio.

    Other

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

    Format: spark.eventLog.enabled : false . DataWorks secara otomatis melengkapi perintah dalam format --conf key=value.

    Catatan

    DataWorks memungkinkan Anda menyetel parameter Spark global di tingkat ruang kerja untuk berbagai modul DataWorks. Anda dapat menentukan apakah parameter global ini menggantikan parameter dalam modul tertentu. Untuk informasi selengkapnya tentang cara menyetel parameter Spark global, lihat Menyetel parameter Spark global.

    Hadoop (EMR on ECS)

    Parameter

    Deskripsi

    queue

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

    priority

    Prioritas. Nilai default adalah 1.

    FLOW_SKIP_SQL_ANALYZE

    Metode 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 Studio.

    USE_GATEWAY

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

    • true: Mengirim pekerjaan melalui kluster gateway.

    • false (Default): Mengirim pekerjaan ke node header, bukan ke kluster gateway.

    Catatan

    Jika kluster untuk node ini tidak dikaitkan dengan kluster gateway, mengatur parameter ini ke true akan menyebabkan pengiriman pekerjaan EMR berikutnya gagal.

    Other

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

    Format: spark.eventLog.enabled : false . DataWorks secara otomatis melengkapi perintah dalam format --conf key=value. Untuk informasi selengkapnya, lihat Menyetel parameter Spark global.

    Catatan
    • DataWorks memungkinkan Anda menyetel parameter Spark global di tingkat ruang kerja untuk berbagai modul DataWorks. Anda dapat menentukan apakah parameter global ini menggantikan parameter dalam modul tertentu.

    • Untuk mengaktifkan kontrol akses Ranger, tambahkan konfigurasi spark.hadoop.fs.oss.authorization.method=ranger di Menyetel parameter Spark global untuk memastikan kontrol akses Ranger berlaku.

    Eksekusi tugas SQL

    1. Pada panel Run Configuration, pilih Computing Resource dan Resource Group.

      Catatan
      • Anda juga dapat menyetel Schedule CUs sesuai kebutuhan sumber daya tugas. Nilai default adalah 0.25.

      • Untuk mengakses sumber data di jaringan publik atau VPC, gunakan resource group penjadwalan yang telah lulus uji konektivitas dengan sumber data tersebut. Untuk informasi selengkapnya, lihat Solusi konektivitas jaringan.

    2. Pada kotak dialog parameter di toolbar, pilih sumber data dan klik Run untuk mengeksekusi tugas SQL.

  2. Untuk menjalankan node sesuai jadwal, konfigurasikan properti penjadwalannya sesuai kebutuhan bisnis Anda. Untuk informasi selengkapnya, lihat Mengonfigurasi penjadwalan untuk node.

    Catatan

    Untuk menyesuaikan lingkungan komponen, Anda dapat membuat custom image berdasarkan image resmi dataworks_emr_base_task_pod dan menggunakan image tersebut di Data Studio.

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

  3. Setelah mengonfigurasi node, Anda harus mempublikasikannya. Untuk informasi selengkapnya, lihat Mempublikasikan node atau workflow.

  4. Setelah tugas dipublikasikan, Anda dapat melihat status penjadwalannya di Operation Center. Untuk informasi selengkapnya, lihat Memulai Operation Center.

FAQ