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.
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
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.gzJalankan 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.
|
ossSecretId | Tidak | |
ossUploadPath | Tidak | |
parameter conf | Tidak | Parameter konfigurasi yang diperlukan untuk aplikasi Spark, yang mirip dengan Apache Spark. Parameter harus dalam format |
Kirimkan aplikasi Spark
Unggah paket JAR yang diperlukan untuk aplikasi Spark ke OSS. Untuk informasi lebih lanjut, lihat Unggah Sederhana.
Jalankan perintah berikut untuk masuk ke direktori alat baris perintah spark-submit:
cd adb-spark-toolkit-submitKirimkan 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 args1CatatanSetelah 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
ossUploadPathdikonfigurasi dalam fileconf/spark-defaults.confuntuk 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.
CatatanTentukan 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.
CatatanAnda 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 3Parameter:
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 |
--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 Sebagai contoh, jika Anda ingin meminta lima aplikasi di halaman pertama, Anda dapat menentukan parameter berikut: |
--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.