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, atauJAR packagestertentu 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.
CatatanJika 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
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.
CatatanParameter 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.
CatatanParameter 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 modespark-submit cluster. Pada mode ini, baik Spark 2 maupun Spark 3 mendukung metadata, alur data, dan informasi output. Anda juga dapat menyesuaikan parameter Spark.CatatanSecara default, mode
spark-submit clustermembuat file dan direktori sementara di direktori/tmpHDFS 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.
CatatanJika parameter ini diatur ke
false,yarn applicationIdHive tidak dicetak di log. Untuk mencetakyarn applicationId, atur parameter ini ketrue.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.CatatanDataWorks 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.
CatatanParameter 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 ketrue, Anda juga dapat mengonfigurasi parameterSERVERLESS_QUEUE_NAMEuntuk menentukan antrian pengiriman pekerjaan selama pengembangan dan eksekusi.false(default): Pekerjaan dikirimkan ke SQL Compute.CatatanParameter 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.
CatatanParameter
SERVERLESS_RELEASE_VERSIONdi 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:
Atur parameter node untuk menentukan antrian sumber daya pengiriman pekerjaan.
Tentukan antrian sumber daya pengiriman pekerjaan menggunakan Mengonfigurasi parameter Spark global.
CatatanParameter
SERVERLESS_QUEUE_NAMEdi 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_DISABLEketrueuntuk mengirimkan pekerjaan ke antrian. ParameterSERVERLESS_QUEUE_NAMEhanya 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.CatatanDataWorks 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.
CatatanParameter 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.CatatanDataWorks 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.
CatatanParameter 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.
CatatanJika Anda mengatur parameter ini ke
truetetapi 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.CatatanDataWorks 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
Konfigurasikan Run Configuration, Compute Engines, dan resource groups.
CatatanAnda 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.
Di kotak dialog parameter pada bilah alat, pilih sumber data yang sesuai dan klik Run untuk menjalankan pekerjaan SQL.
Untuk menjalankan tugas secara berkala, konfigurasikan jadwalnya sesuai kebutuhan bisnis Anda. Untuk informasi selengkapnya tentang konfigurasi tersebut, lihat Konfigurasi penjadwalan node.
CatatanUntuk menyesuaikan lingkungan komponen, buat
dataworks_emr_base_task_podkustom 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, ataujar packagestertentu saat membuat custom image.Setelah mengonfigurasi tugas, Anda harus menerapkan node tersebut. Untuk informasi selengkapnya, lihat Penerapan node dan alur kerja.
Setelah tugas diterapkan, Anda dapat melihat statusnya di Operation Center. Untuk informasi selengkapnya, lihat Memulai Operation Center.
FAQ
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.