全部产品
Search
文档中心

AnalyticDB:Gunakan spark-submit untuk mengembangkan aplikasi Spark

更新时间:Jul 02, 2025

AnalyticDB for MySQL menyediakan alat baris perintah spark-submit. Jika Anda menggunakan klien untuk terhubung ke kluster AnalyticDB for MySQL dalam pengembangan aplikasi Spark, Anda dapat menggunakan alat ini untuk mengirimkan aplikasi Spark. Topik ini menjelaskan cara menggunakan alat baris perintah spark-submit dari AnalyticDB for MySQL.

Prasyarat

  • Kluster Enterprise Edition, Basic Edition, atau Data Lakehouse Edition AnalyticDB for MySQL telah dibuat.

  • Grup sumber daya tugas telah dibuat.

  • Bucket Object Storage Service (OSS) telah dibuat di wilayah yang sama dengan kluster AnalyticDB for MySQL.

  • Java Development Kit (JDK) 1.8 atau versi lebih baru telah diinstal.

Catatan penggunaan

Saat menggunakan alat baris perintah spark-submit untuk mengembangkan tugas, Anda hanya dapat mengirimkan aplikasi Spark JAR. Aplikasi Spark SQL tidak didukung.

Unduh dan instal alat baris perintah spark-submit

  1. Jalankan perintah berikut untuk mengunduh paket instalasi alat baris perintah spark-submit bernama adb-spark-toolkit-submit-0.0.1.tar.gz:

    wget https://dla003.oss-cn-hangzhou.aliyuncs.com/adb-spark-toolkit-submit-0.0.1.tar.gz
  2. Jalankan perintah berikut untuk mengekstrak paket instalasi dan menginstal alat baris perintah spark-submit:

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

Parameter konfigurasi aplikasi Spark

Setelah mengekstrak paket instalasi alat baris perintah spark-submit, masuk ke direktori adb-spark-toolkit-submit/conf dan jalankan perintah vim spark-defaults.conf untuk memodifikasi parameter konfigurasi dalam file spark-defaults.conf. Skrip spark-submit secara otomatis membaca file konfigurasi. Parameter konfigurasi berlaku untuk semua aplikasi Spark.

Tabel berikut menjelaskan parameter konfigurasi aplikasi Spark.

Parameter

Diperlukan

Deskripsi

keyId

Ya

ID AccessKey akun Alibaba Cloud atau Pengguna Resource Access Management (RAM) yang memiliki izin untuk mengakses sumber daya AnalyticDB for MySQL.

Untuk informasi tentang cara mendapatkan ID AccessKey dan Rahasia AccessKey, lihat Akun dan izin.

secretId

Ya

Rahasia AccessKey akun Alibaba Cloud atau Pengguna RAM yang memiliki izin untuk mengakses sumber daya AnalyticDB for MySQL.

Untuk informasi tentang cara mendapatkan ID AccessKey dan Rahasia AccessKey, lihat Akun dan izin.

regionId

Ya

ID wilayah kluster AnalyticDB for MySQL.

clusterId

Ya

ID kluster AnalyticDB for MySQL.

rgName

Ya

Nama grup sumber daya tugas yang digunakan untuk menjalankan aplikasi Spark.

ossKeyId

Tidak

Jika paket JAR yang diperlukan untuk aplikasi Spark JAR disimpan di perangkat lokal Anda, Anda harus menentukan parameter ossKeyId, ossSecretId, dan ossUploadPath.

  • Parameter ossKeyId dan ossSecretId menentukan ID AccessKey dan Rahasia AccessKey akun Alibaba Cloud atau Pengguna RAM yang Anda gunakan. Pengguna RAM harus memiliki izin AliyunOSSFullAccess.

  • Parameter ossUploadPath menentukan jalur OSS tempat Anda ingin mengunggah paket JAR lokal.

ossSecretId

Tidak

ossUploadPath

Tidak

parameter conf

Tidak

Parameter konfigurasi yang diperlukan untuk aplikasi Spark, yang mirip dengan Apache Spark. Parameter harus dalam format key:value. Pisahkan beberapa parameter dengan koma (,). Untuk informasi lebih lanjut, lihat Parameter konfigurasi aplikasi Spark.

Kirimkan aplikasi Spark

  1. Unggah paket JAR yang diperlukan untuk aplikasi Spark ke OSS. Untuk informasi lebih lanjut, lihat Unggah Sederhana.

  2. Jalankan perintah berikut untuk masuk ke direktori alat baris perintah spark-submit:

    cd adb-spark-toolkit-submit
  3. Kirimkan aplikasi Spark dalam format berikut:

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

    Setelah mengirimkan aplikasi Spark, salah satu kode balasan berikut akan dikembalikan:

    • 255: Aplikasi gagal dijalankan.

    • 0: Aplikasi berhasil dijalankan.

    • 143: Aplikasi dihentikan.

    Tabel berikut menjelaskan parameter.

    Parameter

    Deskripsi

    --class

    Kelas entri aplikasi Java atau Scala. Kelas entri tidak diperlukan untuk aplikasi Python.

    --verbose

    Menampilkan log yang dihasilkan saat Anda mengirimkan aplikasi Spark.

    --name

    Nama aplikasi Spark.

    --jars

    Jalur absolut paket JAR yang diperlukan untuk aplikasi Spark. Pisahkan beberapa jalur dengan koma (,).

    Jika Anda menentukan jalur lokal, perhatikan hal-hal berikut:

    • Pengguna RAM yang Anda gunakan harus memiliki izin AliyunOSSFullAccess.

    • Pastikan parameter ossUploadPath dikonfigurasi dalam file conf/spark-defaults.conf untuk menentukan jalur OSS tempat Anda ingin mengunggah paket JAR lokal.

    • Saat paket JAR lokal sedang diunggah, sistem memverifikasi paket berdasarkan nilai hash yang dihasilkan menggunakan algoritma Message Digest 5 (MD5). Jika paket JAR dengan nama dan nilai MD5 yang sama sudah ada di jalur OSS yang ditentukan, unggahan dibatalkan.

    • Jika Anda memperbarui paket JAR secara manual di jalur OSS, Anda harus menghapus file MD5 yang sesuai dari paket tersebut.

    --conf

    Parameter konfigurasi aplikasi Spark.

    Parameter konfigurasi aplikasi Spark sangat mirip dengan alat baris perintah spark-submit open source. Untuk informasi tentang parameter konfigurasi yang berbeda dari alat baris perintah spark-submit open source dan spesifik untuk alat baris perintah spark-submit AnalyticDB for MySQL, lihat bagian "Perbedaan antara spark-submit AnalyticDB for MySQL dan spark-submit open source" dari topik ini.

    Catatan

    Tentukan beberapa parameter dalam format berikut: --conf key1=value1 --conf key2=value2.

    oss://testBucketname/jars/test1.jar args0 args1

    Jalur absolut file utama aplikasi Spark. File utama bisa berupa paket JAR yang berisi kelas entri atau file yang dapat dieksekusi yang berfungsi sebagai titik masuk untuk Python.

    Catatan

    Anda harus menyimpan file utama aplikasi Spark di OSS.

    args

    Argumen yang diperlukan untuk paket JAR. Pisahkan beberapa argumen dengan spasi.

Permintaan daftar aplikasi Spark

./bin/spark-submit --list --clusterId <cluster_Id>  --rgName <ResourceGroup_name> --pagenumber 1 --pagesize 3

Parameter:

  • cluster_Id: ID kluster AnalyticDB for MySQL.

  • ResourceGroup_name: Nama grup sumber daya tugas yang digunakan untuk menjalankan aplikasi Spark.

Permintaan status aplikasi Spark

./bin/spark-submit --status <appId>

Anda dapat memperoleh appId aplikasi dari informasi tentang aplikasi Spark. Untuk informasi lebih lanjut, lihat bagian "Permintaan Daftar Aplikasi Spark" dari topik ini.

Permintaan parameter pengiriman dan URL UI Spark dari aplikasi Spark

./bin/spark-submit --detail <appId>

Anda dapat memperoleh appId aplikasi dari informasi tentang aplikasi Spark. Untuk informasi lebih lanjut, lihat bagian "Permintaan Daftar Aplikasi Spark" dari topik ini.

Parameter Spark WEB UI dalam keluaran perintah menunjukkan URL UI Spark.

Permintaan log aplikasi Spark

./bin/spark-submit --get-log <appId>

Anda dapat memperoleh appId aplikasi dari informasi tentang aplikasi Spark. Untuk informasi lebih lanjut, lihat bagian "Permintaan Daftar Aplikasi Spark" dari topik ini.

Hentikan aplikasi Spark

./bin/spark-submit --kill <appId>

Anda dapat memperoleh appId aplikasi dari informasi tentang aplikasi Spark. Untuk informasi lebih lanjut, lihat bagian "Permintaan Daftar Aplikasi Spark" dari topik ini.

Perbedaan antara AnalyticDB for MySQL spark-submit dan spark-submit open source

Parameter spesifik untuk AnalyticDB for MySQL spark-submit

Parameter

Deskripsi

--api-retry-times

Jumlah maksimum percobaan ulang yang diizinkan jika alat baris perintah spark-submit AnalyticDB for MySQL gagal menjalankan perintah. Nilai default: 3. Perintah untuk mengirimkan aplikasi Spark tidak diulang

karena pengiriman bukan operasi idempoten. Pengiriman yang gagal karena alasan seperti timeout jaringan mungkin sebenarnya berhasil di latar belakang. Dalam hal ini, mencoba ulang perintah pengiriman aplikasi dapat mengakibatkan pengiriman duplikat. Untuk memeriksa apakah aplikasi berhasil dikirimkan, Anda dapat menggunakan parameter --list untuk mendapatkan daftar aplikasi yang telah dikirimkan. Anda juga dapat masuk ke konsol AnalyticDB for MySQL untuk memeriksa daftar aplikasi.

--time-out-seconds

Periode timeout setelah alat baris perintah spark-submit AnalyticDB for MySQL mencoba ulang perintah yang gagal. Unit: detik. Nilai default: 10.

--enable-inner-endpoint

Mengaktifkan koneksi jaringan internal. Jika Anda mengirimkan aplikasi Spark dari instance Elastic Compute Service (ECS), Anda dapat menentukan parameter ini untuk mengizinkan alat baris perintah spark-submit AnalyticDB for MySQL untuk mengakses layanan dalam virtual private cloud (VPC).

--list

Meminta daftar aplikasi. Dalam kebanyakan kasus, parameter ini digunakan bersama dengan parameter --pagenumber dan --pagesize.

Sebagai contoh, jika Anda ingin meminta lima aplikasi di halaman pertama, Anda dapat menentukan parameter berikut:

--list 
--pagenumber 1 
--pagesize 5

--pagenumber

Nomor halaman. Nilai default: 1.

--pagesize

Jumlah maksimum aplikasi yang dikembalikan di setiap halaman. Nilai default: 10.

--kill

Menghentikan aplikasi.

--get-log

Log aplikasi.

--status

Detail tentang aplikasi.

Parameter spesifik untuk spark-submit open source

Alat baris perintah spark-submit AnalyticDB for MySQL tidak mendukung parameter konfigurasi spesifik dari alat baris perintah spark-submit open source. Untuk informasi lebih lanjut, lihat bagian "Parameter konfigurasi yang tidak didukung oleh AnalyticDB for MySQL" dari topik Parameter Konfigurasi Aplikasi Spark.