All Products
Search
Document Center

AnalyticDB:Kembangkan aplikasi Spark menggunakan tool baris perintah Spark-Submit

Last Updated:Mar 29, 2026

Tool baris perintah spark-submit AnalyticDB for MySQL memungkinkan Anda mengirim dan mengelola aplikasi Spark JAR dari client. Topik ini menjelaskan cara menginstal tool tersebut, mengonfigurasinya, mengirim aplikasi Spark JAR, serta mengelola pekerjaan yang sedang berjalan.

Batasan

  • Tool spark-submit hanya mendukung aplikasi Spark JAR. Aplikasi Spark SQL tidak dapat dikirim.

  • Perintah pengiriman tidak diulang saat gagal karena pengiriman bukan operasi idempoten. Perintah yang tampak gagal akibat timeout jaringan mungkin sebenarnya telah berhasil. Untuk memverifikasi apakah pengiriman berhasil, gunakan --list atau periksa konsol AnalyticDB for MySQL.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Kluster AnalyticDB for MySQL edisi Data Lakehouse

  • Kelompok sumber daya pekerjaan. Untuk detailnya, lihat Buat dan kelola kelompok sumber daya.

  • Bucket Object Storage Service (OSS) di wilayah yang sama dengan kluster

  • Java Development Kit (JDK) 1.8 atau versi lebih baru yang telah diinstal pada mesin client

Instal spark-submit

  1. Unduh paket instalasi.

    wget https://dla003.oss-cn-hangzhou.aliyuncs.com/adb-spark-toolkit-submit-0.0.1.tar.gz
  2. Ekstrak paket tersebut.

    tar zxvf adb-spark-toolkit-submit-0.0.1.tar.gz

Konfigurasi spark-submit

Setelah mengekstrak paket, buka file adb-spark-toolkit-submit/conf/spark-defaults.conf. Skrip spark-submit membaca file ini secara otomatis, dan pengaturannya berlaku untuk semua aplikasi Spark.

vim adb-spark-toolkit-submit/conf/spark-defaults.conf

Tabel berikut menjelaskan parameter konfigurasi.

ParameterWajibDeskripsi
keyIdYaID AccessKey dari Akun Alibaba Cloud atau Pengguna Resource Access Management (RAM) yang memiliki izin untuk mengakses AnalyticDB for MySQL. Untuk detailnya, lihat Akun dan izin.
secretIdYaRahasia AccessKey dari Akun Alibaba Cloud atau Pengguna RAM. Untuk detailnya, lihat Akun dan izin.
regionIdYaID wilayah kluster AnalyticDB for MySQL.
clusterIdYaID kluster AnalyticDB for MySQL.
rgNameYaNama kelompok sumber daya pekerjaan yang digunakan untuk menjalankan aplikasi Spark.
ossKeyIdTidakID AccessKey untuk akses OSS. Diperlukan ketika file JAR yang disimpan di lokal perlu diunggah ke OSS. Pengguna RAM harus memiliki izin AliyunOSSFullAccess.
ossSecretIdTidakRahasia AccessKey untuk akses OSS. Diperlukan bersama dengan ossKeyId.
ossUploadPathTidakPath OSS untuk mengunggah file JAR lokal. Diperlukan bersama dengan ossKeyId.
confTidakParameter konfigurasi Spark tambahan dalam format key:value. Pisahkan beberapa parameter dengan koma. Untuk daftar parameter yang tersedia, lihat Parameter konfigurasi aplikasi Spark.

Kompatibilitas

Untuk menjaga kompatibilitas dengan Spark-Submit open source, Anda juga dapat mengatur parameter berikut dalam Spark Conf AnalyticDB for MySQL: keyId, secretId, regionId, clusterId, rgName, ossKeyId, dan ossUploadPath. Parameter-parameter ini bukan bagian dari konfigurasi Spark open source. Saat Anda mengonfigurasi parameter ini menggunakan format Conf, Anda harus menggunakan nama seperti yang ditunjukkan dalam kode berikut.

--conf spark.adb.access.key.id=<value>    
--conf spark.adb.access.secret.id=<value>
--conf spark.adb.regionId=<value>
--conf spark.adb.clusterId=<value>
--conf spark.adb.rgName=<value>
--conf spark.adb.oss.akId=<value>
--conf spark.adb.oss.akSec=<value>
--conf spark.adb.oss.endpoint=<value>
--conf spark.adb.oss.uploadPath=<value>

Kirim aplikasi Spark

  1. Unggah file JAR aplikasi Spark Anda ke OSS. Untuk detailnya, lihat Pengunggahan sederhana.

  2. Masuk ke direktori spark-submit.

    cd adb-spark-toolkit-submit
  3. Kirim aplikasi Spark. Ganti nilai placeholder dengan path OSS dan nama resource yang sesuai.

    ./bin/spark-submit \
      --class com.aliyun.spark.oss.SparkReadOss \
      --verbose \
      --name Job1 \
      --jars oss://<bucket-name>/jars/test.jar,oss://<bucket-name>/jars/search.jar \
      --conf spark.driver.resourceSpec=medium \
      --conf spark.executor.instances=1 \
      --conf spark.executor.resourceSpec=medium \
      oss://<bucket-name>/jars/test1.jar args0 args1

    Ganti placeholder sebagai berikut:

    PlaceholderDeskripsi
    <bucket-name>Nama bucket OSS yang berisi file JAR Anda
    args0 args1Argumen untuk file JAR, dipisahkan dengan spasi

Setelah Anda mengirim aplikasi, salah satu kode balasan berikut akan dikembalikan:

Kode balasanMakna
0Aplikasi berhasil dijalankan
255Aplikasi gagal
143Aplikasi dihentikan

Tabel berikut menjelaskan parameter spark-submit yang digunakan dalam perintah di atas.

ParameterDeskripsi
--classKelas utama aplikasi Java atau Scala. Tidak diperlukan untuk aplikasi Python.
--verboseMencetak log yang dihasilkan selama pengiriman.
--nameNama aplikasi Spark.
--jarsDaftar path absolut OSS yang dipisahkan koma dari file JAR tambahan yang dibutuhkan aplikasi. Jika Anda menentukan path lokal, tool akan mengunggahnya ke path OSS yang dikonfigurasi di ossUploadPath. Saat file JAR lokal sedang diunggah, sistem memverifikasi file tersebut menggunakan checksum MD5 — jika file dengan nama dan nilai MD5 yang sama sudah ada di OSS, pengunggahan dibatalkan. Jika Anda telah memperbarui file JAR di OSS secara manual, hapus file checksum MD5-nya agar file yang diperbarui diunggah. Pengguna RAM harus memiliki izin AliyunOSSFullAccess.
--confParameter konfigurasi Spark. Tentukan beberapa parameter sebagai flag terpisah: --conf key1=value1 --conf key2=value2. Untuk parameter khusus AnalyticDB for MySQL, lihat Perbedaan dari spark-submit open source.
Path file utamaPath absolut OSS dari file JAR utama (untuk Java/Scala) atau skrip titik masuk (untuk Python). Semua file utama harus disimpan di OSS.
argsArgumen untuk file JAR, dipisahkan dengan spasi.

Kelola aplikasi Spark

Setelah mengirim aplikasi, ikuti alur kerja berikut:

  1. Jalankan --list untuk mendapatkan ID aplikasi.

  2. Gunakan ID aplikasi tersebut dengan --status, --get-log, atau --detail untuk memantau kemajuan.

  3. Jalankan --kill untuk menghentikan aplikasi jika diperlukan.

Daftar aplikasi

Gunakan ID aplikasi yang dikembalikan di sini untuk semua perintah pengelolaan lainnya.

./bin/spark-submit --list \
  --clusterId <cluster-ID> \
  --rgName <resource-group-name> \
  --pagenumber 1 \
  --pagesize 3

Ganti <cluster-ID> dengan ID kluster AnalyticDB for MySQL Anda, dan <resource-group-name> dengan nama kelompok sumber daya pekerjaan.

Periksa status aplikasi

./bin/spark-submit --status <application-ID>

Lihat detail pengiriman dan URL Spark UI

./bin/spark-submit --detail <application-ID>

Output mencakup bidang Spark WEB UI yang berisi URL Spark UI untuk aplikasi tersebut.

Lihat log aplikasi

./bin/spark-submit --get-log <application-ID>

Hentikan aplikasi

./bin/spark-submit --kill <application-ID>

Perbedaan dari spark-submit open source

Parameter khusus spark-submit AnalyticDB for MySQL

Parameter berikut hanya tersedia di tool spark-submit AnalyticDB for MySQL.

ParameterBawaanDeskripsi
--api-retry-times3Jumlah maksimum percobaan ulang untuk perintah yang gagal. Perintah pengiriman tidak diulang — lihat Batasan untuk detailnya.
--time-out-seconds10Periode timeout dalam detik sebelum mencoba ulang perintah yang gagal.
--enable-inner-endpointMengaktifkan akses jaringan internal dalam virtual private cloud (VPC). Gunakan ini saat mengirim aplikasi dari instans Elastic Compute Service (ECS).
--listMenampilkan daftar aplikasi yang telah dikirim. Gunakan bersama --pagenumber dan --pagesize untuk membagi hasil menjadi halaman.
--pagenumber1Nomor halaman untuk hasil daftar.
--pagesize10Jumlah aplikasi yang dikembalikan per halaman.
--killMenghentikan aplikasi yang ditentukan.
--get-logMengambil log untuk aplikasi yang ditentukan.
--statusMenampilkan status aplikasi yang ditentukan.

Parameter yang tidak didukung oleh spark-submit AnalyticDB for MySQL

Beberapa parameter spark-submit open source tidak didukung. Untuk daftar lengkapnya, lihat topik Parameter konfigurasi aplikasi Spark.