全部产品
Search
文档中心

:Panduan konfigurasi aplikasi Spark

更新时间:Mar 19, 2026

Aplikasi Spark di AnalyticDB for MySQL Enterprise Edition, Basic Edition, dan Data Lakehouse Edition dijelaskan dalam format JSON. Skrip konfigurasi mencakup semua informasi aplikasi, termasuk nama aplikasi, jalur paket JAR, dan parameter konfigurasi. Panduan ini menjelaskan cara mengonfigurasi aplikasi Spark.

Perhatian

Enterprise Edition, Basic Edition, dan Data Lakehouse Edition saat ini dalam rilis canary. Untuk meminta uji coba Enterprise Edition, Basic Edition, dan Data Lakehouse Edition, Submit a ticket.

Aplikasi batch

Spark mendukung aplikasi batch, streaming, dan SQL. Eksekusi aplikasi batch memerlukan paket JAR atau file Python yang berisi kelas entri. Anda juga dapat menambahkan paket JAR tambahan, sandbox Python, serta parameter kelas entri sesuai kebutuhan bisnis.

Anda dapat menulis aplikasi batch Spark di AnalyticDB for MySQL menggunakan parameter baris perintah serupa dengan alat spark-submit.

Contoh konfigurasi aplikasi batch

Contoh berikut menunjukkan aplikasi batch Spark tipikal yang membaca data dari Object Storage Service (OSS). Skrip konfigurasi mencakup parameter seperti nama aplikasi, paket JAR yang berisi kelas entri, kelas entri beserta parameternya, serta parameter eksekusi. Skrip ditulis dalam format JSON. Contoh:

 {
  "args": ["oss://${testBucketName}/data/test/test.csv"],
  "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"
  }
}

Tabel berikut menjelaskan parameter yang digunakan untuk konfigurasi aplikasi batch.

Parameter

Diperlukan

Contoh

Deskripsi

args

Tidak

"args":["args0", "args1"]

Parameter input aplikasi Spark. Pisahkan beberapa parameter dengan koma (,).

name

Tidak

"name": "your_job_name"

Nama aplikasi Spark.

file

Ya untuk aplikasi yang ditulis dalam Python, Java, atau Scala

"file":"oss://testBucketName/path/to/your/jar"

Jalur yang menyimpan file utama aplikasi Spark. File utama bisa berupa paket JAR yang berisi kelas entri atau file eksekusi entri Python.

Catatan

File utama aplikasi Spark harus disimpan di OSS.

className

Ya untuk aplikasi yang ditulis dalam Java atau Scala

"className":"com.aliyun.spark.oss.SparkReadOss"

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

sqls

Ya untuk aplikasi SQL

"sqls":["select * from xxxx","show databases"]

Pernyataan SQL yang dapat digunakan untuk langsung mengirimkan aplikasi batch SQL tanpa perlu menentukan paket JAR atau file Python. Parameter ini tidak dapat digunakan bersama dengan parameter file, className, atau args. Anda dapat menentukan beberapa pernyataan SQL untuk aplikasi Spark. Pisahkan beberapa pernyataan SQL dengan koma (,). Mereka dieksekusi dalam urutan yang ditentukan.

jars

Tidak

"jars":["oss://testBucketName/path/to/jar","oss://testBucketName/path/to/jar"]

Paket JAR yang diperlukan untuk aplikasi Spark. Pisahkan beberapa paket JAR dengan koma (,). Saat aplikasi Spark berjalan, paket JAR ditambahkan ke classpath driver dan executor Java virtual machines (JVM).

Catatan

Semua paket JAR yang diperlukan untuk aplikasi Spark harus disimpan di OSS.

files

Tidak

"files":["oss://testBucketName/path/to/files","oss://testBucketName/path/to/files"]

File yang diperlukan untuk aplikasi Spark. File-file ini diunduh ke direktori kerja driver dan executor.

Alias dapat dikonfigurasikan untuk file-file ini. Contoh: oss://testBucketName/test/test1.txt#test1. Dalam contoh ini, test1 digunakan sebagai alias file. Anda dapat mengakses file dengan menentukan ./test1 atau ./test1.txt.

Pisahkan beberapa file dengan koma (,).

Catatan
  • Jika file log4j.properties di direktori oss://<path/to>/ ditentukan untuk parameter ini, aplikasi Spark menggunakan file log4j.properties sebagai file konfigurasi log.

  • Semua file yang diperlukan untuk aplikasi Spark harus disimpan di OSS.

archives

Tidak

"archives":["oss://testBucketName/path/to/archives","oss://testBucketName/path/to/archives"]

Paket kompresi yang diperlukan untuk aplikasi Spark. Paket tersebut harus dalam format .TAR.GZ. Paket-paket tersebut akan diekstraksi ke direktori kerja proses Spark.

Alias dapat dikonfigurasikan untuk file yang terkandung dalam paket. Contoh: oss://testBucketName/test/test1.tar.gz#test1. Dalam contoh ini, test1 digunakan sebagai alias file. Anggaplah test2.txt adalah file yang terkandung dalam paket test1.tar.gz. Anda dapat mengakses file dengan menentukan ./test1/test2.txt atau ./test1.tar.gz/test2.txt.

Pisahkan beberapa paket dengan koma (,).

Catatan

Semua paket kompresi yang diperlukan untuk aplikasi Spark harus disimpan di OSS. Jika sebuah paket gagal diekstraksi, tugas tersebut juga gagal.

pyFiles

Tidak untuk aplikasi Python

"pyFiles":["oss://testBucketName/path/to/pyfiles","oss://testBucketName/path/to/pyfiles"]

File Python yang diperlukan untuk aplikasi PySpark. File-file tersebut harus dalam format ZIP, PY, atau EGG. Jika beberapa file Python diperlukan, kami sarankan Anda menggunakan file dalam format ZIP atau EGG. Anda dapat merujuk file Python dalam kode Python dengan menggunakan modul. Pisahkan beberapa paket dengan koma (,).

Catatan

Semua file Python yang diperlukan untuk aplikasi PySpark harus disimpan di OSS.

conf

Ya

"conf":{"spark.driver.resourceSpec": "medium",spark.executor.resourceSpec":"medium,"spark.executor.instances": 2,"spark.adb.connectors": "oss"}

Parameter konfigurasi yang diperlukan untuk aplikasi Spark, mirip dengan Apache Spark. Parameter tersebut harus dalam format key: value. Pisahkan beberapa parameter dengan koma (,). Untuk informasi lebih lanjut tentang parameter konfigurasi yang tidak sesuai dengan Apache Spark atau parameter konfigurasi spesifik untuk AnalyticDB for MySQL, lihat bagian "Deskripsi parameter conf" dari topik ini.

Aplikasi SQL

AnalyticDB for MySQL memungkinkan Anda mengirimkan aplikasi Spark SQL langsung di konsol tanpa perlu mengemas pernyataan ke dalam file JAR atau menulis kode Python. Fitur ini membantu pengembang data menganalisis data menggunakan Spark. Saat mengirimkan aplikasi Spark SQL, setel jenis aplikasi ke SQL.

Contoh konfigurasi aplikasi SQL

-- Berikut hanya contoh SparkSQL. Ubah konten dan jalankan program spark Anda.

conf spark.driver.resourceSpec=medium;
conf spark.executor.instances=2;
conf spark.executor.resourceSpec=medium;
conf spark.app.name=Spark SQL Test;
conf spark.adb.connectors=oss;

-- Berikut adalah pernyataan sql Anda
show databases;

Jenis pernyataan yang didukung oleh Spark SQL

Anda dapat mengedit pernyataan SQL di editor Spark. Setiap pernyataan individu harus dipisahkan dengan titik koma (;).

Spark SQL mendukung jenis pernyataan berikut:

  • Pernyataan CONF

    • Pernyataan CONF ditempatkan sebelum pernyataan SQL untuk menentukan pengaturan Spark.

    • Setiap pernyataan CONF menentukan nilai parameter untuk mengirimkan aplikasi Spark. Setiap pernyataan CONF individu harus dipisahkan dengan titik koma (;).

    • Jangan mengapit kunci dan nilai dalam pernyataan CONF dengan tanda kutip tunggal (') atau tanda kutip ganda (").

    • Untuk informasi lebih lanjut tentang parameter konfigurasi yang didukung oleh pernyataan CONF, lihat bagian "Deskripsi Parameter conf" dari topik ini.

  • Pernyataan ADD JAR

    • Pernyataan ADD JAR ditempatkan sebelum pernyataan SQL untuk menambahkan paket JAR yang diperlukan untuk mengeksekusi pernyataan Spark SQL, seperti paket JAR fungsi yang ditentukan pengguna (UDF) dan konektor sumber data berbagai jenis. Paket JAR harus ditentukan dalam format jalur OSS.

    • Setiap pernyataan ADD JAR menentukan paket JAR dalam format jalur OSS. Jalur tidak perlu diapit dengan tanda kutip tunggal (') atau tanda kutip ganda ("). Setiap pernyataan ADD JAR individu harus dipisahkan dengan titik koma (;).

  • Pernyataan DDL atau DML yang didukung oleh Spark SQL, termasuk SELECT dan INSERT.

Beralih layanan metadata

Secara default, Spark SQL menggunakan layanan metadata yang disediakan oleh AnalyticDB for MySQL. Anda dapat beralih ke layanan metadata lain menggunakan salah satu metode berikut:

  • In-memory catalog

    CONF spark.sql.catalogImplementation = in-memory;
  • Hive metastore 2.3.7 atau versi lain yang dibangun ke dalam Spark

    CONF spark.sql.catalogImplementation = hive;
    CONF spark.sql.hive.metastore.version = 2.3.7;
    Catatan

    Untuk terhubung ke Hive metastore yang dikelola sendiri, Anda dapat mengganti konfigurasi default dengan konfigurasi standar Apache Spark. Untuk informasi lebih lanjut tentang konfigurasi standar Apache Spark, lihat Konfigurasi Spark.

Deskripsi parameter conf

Parameter konfigurasi Spark di AnalyticDB for MySQL mirip dengan Apache Spark. Tabel berikut menjelaskan parameter konfigurasi AnalyticDB for MySQL yang tidak sesuai dengan Apache Spark dan parameter spesifik untuk AnalyticDB for MySQL.

  • Spesifikasi driver dan executor yang ditentukan

    Penting

    Penggunaan parameter yang dijelaskan dalam tabel berikut berbeda dari Apache Spark.

    Parameter spark.driver.resourceSpec dan spark.executor.resourceSpec disetel ke nilai yang sama.

    Parameter

    Deskripsi

    Parameter yang sesuai di Apache Spark

    spark.driver.resourceSpec

    Spesifikasi sumber daya driver Spark. Setiap jenis sesuai dengan spesifikasi yang berbeda. Untuk informasi lebih lanjut, lihat kolom Jenis di bagian "Spesifikasi sumber daya Spark" dari topik ini.

    Contoh: CONF spark.driver.resourceSpec = c.small;. Dalam contoh ini, driver Spark menempati spesifikasi sumber daya 1 core dan 2 GB memori.

    spark.driver.cores dan spark.driver.memory

    spark.executor.resourceSpec

    Spesifikasi sumber daya setiap executor Spark. Setiap jenis sesuai dengan spesifikasi yang berbeda. Untuk informasi lebih lanjut, lihat kolom Jenis di bagian "Spesifikasi sumber daya Spark" dari topik ini.

    Contoh: CONF spark.executor.resourceSpec = c.small;. Dalam contoh ini, setiap executor Spark menempati spesifikasi sumber daya 1 core dan 2 GB memori.

    spark.executor.cores dan spark.executor.memory

  • Spark UI

    Parameter

    Nilai default

    Deskripsi

    spark.app.log.rootPath

    Tidak ada

    Direktori tempat log acara Spark UI dan log yang dihasilkan oleh aplikasi Spark AnalyticDB for MySQL disimpan. Anda harus secara manual menentukan jalur OSS untuk parameter ini. Jika tidak, Anda tidak dapat mengakses Spark UI atau melihat log aplikasi.

  • Pemeliharaan Pengguna RAM

    Parameter

    Nilai default

    Deskripsi

    spark.adb.roleArn

    Tidak ada

    Nama Sumber Daya Cloud (ARN) Alibaba dari peran Resource Access Management (RAM) yang diberi izin untuk mengirimkan aplikasi Spark di konsol RAM. Untuk informasi lebih lanjut, lihat Ikhtisar peran RAM. Parameter ini hanya diperlukan saat Anda ingin mengirimkan aplikasi Spark sebagai pengguna RAM.

  • Konektor Sumber Data Bawaan di Spark AnalyticDB for MySQL

    Parameter

    Nilai default

    Deskripsi

    spark.adb.connectors

    Tidak ada

    Nama konektor bawaan di Spark AnalyticDB for MySQL. Pisahkan nama konektor dengan koma (,). Nilai valid: OSS, hbase1.x, dan tablestore.

    spark.hadoop.io.compression.codec.snappy.native

    false

    Menentukan apakah file Snappy dalam format Snappy standar. Secara default, Hadoop mengenali file Snappy yang diedit di Hadoop. Jika Anda menyetel parameter ini ke true, pustaka Snappy standar digunakan untuk dekompresi. Jika tidak, pustaka Snappy default Hadoop digunakan untuk dekompresi.

  • Akses VPC dan Koneksi Sumber Data

    Parameter

    Nilai default

    Deskripsi

    spark.adb.eni.vswitchId

    Tidak ada

    ID vSwitch yang terkait dengan antarmuka jaringan elastis (ENI). ID ini digunakan untuk mengakses virtual private cloud (VPC). Jika instance Elastic Compute Service (ECS) Anda dapat mengakses sumber data tujuan, Anda dapat menyetel parameter ini ke ID vSwitch yang terhubung ke instance ECS Anda.

    spark.adb.eni.securityGroupId

    Tidak ada

    ID grup keamanan yang terkait dengan ENI. ID ini digunakan untuk mengakses VPC. Jika instance ECS Anda dapat mengakses sumber data tujuan, Anda dapat menyetel parameter ini ke ID grup keamanan yang dimiliki oleh instance ECS Anda.

    spark.adb.eni.extraHosts

    Tidak ada

    Pemetaan antara alamat IP dan nama host. Parameter ini memungkinkan Spark untuk mengurai nama host sumber data. Parameter ini diperlukan jika Anda ingin terhubung ke sumber data Hive yang dikelola sendiri.

    Catatan

    Pisahkan alamat IP dan nama host dengan spasi. Pisahkan beberapa kelompok alamat IP dan nama host dengan koma (,). Contoh: "ip0 master0, ip1 master1".

  • Koneksi dari Spark SQL ke Metadata AnalyticDB for MySQL

    Parameter

    Nilai default

    Deskripsi

    spark.sql.hive.metastore.version

    Tidak ada

    Versi metastore Hive. Jika Anda menyetel parameter ini ke ADB, Anda dapat mengakses metadata AnalyticDB for MySQL dan membaca data tabel dari AnalyticDB for MySQL.

  • Percobaan Ulang Aplikasi

    Parameter

    Nilai default

    Deskripsi

    spark.adb.maxAttempts

    1

    Jumlah maksimum percobaan ulang. Nilai default adalah 1, yang berarti aplikasi spark tidak diulang ketika gagal.

    Jika Anda menyetel parameter ini ke 3, aplikasi Spark akan diulang hingga tiga kali dalam jendela geser.

    spark.adb.attemptFailuresValidityInterval

    Long.MAX

    Durasi jendela geser. Unit: milidetik.

    Sebagai contoh, jika Anda menyetel parameter ini ke 6000, sistem menghitung jumlah percobaan ulang dalam 6.000 milidetik terakhir setelah percobaan ulang gagal. Jika jumlah percobaan ulang kurang dari nilai spark.adb.maxAttempts, sistem akan terus mencoba menjalankan aplikasi.

  • Konfigurasi Sumber

    Parameter

    Nilai default

    Deskripsi

    spark.adb.driver.cpu-vcores-ratio

    1

    Rasio vCPU terhadap core CPU aktual yang digunakan oleh driver. Sebagai contoh, jika driver menggunakan spesifikasi sumber daya medium sebesar 2 core dan 8 GB memori dan Anda menyetel parameter ini ke 2, driver dapat menjalankan 4 vCPU secara paralel. Anda juga dapat menyetel spark.driver.cores ke 4 untuk mencapai performa yang sama.

    spark.adb.executor.cpu-vcores-ratio

    1

    Rasio vCPU terhadap core CPU aktual yang digunakan oleh executor. Jika utilitas CPU suatu tugas rendah, Anda dapat mengonfigurasi parameter ini untuk meningkatkan utilitas CPU. Sebagai contoh, jika executor menggunakan spesifikasi sumber daya medium sebesar 2 core dan 8 GB memori dan Anda menyetel parameter ini ke 2, executor dapat menjalankan 4 vCPU secara paralel. Ini berarti 4 tugas dijadwalkan secara paralel. Anda juga dapat menyetel spark.executor.cores ke 4 untuk mencapai performa yang sama.

Spesifikasi sumber daya Spark

Tipe

Spesifikasi

CPU cores

Memori (GB)

c.small

1

2

small

1

4

m.small

1

8

c.medium

2

4

medium

2

8

m.medium

2

16

c.large

4

8

large

4

16

m.large

4

32

c.xlarge

8

16

xlarge

8

32

m.xlarge

8

64

c.2xlarge

16

32

2xlarge

16

64

m.2xlarge

16

128