AnalyticDB for MySQL menggunakan metode pengembangan yang sama untuk aplikasi batch Spark dan aplikasi streaming. Topik ini menjelaskan tool pengembangan yang tersedia, parameter konfigurasi, serta parameter khusus bahasa untuk aplikasi Java, Scala, dan Python.
Prasyarat
Sebelum memulai, pastikan bahwa:
Anda memiliki kluster AnalyticDB for MySQL.
Anda memiliki bucket Object Storage Service (OSS) di wilayah yang sama dengan kluster tersebut.
Semua file aplikasi—JAR, file Python, dependensi, dan paket terkompresi—harus disimpan di OSS.
Tool pengembangan
Anda dapat menggunakan salah satu tool berikut untuk mengembangkan aplikasi batch Spark dan aplikasi streaming:
Konfigurasi aplikasi
Aplikasi Spark di AnalyticDB for MySQL dikonfigurasi menggunakan JSON. Contoh berikut menunjukkan aplikasi Java yang membaca data dari OSS, termasuk parameter umum (name, file, conf) dan parameter khusus Java (args, className).
{
"args": ["args0", "args1"],
"name": "spark-oss-test",
"file": "oss://<testBucketName>/jars/test/spark-examples-0.0.1-SNAPSHOT.jar",
"className": "com.aliyun.spark.oss.SparkReadOss",
"conf": {
"spark.driver.resourceSpec": "medium",
"spark.executor.resourceSpec": "medium",
"spark.executor.instances": 2,
"spark.adb.connectors": "oss"
}
}Untuk detail parameter khusus bahasa, lihat parameter aplikasi Java, parameter aplikasi Scala, atau parameter aplikasi Python.
Parameter umum
| Parameter | Wajib | Deskripsi | Contoh |
|---|---|---|---|
name | Tidak | Nama aplikasi Spark. | "name": "spark-oss-test" |
file | Ya (Java, Scala, Python) | Path absolut OSS dari file utama aplikasi. Untuk Java dan Scala, ini adalah file JAR yang berisi titik masuk. Untuk Python, ini adalah titik masuk yang dapat dieksekusi. Bucket OSS harus berada di wilayah yang sama dengan kluster. | "file": "oss://<testBucketName>/jars/test/spark-examples-0.0.1-SNAPSHOT.jar" |
files | Tidak | Path OSS file tambahan yang akan diunduh ke direktori kerja driver dan executor. Mendukung alias menggunakan # (misalnya, oss://<testBucketName>/test/test1.txt#test1 membuat file tersebut dapat diakses sebagai ./test1 atau ./test1.txt). Pisahkan beberapa path dengan koma. Jika Anda menyertakan log4j.properties, Spark akan menggunakannya sebagai file konfigurasi log. | "files": ["oss://<testBucketName>/path/to/file1", "oss://<testBucketName>/path/to/file2"] |
archives | Tidak | Path OSS paket terkompresi TAR.GZ yang akan didekompresi ke direktori kerja proses Spark. Mendukung alias menggunakan # (misalnya, oss://testBucketName/test/test1.tar.gz#test1 membuat file test2.txt di dalamnya dapat diakses sebagai ./test1/test2.txt atau ./test1.tar.gz/test2.txt). Pisahkan beberapa path dengan koma. Jika dekompresi paket gagal, pekerjaan akan gagal. | "archives": ["oss://<testBucketName>/path/to/archive1.tar.gz", "oss://<testBucketName>/path/to/archive2.tar.gz"] |
conf | Ya | Konfigurasi Spark dalam format key: value, mirip dengan Apache Spark. Pisahkan beberapa entri dengan koma. Untuk parameter khusus AnalyticDB for MySQL, lihat parameter konfigurasi aplikasi Spark. | "conf": {"spark.driver.resourceSpec": "medium", "spark.executor.resourceSpec": "medium", "spark.executor.instances": 2, "spark.adb.connectors": "oss"} |
Parameter aplikasi Java
| Parameter | Wajib | Deskripsi | Contoh |
|---|---|---|---|
args | Tidak | Argumen yang diteruskan ke JAR. Pisahkan beberapa argumen dengan koma. | "args": ["args0", "args1"] |
className | Ya | Kelas utama aplikasi Java. | "className": "com.aliyun.spark.oss.SparkReadOss" |
jars | Tidak | Path absolut OSS file JAR tambahan yang ditambahkan ke classpath JVM (Java Virtual Machine) driver dan executor saat waktu proses. Bucket OSS harus berada di wilayah yang sama dengan kluster. Pisahkan beberapa path dengan koma. | "jars": ["oss://<testBucketName>/path/to/app.jar", "oss://testBucketName/path/to/lib.jar"] |
Parameter aplikasi Scala
| Parameter | Wajib | Deskripsi | Contoh |
|---|---|---|---|
className | Ya | Kelas utama aplikasi Scala. | "className": "com.aliyun.spark.oss.SparkReadOss" |
jars | Tidak | Path absolut OSS file JAR tambahan yang ditambahkan ke classpath JVM driver dan executor saat waktu proses. Bucket OSS harus berada di wilayah yang sama dengan kluster. Pisahkan beberapa path dengan koma. | "jars": ["oss://<testBucketName>/path/to/app.jar", "oss://testBucketName/path/to/lib.jar"] |
Parameter aplikasi Python
| Parameter | Wajib | Deskripsi | Contoh |
|---|---|---|---|
pyFiles | Ya | Path OSS file Python untuk aplikasi PySpark. Format yang didukung: ZIP, PY, atau EGG. Untuk beberapa file, gunakan format ZIP atau EGG. File Python dapat diimpor sebagai modul dalam kode Anda. Pisahkan beberapa path dengan koma. | "pyFiles": ["oss://<testBucketName>/path/to/app.zip", "oss://<testBucketName>/path/to/lib.egg"] |