全部产品
Search
文档中心

DataWorks:Node EMR Spark SQL

更新时间:Nov 10, 2025

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

Prasyarat

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

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

  • Anda telah membuat kluster Alibaba Cloud EMR dan mengaitkannya dengan DataWorks. Untuk informasi selengkapnya, lihat Data Studio (versi baru): Mengikat sumber daya 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 lebih lanjut tentang penambahan anggota, lihat Menambahkan anggota ke ruang kerja.

    Jika Anda menggunakan akun Alibaba Cloud, Anda dapat melewati langkah ini.
  • Jika Anda ingin menggunakan lingkungan pengembangan tertentu, Anda dapat menggunakan fitur gambar kustom di DataWorks untuk membuat gambar kustom. Untuk informasi selengkapnya, lihat Gambar Kustom.

Batasan

  • Jenis node ini hanya dapat dijalankan pada kelompok sumber daya arsitektur tanpa server (disarankan) atau grup sumber daya eksklusif untuk penjadwalan. Untuk menggunakan citra di Data Studio, Anda harus menggunakan kelompok sumber daya arsitektur tanpa server.

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

    Catatan

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

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

  • Kluster DataLake dan kluster kustom mendukung pendaftaran fungsi melalui visualisasi. Kluster EMR on ACK Spark dan kluster EMR Serverless Spark tidak mendukung fitur ini.

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 Anda menjalankan tugas Spark yang menggunakan citra default.

  • Untuk menjalankan tugas Spark yang menggunakan gambar kustom, Anda harus mengajukan tiket ke helpdesk untuk meningkatkan citra agar mendukung fitur ini.

Prosedur

  1. Pada halaman pengeditan node EMR Spark SQL, lakukan langkah-langkah berikut:

    Kembangkan kode SQL

    Di editor SQL, Anda dapat mendefinisikan variabel dalam kode tugas menggunakan format ${nama variabel} dan memberikan nilai untuk setiap variabel di bagian Scheduling Configuration, yang berada di bawah Scheduling Parameters di sisi kanan halaman pengeditan node. Hal ini memungkinkan Anda meneruskan parameter secara dinamis ke kode dalam skenario penjadwalan. Untuk informasi selengkapnya tentang cara menggunakan parameter penjadwalan, lihat Format yang didukung untuk parameter penjadwalan. Berikut ini adalah contohnya.

    SHOW TABLES; 
    -- Definisikan variabel bernama var menggunakan ${var}. Jika Anda mengatur variabel ini menjadi ${yyyymmdd}, Anda dapat membuat tabel dengan waktu data sebagai sufiks.
    CREATE TABLE IF NOT EXISTS userinfo_new_${var} (
    ip STRING COMMENT'Alamat IP',
    uid STRING COMMENT'ID Pengguna'
    )PARTITIONED BY(
    dt STRING
    ); -- Anda dapat menggunakan ini dengan parameter penjadwalan.

    (Opsional) Konfigurasi parameter lanjutan

    Anda dapat mengonfigurasi parameter properti unik dalam tabel di bawah ini di sisi kanan node, di bagian Scheduling Configuration, di bawah EMR Node Parameters > DataWorks Parameters.

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

    • Anda dapat mengonfigurasi lebih banyak parameter Spark open-source di sisi kanan node di bagian EMR Node Parameters > Spark Parameters di bawah Scheduling Configuration.

    Kluster DataLake/Kluster kustom: EMR on ECS

    Parameter lanjutan

    Deskripsi

    queue

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

    priority

    Prioritas. Nilai default: 1.

    FLOW_SKIP_SQL_ANALYZE

    Mode eksekusi untuk pernyataan SQL. Nilai yang valid:

    • true: Eksekusi beberapa pernyataan SQL sekaligus.

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

    Catatan

    Parameter ini hanya didukung untuk pengujian di lingkungan pengembangan.

    ENABLE_SPARKSQL_JDBC

    Metode pengiriman kode SQL. Nilai yang valid:

    • true: Kirim kode SQL menggunakan Java Database Connectivity (JDBC). 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. Parameter Spark kustom didukung.

      Kedua metode mendukung metadata dan alur data. Namun, tugas yang dikirimkan ke Thrift-Server tidak memiliki informasi keluaran untuk tugas node yang sesuai dalam metadata.

    • false (default): Kirim kode SQL menggunakan mode kluster Spark-submit. Dalam mode ini, baik Spark 2 maupun Spark 3 mendukung metadata, alur data, dan informasi keluaran. Parameter Spark kustom juga didukung.

      Catatan
      • Secara default, metode pengiriman kluster Spark-submit membuat file dan folder sementara di folder /tmp HDFS pada kluster EMR. Anda harus memastikan bahwa folder tersebut memiliki izin baca dan tulis.

      • Saat menggunakan mode kluster Spark-submit, Anda dapat langsung menambahkan parameter SparkConf kustom dalam konfigurasi lanjutan. Saat Anda meng-commit kode, DataWorks secara otomatis menambahkan parameter kustom ke perintah. Misalnya, "spark.driver.memory" : "2g".

    DATAWORKS_SESSION_DISABLE

    Parameter ini berlaku untuk pengujian langsung di lingkungan pengembangan. Nilai yang valid:

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

    • false (default): Koneksi JDBC yang sama digunakan kembali ketika pengguna menjalankan pernyataan SQL berbeda dalam satu node.

    Catatan

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

    Lainnya

    Menyesuaikan parameter Konfigurasi Spark dan menambahkan properti khusus Spark.

    Format konfigurasinya sebagai berikut: spark.eventLog.enabled : false . DataWorks secara otomatis mengonversi konfigurasi ini ke format --conf key=value dalam kode yang dikirimkan ke kluster EMR. Untuk informasi selengkapnya, lihat Mengatur parameter Spark global.

    Catatan
    • DataWorks memungkinkan Anda mengatur parameter Spark global. Artinya, Anda dapat menentukan parameter Spark yang digunakan oleh setiap modul DataWorks di tingkat ruang kerja. Anda juga dapat menentukan apakah parameter Spark global memiliki prioritas lebih tinggi daripada parameter Spark dalam modul tertentu.

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

    Kluster EMR Serverless Spark

    Untuk informasi selengkapnya tentang pengaturan parameter, lihat Pengaturan parameter untuk mengirimkan pekerjaan Spark.

    Parameter lanjutan

    Deskripsi

    FLOW_SKIP_SQL_ANALYZE

    Mode eksekusi untuk pernyataan SQL. Nilai yang valid:

    • true: Eksekusi beberapa pernyataan SQL sekaligus.

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

    Catatan

    Parameter ini hanya didukung untuk pengujian di lingkungan pengembangan.

    DATAWORKS_SESSION_DISABLE

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

    • true: Tugas dikirimkan ke antrian untuk dieksekusi. Antrian default yang ditentukan saat Anda mengaitkan sumber daya komputasi digunakan secara default. Ketika parameter DATAWORKS_SESSION_DISABLE diatur ke true, Anda dapat mengonfigurasi parameter SERVERLESS_QUEUE_NAME untuk menentukan antrian tempat tugas dikirimkan untuk dieksekusi di Data Studio.

    • false (default): Tugas dikirimkan ke SQL Compute untuk dieksekusi.

      Catatan

      Parameter ini hanya berlaku selama eksekusi di Data Studio. Parameter ini tidak berlaku selama eksekusi terjadwal.

    SERVERLESS_RELEASE_VERSION

    Versi mesin Spark. Secara default, Default Engine Version yang dikonfigurasi untuk kluster di bawah Computing Resource di Management Center digunakan. Anda dapat mengonfigurasi parameter ini untuk menentukan versi mesin yang berbeda untuk tugas yang berbeda.

    Catatan

    Parameter SERVERLESS_RELEASE_VERSION dalam konfigurasi Pengaturan Lanjutan hanya berlaku ketika SQL Compute (sesi) yang ditentukan untuk kluster terdaftar berada dalam status belum dimulai di konsol EMR Serverless Spark.

    SERVERLESS_QUEUE_NAME

    Antrian sumber daya tempat Anda ingin mengirimkan tugas. Secara default, tugas dikirimkan ke Default Resource Queue yang dikonfigurasi untuk kluster di Cluster Management di Management Center. Anda dapat menambahkan antrian untuk memenuhi kebutuhan isolasi dan manajemen sumber daya. Untuk informasi selengkapnya, lihat Mengelola antrian sumber daya.

    Metode konfigurasi:

    • Atur parameter node untuk menentukan antrian sumber daya.

    • Anda dapat menentukan antrian sumber daya tempat Anda ingin mengirimkan tugas dengan mengatur parameter Spark global.

    Catatan
    • Parameter SERVERLESS_QUEUE_NAME dalam Pengaturan Lanjutan hanya berlaku ketika SQL Compute (sesi) yang ditentukan oleh kluster terdaftar belum dimulai di konsol EMR Serverless Spark.

    • Saat Anda menjalankan tugas di Data Studio: Anda harus terlebih dahulu mengatur DATAWORKS_SESSION_DISABLE ke true. Hal ini memastikan bahwa tugas dikirimkan ke antrian untuk dieksekusi. Parameter SERVERLESS_QUEUE_NAME kemudian berlaku, yang dapat Anda gunakan untuk menentukan antrian tugas.

    • Eksekusi terjadwal di Operation Center: Tugas dipaksa dikirimkan ke antrian untuk dieksekusi dan tidak dapat dikirimkan ke SQL Compute.

    SERVERLESS_SQL_COMPUTE

    Menentukan SQL Compute (sesi SQL). Secara default, Default SQL Compute yang dikonfigurasi untuk kluster di bawah Computing Resources di Management Center digunakan. Anda dapat mengonfigurasi parameter ini untuk mengatur sesi SQL yang berbeda untuk tugas yang berbeda. Untuk informasi selengkapnya tentang cara membuat dan mengelola sesi SQL, lihat Mengelola sesi SQL.

    Lainnya

    Menyesuaikan parameter Konfigurasi Spark dan menambahkan properti khusus Spark.

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

    Catatan

    Anda dapat mengonfigurasi parameter Spark global di tingkat ruang kerja untuk layanan DataWorks. Anda dapat menentukan apakah parameter Spark global yang dikonfigurasi di tingkat ruang kerja memiliki prioritas lebih tinggi daripada parameter Spark yang dikonfigurasi untuk menjalankan satu tugas dalam layanan DataWorks tertentu. Untuk informasi selengkapnya, lihat Mengonfigurasi parameter Spark global.

    Kluster Spark: EMR on ACK

    Parameter lanjutan

    Deskripsi

    FLOW_SKIP_SQL_ANALYZE

    Mode eksekusi untuk pernyataan SQL. Nilai yang valid:

    • true: Eksekusi beberapa pernyataan SQL sekaligus.

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

    Catatan

    Parameter ini hanya didukung untuk pengujian di lingkungan pengembangan.

    Lainnya

    Menyesuaikan parameter Konfigurasi Spark dan menambahkan properti khusus Spark.

    Format konfigurasinya sebagai berikut: spark.eventLog.enabled : false . DataWorks secara otomatis mengonversi konfigurasi ini ke format --conf key=value dan menambahkannya ke kode yang dikirimkan ke kluster EMR.

    Catatan

    Anda dapat mengonfigurasi parameter Spark global di tingkat ruang kerja untuk layanan DataWorks. Anda dapat menentukan apakah parameter Spark global yang dikonfigurasi di tingkat ruang kerja memiliki prioritas lebih tinggi daripada parameter Spark yang dikonfigurasi untuk menjalankan satu tugas dalam layanan DataWorks tertentu. Untuk informasi selengkapnya, lihat Mengonfigurasi parameter Spark global.

    Kluster Hadoop: EMR on ECS

    Parameter lanjutan

    Deskripsi

    queue

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

    priority

    Prioritas. Nilai default: 1.

    FLOW_SKIP_SQL_ANALYZE

    Mode eksekusi untuk pernyataan SQL. Nilai yang valid:

    • true: Eksekusi beberapa pernyataan SQL sekaligus.

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

    Catatan

    Parameter ini hanya didukung untuk pengujian di lingkungan pengembangan.

    USE_GATEWAY

    Menentukan apakah akan mengirimkan pekerjaan node ini melalui kluster Gateway. Nilai yang valid:

    • true: Kirim melalui kluster Gateway.

    • false (default): Jangan kirim melalui kluster Gateway. Pekerjaan secara default dikirimkan ke node header.

    Catatan

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

    Lainnya

    Menyesuaikan parameter Konfigurasi Spark dan menambahkan properti khusus Spark.

    Format konfigurasinya sebagai berikut: spark.eventLog.enabled : false . DataWorks secara otomatis memformat ini sebagai --conf key=value dalam kode yang dikirimkan ke kluster EMR. Untuk informasi selengkapnya, lihat Mengatur parameter Spark global.

    Catatan
    • DataWorks memungkinkan Anda mengatur parameter Spark global. Artinya, Anda dapat menentukan parameter Spark yang digunakan oleh setiap modul DataWorks di tingkat ruang kerja. Anda juga dapat menentukan apakah parameter Spark global memiliki prioritas lebih tinggi daripada parameter Spark dalam modul tertentu.

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

    Eksekusi tugas SQL

    1. Di bagian Debug Configuration, konfigurasikan Computing Resource dan Resource Group.

      Catatan
      • Anda juga dapat Schedule CUs berdasarkan kebutuhan sumber daya untuk eksekusi tugas. Jumlah CU default adalah 0,25.

      • Jika Anda ingin mengakses sumber data melalui Internet atau virtual private cloud (VPC), Anda harus menggunakan kelompok sumber daya penjadwalan yang terhubung ke sumber data tersebut. Untuk informasi selengkapnya, lihat Solusi Konektivitas Jaringan.

    2. Di kotak dialog Parameters, pilih sumber data yang sesuai dan klik Run untuk mengeksekusi tugas SQL.

  2. Jika Anda ingin menjalankan tugas pada node secara berkala, konfigurasikan properti penjadwalan sesuai kebutuhan. Untuk informasi selengkapnya, lihat Penjadwalan Node.

    Catatan

    Untuk menyesuaikan lingkungan komponen, Anda dapat membuat gambar kustom berdasarkan citra resmi dataworks_emr_base_task_pod dan gunakan citra tersebut di Data Studio.

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

  3. Setelah mengonfigurasi node, lakukan deployment. Untuk informasi selengkapnya, lihat Menerbitkan node dan alur kerja.

  4. Setelah tugas dideploy, Anda dapat melihat status berjalan dari tugas yang dipicu secara otomatis di Operation Center. Untuk informasi selengkapnya, lihat Memulai Operation Center.

FAQ