All Products
Search
Document Center

DataWorks:Node EMR Spark SQL

Last Updated:Jun 11, 2026

Node E-MapReduce (EMR) Spark SQL memproses data terstruktur menggunakan mesin kueri SQL terdistribusi untuk meningkatkan efisiensi eksekusi pekerjaan.

Prasyarat

  • Sebelum memulai pengembangan node, jika Anda memerlukan lingkungan komponen kustom, buat custom image berdasarkan image resmi dataworks_emr_base_task_pod, lalu gunakan di Data Studio. Untuk informasi selengkapnya, lihat Buat custom image dan Gunakan image dalam pengembangan data.

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

  • Buat kluster Alibaba Cloud EMR dan daftarkan ke DataWorks. Untuk informasi selengkapnya, lihat Data Studio Baru: Lampirkan sumber daya komputasi EMR.

  • (Opsional, untuk pengguna RAM) Pengguna Resource Access Management (RAM) untuk pengembangan task harus ditambahkan ke ruang kerja dan diberikan peran Development atau Workspace Administrator (peran ini mencakup izin yang luas dan harus diberikan dengan hati-hati). Untuk informasi selengkapnya, lihat Tambahkan anggota ruang kerja.

    Jika Anda menggunakan akun root, lewati langkah ini.
  • Anda dapat menggunakan custom image untuk membangun lingkungan pengembangan spesifik bagi task Anda.

Batasan

  • Node EMR Shell hanya dapat dijalankan pada serverless resource group (disarankan) atau exclusive resource group for scheduling. Penggunaan custom image untuk pengembangan data memerlukan serverless resource group.

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

    Catatan

    Tanpa konfigurasi EMR-HOOK pada kluster, Anda tidak dapat melihat metadata secara real-time, menghasilkan log audit, melihat alur data, atau menjalankan tugas governance terkait EMR di DataWorks.

  • Kluster EMR on ACK Spark tidak mendukung penampilan alur data. Kluster EMR Serverless Spark mendukung penampilan alur data.

  • Pendaftaran fungsi melalui UI didukung pada kluster DataLake dan kustom, tetapi tidak didukung pada kluster EMR on ACK Spark atau EMR Serverless Spark.

Catatan

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

  • Task Spark yang menggunakan image default secara otomatis mendukung fitur ini.

  • Untuk menjalankan task Spark dengan custom image, ajukan tiket ke dukungan teknis untuk meminta peningkatan image.

Prosedur

  1. Pada tab konfigurasi node EMR Spark SQL, lakukan operasi pengembangan berikut.

    Kembangkan kode SQL

    Di editor SQL, tulis kode task Anda. Definisikan variabel menggunakan format ${variable_name} dan tetapkan nilainya di bagian Scheduling Parameters pada panel Scheduling Settings untuk meneruskan parameter secara dinamis ke task terjadwal. Untuk informasi selengkapnya tentang penggunaan parameter penjadwalan, lihat Sumber dan ekspresi parameter penjadwalan. Kode berikut merupakan contoh.

    SHOW TABLES; 
    -- Definisikan variabel bernama var menggunakan ${var}. Jika Anda menetapkan variabel ini menjadi ${yyyymmdd}, 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 node EMR

    Pada bagian EMR Node Parameters di panel Run Configuration, konfigurasikan parameter berikut:

    • Spark parameter: Properti Spark native. Untuk informasi selengkapnya, lihat Spark Configuration. Anda dapat langsung memuat templat konfigurasi Spark dari Serverless Spark. Hal ini menyederhanakan konfigurasi dan memastikan konsistensi.

    • DataWorks parameters: Parameter lanjutan yang tersedia bergantung pada jenis kluster EMR. Tabel berikut menjelaskan parameter tersebut.

    DataLake atau kustom di ECS

    Parameter

    Deskripsi

    queue

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

    priority

    Prioritas pekerjaan. Nilai default: 1.

    FLOW_SKIP_SQL_ANALYZE

    Mode 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 uji coba di lingkungan Data Studio.

    ENABLE_SPARKSQL_JDBC

    Metode pengiriman kode SQL. Nilai yang valid:

    • true: Mengirimkan kode SQL melalui JDBC. Kode dikirim ke Spark Thrift server jika layanan Kyuubi tidak tersedia, atau ke Kyuubi jika tersedia. Dalam mode ini, parameter Spark kustom didukung.

      Kedua metode mendukung alur data untuk metadata. Namun, untuk task yang dikirim ke Thrift server, informasi output dari node task yang sesuai dengan metadata tidak tersedia.

    • false (default): Mengirimkan kode SQL menggunakan perintah spark-submit --cluster. Mode ini mendukung alur data untuk metadata dan informasi output baik untuk Spark 2 maupun Spark 3. Parameter Spark kustom juga didukung.

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

      • Saat menggunakan mode pengiriman spark-submit --cluster, Anda dapat langsung menambahkan parameter SparkConf kustom ke konfigurasi lanjutan. Saat DataWorks mengirimkan kode, parameter baru tersebut akan ditambahkan secara otomatis ke perintah. Contoh: "spark.driver.memory" : "2g".

    DATAWORKS_SESSION_DISABLE

    Parameter ini hanya berlaku untuk uji coba di Data Studio. Nilai yang valid:

    • true: Koneksi JDBC baru dibuat setiap kali pernyataan SQL dijalankan.

    • false (default): Koneksi JDBC yang sama digunakan ulang 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 Spark Configuration kustom. Anda dapat menambahkan properti khusus Spark.

    Format: "spark.eventLog.enabled" : false, "spark.eventLog.memory" : "12g". 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 Konfigurasi parameter Spark global.

    Catatan
    • DataWorks mendukung parameter Spark global di tingkat ruang kerja, yang digunakan di berbagai modul. Anda dapat mengonfigurasi apakah parameter global ini menggantikan parameter Spark spesifik modul.

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

    EMR Serverless Spark

    Untuk informasi tentang pengaturan parameter, lihat Konfigurasi parameter untuk pekerjaan Spark.

    Parameter

    Deskripsi

    FLOW_SKIP_SQL_ANALYZE

    Mode 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 uji coba di lingkungan Data Studio.

    DATAWORKS_SESSION_DISABLE

    Menentukan metode pengiriman task. Secara default, task yang dijalankan di Data Studio dikirim ke sesi SQL. Gunakan parameter ini untuk mengirimkan task ke antrian.

    • true: Task dikirim ke antrian untuk dieksekusi. Secara default, antrian default yang ditentukan saat Anda mengikat sumber daya komputasi akan digunakan. Ketika parameter DATAWORKS_SESSION_DISABLE diatur ke true, Anda dapat mengonfigurasi parameter SERVERLESS_QUEUE_NAME untuk menentukan antrian tempat task dikirimkan untuk dieksekusi di Data Studio.

    • false (default): mengirimkan task ke sesi SQL untuk dieksekusi.

      Catatan

      Parameter ini hanya berlaku saat Anda menjalankan task di Data Studio. Parameter ini tidak berlaku untuk task terjadwal.

    SERVERLESS_RELEASE_VERSION

    Versi mesin Spark. Secara default, task menggunakan Default Engine Version yang dikonfigurasi untuk kluster di bawah Compute Resource di Management Center. Konfigurasikan parameter ini untuk menggunakan versi mesin berbeda pada task tertentu.

    Catatan

    Parameter SERVERLESS_RELEASE_VERSION hanya berlaku ketika sesi SQL yang ditentukan untuk kluster terdaftar berada dalam status stopped di konsol EMR Serverless Spark.

    SERVERLESS_QUEUE_NAME

    Menentukan antrian sumber daya untuk pengiriman task. Secara default, task menggunakan Default Resource Queue yang dikonfigurasi untuk kluster di Clusters di bawah Management Center. Untuk mengisolasi dan mengelola sumber daya, Anda dapat menambahkan antrian. Untuk informasi selengkapnya, lihat Kelola antrian sumber daya.

    Metode konfigurasi:

    • Tentukan antrian sumber daya untuk pengiriman task dengan mengonfigurasi parameter node.

    • Tentukan antrian sumber daya untuk pengiriman task di Konfigurasi parameter Spark global.

    Catatan
    • Parameter SERVERLESS_QUEUE_NAME hanya berlaku ketika sesi SQL yang ditentukan untuk kluster terdaftar berada dalam status stopped di konsol EMR Serverless Spark.

    • Saat dijalankan di Data Studio: Anda harus terlebih dahulu mengatur DATAWORKS_SESSION_DISABLE ke true agar task dikirim ke antrian untuk dieksekusi. Parameter SERVERLESS_QUEUE_NAME yang Anda konfigurasi untuk menentukan antrian task hanya berlaku jika pengaturan ini diaktifkan.

    • Untuk pekerjaan terjadwal di Operation Center: Task selalu dikirim ke antrian untuk dieksekusi dan tidak dapat dikirim ke sesi SQL.

    SERVERLESS_SQL_COMPUTE

    Sesi SQL yang digunakan. Secara default, Default SQL Compute yang dikonfigurasi untuk kluster di Compute Resource di Management Center digunakan. Untuk menggunakan sesi SQL berbeda pada task berbeda, konfigurasikan parameter ini. Untuk membuat dan mengelola sesi SQL, lihat Kelola sesi SQL.

    Others

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

    Format: "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 mengonfigurasi parameter Spark global di tingkat ruang kerja. Parameter ini digunakan oleh berbagai modul DataWorks. Anda dapat menentukan apakah parameter Spark global memiliki prioritas lebih tinggi daripada parameter Spark yang dikonfigurasi di modul tertentu. Untuk informasi selengkapnya tentang cara mengonfigurasi parameter Spark global, lihat Konfigurasi parameter Spark global.

    Spark on ACK

    Parameter

    Deskripsi

    FLOW_SKIP_SQL_ANALYZE

    Mode 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 uji coba di lingkungan Data Studio.

    Others

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

    Format: "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 mengonfigurasi parameter Spark global di tingkat ruang kerja. Parameter ini digunakan oleh berbagai modul DataWorks. Anda dapat menentukan apakah parameter Spark global memiliki prioritas lebih tinggi daripada parameter Spark yang dikonfigurasi di modul tertentu. Untuk informasi selengkapnya tentang cara mengonfigurasi parameter Spark global, lihat Konfigurasi parameter Spark global.

    Hadoop on ECS

    Parameter

    Deskripsi

    queue

    Antrian penjadwalan tempat pekerjaan dikirimkan. Default-nya adalah antrian default. Untuk informasi selengkapnya tentang EMR YARN, lihat Konfigurasi Antrian Dasar.

    priority

    Prioritas pekerjaan. Nilai default: 1.

    FLOW_SKIP_SQL_ANALYZE

    Mode 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 uji coba di lingkungan Data Studio.

    USE_GATEWAY

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

    • true: Mengirimkan pekerjaan melalui kluster gateway.

    • false (default): Tidak mengirimkan pekerjaan melalui kluster gateway. Secara default, pekerjaan dikirimkan ke node header.

    Catatan

    Jika kluster yang berisi node ini tidak dikaitkan dengan kluster Gateway, pengiriman pekerjaan EMR berikutnya akan gagal jika Anda secara manual mengatur parameter ini ke true.

    Others

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

    Format: "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 Konfigurasi parameter Spark global.

    Catatan
    • DataWorks memungkinkan Anda mengonfigurasi parameter Spark global di tingkat ruang kerja. Parameter ini digunakan oleh berbagai modul DataWorks. Anda dapat menentukan apakah parameter Spark global memiliki prioritas lebih tinggi daripada parameter Spark yang dikonfigurasi di modul tertentu.

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

    Jalankan tugas SQL

    1. Pada panel Run Configuration, konfigurasikan Compute Resource dan Resource Group.

      Catatan
      • Anda juga dapat mengonfigurasi CUs for Scheduling berdasarkan sumber daya yang dibutuhkan untuk eksekusi task. CU default adalah 0.25.

      • Untuk mengakses sumber data melalui Internet atau virtual private cloud (VPC), Anda harus menggunakan resource group penjadwalan yang dapat terhubung ke sumber data tersebut. Untuk informasi selengkapnya, lihat Solusi konektivitas jaringan.

    2. Pada kotak dialog parameter di bilah alat, pilih sumber data dan klik Run untuk menjalankan task SQL.

    (Opsional) Konfigurasi parameter output

    Untuk meneruskan hasil kueri node saat ini ke node downstream, buka bagian Node Context Parameters pada panel Scheduling Settings. Klik Add Assignment Parameter. Ini secara otomatis menambahkan parameter output bernama outputs, yang nilainya adalah hasil kueri terakhir dalam kode node. Untuk informasi selengkapnya, lihat Konfigurasi dan penggunaan parameter konteks node.

  2. Untuk menjadwalkan task node, konfigurasikan properti penjadwalannya sesuai kebutuhan bisnis Anda. Untuk informasi selengkapnya, lihat Konfigurasi penjadwalan untuk node.

    Catatan

    Jika Anda perlu menyesuaikan lingkungan komponen, Anda dapat membuat custom image berdasarkan image resmi dataworks_emr_base_task_pod dan menggunakan image tersebut dalam Pengembangan Data.

    Misalnya, saat membuat custom image, Anda dapat mengganti paket JAR Spark atau bergantung pada libraries, files, atau JAR packages tertentu.

  3. Setelah mengonfigurasi task node, lakukan penerapan. Untuk informasi selengkapnya, lihat Terapkan node atau alur kerja.

  4. Setelah penerapan, lihat status task terjadwal di Operation Center. Untuk informasi selengkapnya, lihat Memulai Operation Center.

FAQ