Apache DolphinScheduler adalah platform orkestrasi alur kerja open source yang terdistribusi dan dapat diperluas, dilengkapi antarmuka visual Directed Acyclic Graph (DAG) yang kuat. Panduan ini menjelaskan cara menghubungkan DolphinScheduler ke E-MapReduce (EMR) Serverless Spark serta mengirim pekerjaan Java Archive (JAR), SQL, dan PySpark melalui antarmuka web DolphinScheduler.
Latar Belakang
Plugin Tugas AliyunServerlessSpark telah digabungkan ke cabang utama Apache DolphinScheduler dan akan dirilis dalam rilis resmi mendatang. Hingga rilis tersebut tersedia, instal plugin tersebut menggunakan salah satu metode yang dijelaskan dalam prasyarat berikut.
Prasyarat
Sebelum memulai, pastikan Anda telah:
-
Menginstal Java Development Kit (JDK) 1.8 atau versi lebih baru.
-
Menginstal Plugin Tugas AliyunServerlessSpark menggunakan salah satu metode berikut:
-
Metode 1 (kompilasi dari sumber): Klon cabang utama dan kompilasi. Lihat apache/dolphinscheduler di GitHub.
-
Metode 2 (cherry-pick): Integrasikan plugin ke proyek Anda menggunakan permintaan pull (PR) cherry-pick. Lihat [Feature-16127] Support emr serverless spark #16126 di GitHub.
-
Langkah 1: Buat sumber data
-
Buka antarmuka web DolphinScheduler dan klik Datasource di bilah navigasi atas.
-
Klik Create DataSource. Di kotak dialog Choose DataSource Type, pilih ALIYUN_SERVERLESS_SPARK.
-
Di kotak dialog CreateDataSource, konfigurasikan parameter berikut:
Parameter Deskripsi Datasource Name Nama untuk sumber data Access Key Id ID AccessKey Alibaba Cloud Anda Access Key Secret Rahasia AccessKey Alibaba Cloud Anda Region Id Wilayah tempat ruang kerja EMR Serverless Spark Anda berada, misalnya, cn-beijing. Untuk daftar wilayah yang didukung, lihat Supported regions. -
Klik Test Connect. Setelah pengujian koneksi berhasil, klik Confirm.
Langkah 2: Buat proyek
-
Klik Project di bilah navigasi atas.
-
Klik Create Project.
-
Di kotak dialog Create Project, atur Project Name, User, dan bidang lain yang diperlukan. Untuk detailnya, lihat Project.
Langkah 3: Buat alur kerja
-
Klik nama proyek. Di panel navigasi kiri, pilih Workflow > Workflow Definition.
-
Klik Create Workflow. Halaman workflow DAG edit terbuka.
-
Di panel navigasi kiri, seret ALIYUN_SERVERLESS_SPARK ke kanvas.
-
Di kotak dialog Current node settings, konfigurasikan parameter node sesuai jenis pekerjaan Anda, lalu klik Confirm. Bagian berikut mencantumkan parameter untuk setiap jenis pekerjaan. Parameter yang berlaku untuk ketiga jenis pekerjaan disebutkan terlebih dahulu, diikuti oleh parameter spesifik masing-masing jenis pekerjaan.
Parameter bersama
Parameter ini berlaku untuk pekerjaan JAR, SQL, dan PySpark.
| Parameter | Deskripsi |
|---|---|
| Datasource types | Pilih ALIYUN_SERVERLESS_SPARK |
| Datasource instances | Pilih sumber data yang dibuat pada Langkah 1 |
| workspace id | ID ruang kerja EMR Serverless Spark Anda |
| resource queue id | ID antrian sumber daya di ruang kerja EMR Serverless Spark. Default: root_queue |
| is production | Aktifkan sakelar ini jika pekerjaan dijalankan di lingkungan produksi |
| engine release version | Versi mesin. Default: esr-2.1-native (Spark 3.3.1, Scala 2.12, Native Runtime) |
Kirim pekerjaan JAR
Atur code type ke JAR, lalu konfigurasikan parameter berikut:
| Parameter | Deskripsi | Contoh |
|---|---|---|
| code type | Jenis pekerjaan | JAR |
| job name | Nama pekerjaan EMR Serverless Spark | ds-emr-spark-jar |
| entry point | Path ke file JAR di OSS | oss://<yourBucketName>/spark-resource/examples/jars/spark-examples_2.12-3.3.1.jar |
| entry point arguments | Argumen yang diteruskan ke pekerjaan. Gunakan # sebagai pembatas antarargumen. |
— |
| spark submit parameters | Flag konfigurasi Spark yang diteruskan ke spark-submit | Lihat contoh di bawah |
Contoh parameter spark submit untuk pekerjaan JAR:
--class org.apache.spark.examples.SparkPi --conf spark.executor.cores=4 --conf spark.executor.memory=20g --conf spark.driver.cores=4 --conf spark.driver.memory=8g --conf spark.executor.instances=1
Kirim pekerjaan SQL
Atur code type ke SQL, lalu konfigurasikan parameter berikut:
| Parameter | Deskripsi | Contoh |
|---|---|---|
| code type | Jenis pekerjaan | SQL |
| job name | Nama pekerjaan EMR Serverless Spark | ds-emr-spark-sql |
| entry point | Path file yang valid | — |
| entry point arguments | Skrip SQL yang akan dijalankan. Gunakan # sebagai pembatas. |
Lihat contoh di bawah |
| spark submit parameters | Flag konfigurasi Spark yang diteruskan ke spark-submit | Lihat contoh di bawah |
entry point arguments examples:
-
Kirim skrip SQL inline:
-e#show tables;show tables; -
Kirim skrip SQL yang disimpan di OSS:
-f#oss://<yourBucketName>/spark-resource/examples/sql/show_db.sql
Contoh parameter spark submit untuk pekerjaan SQL:
--class org.apache.spark.sql.hive.thriftserver.SparkSQLCLIDriver --conf spark.executor.cores=4 --conf spark.executor.memory=20g --conf spark.driver.cores=4 --conf spark.driver.memory=8g --conf spark.executor.instances=1
Kirim pekerjaan PySpark
Atur code type ke PYTHON, lalu konfigurasikan parameter berikut:
| Parameter | Deskripsi | Contoh |
|---|---|---|
| code type | Jenis pekerjaan | PYTHON |
| job name | Nama pekerjaan EMR Serverless Spark | ds-emr-spark-jar |
| entry point | Path ke skrip Python di OSS | oss://<yourBucketName>/spark-resource/examples/src/main/python/pi.py |
| entry point arguments | Argumen yang diteruskan ke skrip. Gunakan # sebagai pembatas. |
1 |
| spark submit parameters | Flag konfigurasi Spark yang diteruskan ke spark-submit | Lihat contoh di bawah |
Contoh parameter spark submit untuk pekerjaan PySpark:
--conf spark.executor.cores=4 --conf spark.executor.memory=20g --conf spark.driver.cores=4 --conf spark.driver.memory=8g --conf spark.executor.instances=1
Langkah selanjutnya
Untuk informasi lebih lanjut tentang alur kerja DolphinScheduler, jenis tugas, dan opsi penjadwalan, lihat dokumentasi Apache DolphinScheduler.