全部产品
Search
文档中心

AnalyticDB:Parameter konfigurasi aplikasi Spark

更新时间:Dec 18, 2025

AnalyticDB for MySQL menggunakan parameter konfigurasi Spark yang mirip dengan Apache Spark. Topik ini menjelaskan parameter konfigurasi AnalyticDB for MySQL yang berbeda dari Apache Spark.

Catatan penggunaan

Parameter konfigurasi aplikasi Spark digunakan untuk mengonfigurasi dan menyesuaikan perilaku serta kinerja aplikasi Spark. Format parameter ini bervariasi tergantung pada alat pengembangan Spark yang Anda gunakan.

Tool pengembangan

Format parameter konfigurasi

Contoh konfigurasi

SQL editor

set key=value;

set spark.sql.hive.metastore.version=adb;

Spark Jar editor

"key": "value"

"spark.sql.hive.metastore.version":"adb"

Notebook editor

"key": "value"

"spark.sql.hive.metastore.version":"adb"

antarmuka baris perintah spark-submit

key=value

spark.sql.hive.metastore.version=adb

Menentukan resource Driver dan Executor

Parameter

Wajib

Nilai default

Deskripsi

Parameter yang sesuai di Apache Spark

spark.adb.acuPerApp

Tidak

Tidak ada

Jumlah ACU yang digunakan oleh satu pekerjaan Spark. Nilai yang valid: [2, Sumber daya komputasi maksimum dari kelompok sumber daya pekerjaan].

Setelah Anda mengonfigurasi parameter ini, sistem secara otomatis menghitung dan mengonfigurasi spesifikasi Spark Driver, spesifikasi Spark Executor, serta jumlah node Spark Executor.

Klik untuk melihat strategi konfigurasi spark.adb.acuPerApp

  • Jika Anda mengonfigurasi baik spark.adb.acuPerApp maupun semua parameter resource lainnya (termasuk spark.driver.resourceSpec, spark.executor.resourceSpec, dan spark.executor.instances), maka spark.adb.acuPerApp tidak berlaku dan nilai parameter resource lainnya tetap tidak berubah.

  • Jika Anda hanya mengonfigurasi spark.adb.acuPerApp, maka spark.adb.acuPerApp berlaku dan semua parameter resource lainnya dihitung serta dikonfigurasi secara otomatis berdasarkan spark.adb.acuPerApp.

  • Pada kombinasi konfigurasi lainnya, spark.adb.acuPerApp berlaku, dan sistem secara otomatis menghitung parameter resource yang tidak dikonfigurasi secara eksplisit (spark.driver.resourceSpec, spark.executor.resourceSpec, dan spark.executor.instances) berdasarkan parameter ini. Nilai parameter yang telah dikonfigurasi secara eksplisit tetap tidak berubah.

N/A

spark.driver.resourceSpec

Ya

medium

Spesifikasi resource untuk Spark driver. Setiap tipe memiliki spesifikasi yang berbeda. Untuk informasi lebih lanjut, lihat kolom Tipe pada tabel spesifikasi resource Spark di topik ini.

Penting

Jika Anda mengirimkan aplikasi Spark, Anda dapat menggunakan parameter Apache Spark dan mengonfigurasi parameter berdasarkan nilai core dan memori yang dijelaskan dalam tabel spesifikasi resource Spark di topik ini.

Contoh: CONF spark.driver.resourceSpec = c.small;. Pada contoh ini, Spark driver menyediakan 1 core dan memori 2 GB.

spark.driver.cores dan spark.driver.memory

spark.executor.resourceSpec

Ya

medium

Spesifikasi resource untuk setiap Spark executor. Setiap tipe memiliki spesifikasi yang berbeda. Untuk informasi lebih lanjut, lihat kolom Tipe pada tabel spesifikasi resource Spark di topik ini.

Penting

Jika Anda mengirimkan aplikasi Spark, Anda dapat menggunakan parameter Apache Spark dan mengonfigurasi parameter berdasarkan nilai core dan memori yang dijelaskan dalam tabel spesifikasi resource Spark di topik ini.

Contoh: CONF spark.executor.resourceSpec = c.small;. Pada contoh ini, setiap Spark executor menyediakan 1 core dan memori 2 GB.

spark.executor.cores dan spark.executor.memory

spark.executor.instances

Tidak

Sumber daya komputasi maksimum dari kelompok sumber daya pekerjaan/5

Jumlah Spark executor yang dijalankan.

spark.executor.instances

spark.adb.driverDiskSize

Tidak

Tidak ada

Ukuran penyimpanan disk tambahan yang dipasang pada Spark driver untuk memenuhi kebutuhan penyimpanan disk besar. Secara default, penyimpanan disk tambahan dipasang pada direktori /user_data_dir.

Unit: GiB. Nilai yang valid: (0,100]. Contoh: spark.adb.driverDiskSize=50Gi. Pada contoh ini, penyimpanan disk tambahan yang dipasang pada Spark driver diatur menjadi 50 GiB.

N/A

spark.adb.executorDiskSize

Tidak

Tidak ada

Ukuran penyimpanan disk tambahan yang dipasang pada Spark executor untuk memenuhi kebutuhan operasi shuffle. Secara default, penyimpanan disk tambahan dipasang pada direktori /shuffle_volume.

Unit: GiB. Nilai yang valid: (0,100]. Contoh: spark.adb.executorDiskSize=50Gi. Pada contoh ini, penyimpanan disk tambahan yang dipasang pada Spark executor diatur menjadi 50 GiB.

N/A

Spesifikasi resource Spark

Penting

Anda dapat menggunakan resource reserved atau resource elastis untuk menjalankan pekerjaan Spark. Jika Anda menggunakan resource elastis on-demand dari kelompok sumber daya pekerjaan untuk menjalankan pekerjaan Spark, sistem menghitung jumlah AnalyticDB compute unit (ACU) yang digunakan berdasarkan spesifikasi resource Spark dan rasio CPU-memori menggunakan rumus berikut:

  • Rasio CPU-memori 1:2: Jumlah ACU yang digunakan = Jumlah core CPU × 0,8.

  • Rasio CPU-memori 1:4: Jumlah ACU yang digunakan = Jumlah core CPU × 1.

  • Rasio CPU-memori 1:8: Jumlah ACU yang digunakan = Jumlah core CPU × 1,5.

Untuk informasi harga resource elastis on-demand, lihat Harga Edisi Data Lakehouse.

Tabel 1. Spesifikasi resource Spark

Tipe

Spesifikasi

ACU yang Digunakan

Core CPU

Memori (GB)

Penyimpanan disk1 (GB)

c.small

1

2

20

0,8

small

1

4

20

1

m.small

1

8

20

1,5

c.medium

2

4

20

1,6

medium

2

8

20

2

m.medium

2

16

20

3

c.large

4

8

20

3,2

large

4

16

20

4

m.large

4

32

20

6

c.xlarge

8

16

20

6,4

xlarge

8

32

20

8

m.xlarge

8

64

20

12

c.2xlarge

16

32

20

12,8

2xlarge

16

64

20

16

m.2xlarge

16

128

20

24

m.4xlarge

32

256

20

48

m.8xlarge

64

512

20

96

Catatan

1 Penyimpanan disk: Sistem diperkirakan akan menggunakan sekitar 1% dari penyimpanan disk. Penyimpanan disk yang tersedia sebenarnya mungkin kurang dari 20 GB.

Contoh

Alokasikan 32 Executor untuk pekerjaan Spark, dengan setiap Executor memiliki spesifikasi medium (2 core 8 GB), dan setiap Driver memiliki spesifikasi small (1 core 4 GB). Dalam kasus ini, seluruh pekerjaan dapat mengalokasikan total 65 ACU sumber daya komputasi.

{
   "spark.driver.resourceSpec":"small",
   "spark.executor.resourceSpec":"medium",
   "spark.executor.instances":"32",
   "spark.adb.executorDiskSize":"100Gi"
}

Menentukan prioritas untuk pekerjaan Spark

Parameter

Wajib

Nilai default

Deskripsi

spark.adb.priority

Tidak

NORMAL

Prioritas pekerjaan Spark. Jika sumber daya tidak mencukupi untuk menjalankan semua pekerjaan Spark yang dikirimkan, pekerjaan dalam antrian dengan prioritas lebih tinggi akan dijalankan terlebih dahulu. Nilai yang valid:

  • HIGH: Prioritas tinggi.

  • NORMAL: Prioritas normal.

  • LOW: Prioritas rendah.

  • LOWEST: Prioritas terendah.

Penting

Kami menyarankan Anda mengatur parameter ini ke HIGH untuk pekerjaan Spark streaming (pekerjaan stream berjalan lama).

Mengakses metadata

Parameter

Wajib

Nilai default

Deskripsi

spark.sql.catalogImplementation

Tidak

  • Pekerjaan Spark SQL: hive.

  • Pekerjaan non-Spark SQL: in-memory.

Jenis metadata yang akan diakses. Nilai yang valid:

  • hive: metadata di Hive Metastore bawaan Apache Spark.

  • in-memory: metadata di direktori sementara.

spark.sql.hive.metastore.version

Tidak

  • Pekerjaan Spark SQL: adb.

  • Pekerjaan non-Spark SQL: <hive_version>.

Versi layanan metastore. Nilai yang valid:

  • adb: Menghubungkan ke metadata AnalyticDB for MySQL.

  • <hive_version>: versi Hive Metastore.

Catatan
  • Untuk informasi versi Hive yang didukung oleh Apache Spark, lihat Spark Configuration.

  • Untuk mengakses Hive Metastore yang dikelola sendiri, Anda dapat mengganti konfigurasi default dengan konfigurasi standar Apache Spark. Untuk informasi lebih lanjut, lihat Spark Configuration.

Contoh

  • Konfigurasikan pengaturan berikut untuk mengakses metadata di AnalyticDB for MySQL:

    spark.sql.hive.metastore.version=adb;
  • Konfigurasikan pengaturan berikut untuk mengakses metadata di Hive Metastore bawaan Apache Spark:

    spark.sql.catalogImplementation=hive;
    spark.sql.hive.metastore.version=2.1.3;
  • Konfigurasikan pengaturan berikut untuk mengakses metadata di direktori sementara:

    spark.sql.catalogImplementation=in-memory;

Mengonfigurasi Spark UI

Parameter

Wajib

Nilai default

Deskripsi

spark.app.log.rootPath

Tidak

oss://<aliyun-oa-adb-spark-ID akun Alibaba Cloud-oss-Zone ID>/<ID Cluster>/<ID aplikasi Spark>

Direktori tempat log pekerjaan Spark AnalyticDB for MySQL dan data keluaran sistem operasi Linux disimpan.

Secara default, folder bernama ID aplikasi Spark berisi konten berikut:

  • File bernama ID aplikasi Spark-000X yang menyimpan log event Spark yang digunakan untuk rendering Spark UI.

  • Folder bernama driver dan angka yang menyimpan log node yang sesuai.

  • Folder bernama stdout dan stderr yang menyimpan data keluaran sistem operasi Linux.

spark.adb.event.logUploadDuration

Tidak

false

Menentukan apakah durasi unggah log event dicatat.

spark.adb.buffer.maxNumEvents

Tidak

1000

Jumlah maksimum event yang di-cache oleh driver.

spark.adb.payload.maxNumEvents

Tidak

10000

Jumlah maksimum event yang dapat diunggah ke Object Storage Service (OSS) sekaligus.

spark.adb.event.pollingIntervalSecs

Tidak

0,5

Interval antara dua unggahan event ke OSS. Satuan: detik. Misalnya, nilai 0,5 menunjukkan bahwa event diunggah setiap 0,5 detik.

spark.adb.event.maxPollingIntervalSecs

Tidak

60

Interval percobaan ulang maksimum ketika unggahan event ke OSS gagal. Satuan: detik. Interval antara unggahan yang gagal dan percobaan ulang harus berada dalam rentang nilai spark.adb.event.pollingIntervalSecs hingga spark.adb.event.maxPollingIntervalSecs.

spark.adb.event.maxWaitOnEndSecs

Tidak

10

Waktu tunggu maksimum untuk mengunggah event ke OSS. Satuan: detik. Waktu tunggu maksimum adalah interval antara awal dan penyelesaian unggahan. Jika unggahan tidak selesai dalam waktu tunggu maksimum, unggahan tersebut akan dicoba ulang.

spark.adb.event.waitForPendingPayloadsSleepIntervalSecs

Tidak

1

Waktu tunggu yang diperlukan untuk mencoba ulang unggahan yang gagal diselesaikan dalam nilai spark.adb.event.maxWaitOnEndSecs. Satuan: detik.

spark.adb.eventLog.rolling.maxFileSize

Tidak

209715200

Ukuran file maksimum log event di OSS. Satuan: byte. Log event disimpan di OSS dalam bentuk beberapa file, seperti Eventlog.0 dan Eventlog.1. Anda dapat menentukan ukuran file tersebut.

Memberikan izin kepada pengguna RAM

Parameter

Wajib

Nilai default

Deskripsi

spark.adb.roleArn

Tidak

N/A

Nama Sumber Daya Alibaba Cloud (ARN) dari peran Resource Access Management (RAM) yang ingin Anda sambungkan ke pengguna RAM di Konsol RAM untuk memberikan izin kepada pengguna RAM agar dapat mengirimkan aplikasi Spark. Untuk informasi lebih lanjut, lihat Ikhtisar peran RAM. Jika Anda mengirimkan aplikasi Spark sebagai pengguna RAM, Anda harus menentukan parameter ini. Jika Anda mengirimkan aplikasi Spark dengan Akun Alibaba Cloud, Anda tidak perlu menentukan parameter ini.

Catatan

Jika Anda telah memberikan izin kepada pengguna RAM di Konsol RAM, Anda tidak perlu menentukan parameter ini. Untuk informasi lebih lanjut, lihat Otorisasi akun.

Mengaktifkan konektor sumber data bawaan

Parameter

Wajib

Nilai default

Deskripsi

spark.adb.connectors

Tidak

N/A

Nama konektor bawaan AnalyticDB for MySQL Spark yang ingin Anda aktifkan. Pisahkan beberapa nama dengan koma (,). Nilai yang valid: oss, hudi, delta, adb, odps, external_hive, jindo, dan default.

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

Tidak

false

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

Mengaktifkan akses VPC dan akses sumber data

Parameter

Wajib

Nilai default

Deskripsi

spark.adb.eni.enabled

Tidak

false

Menentukan apakah Elastic Network Interface (ENI) diaktifkan.

Jika Anda menggunakan tabel eksternal untuk mengakses sumber data eksternal lainnya, Anda harus mengaktifkan ENI. Nilai yang valid:

  • true: Aktifkan

  • false: Nonaktifkan

spark.adb.eni.vswitchId

Tidak

N/A

ID vSwitch yang terkait dengan ENI.

Jika Anda menghubungkan ke AnalyticDB for MySQL dari instans Elastic Compute Service (ECS) melalui virtual private cloud (VPC), Anda harus menentukan ID vSwitch untuk VPC tersebut.

Catatan

Jika Anda telah mengaktifkan akses VPC, Anda harus mengatur parameter spark.adb.eni.enabled ke true.

spark.adb.eni.securityGroupId

Tidak

N/A

ID grup keamanan yang terkait dengan ENI.

Jika Anda menghubungkan ke AnalyticDB for MySQL dari instans ECS melalui VPC, Anda harus menentukan ID grup keamanan.

Catatan

Jika Anda telah mengaktifkan akses VPC, Anda harus mengatur parameter spark.adb.eni.enabled ke true.

spark.adb.eni.extraHosts

Tidak

N/A

Pemetaan antara alamat IP dan hostname. Parameter ini memungkinkan Spark menyelesaikan hostname sumber data. Jika Anda ingin mengakses sumber data Hive yang dikelola sendiri, Anda harus menentukan parameter ini.

Catatan
  • Pisahkan alamat IP dan hostname dengan spasi. Pisahkan beberapa kelompok alamat IP dan hostname dengan koma (,). Contoh: ip0 master0,ip1 master1.

  • Jika Anda telah mengaktifkan akses sumber data, Anda harus mengatur parameter spark.adb.eni.enabled ke true.

spark.adb.eni.adbHostAlias.enabled

Tidak

false

Menentukan apakah informasi resolusi nama domain yang dibutuhkan oleh AnalyticDB for MySQL ditulis secara otomatis ke tabel pemetaan nama domain dan alamat IP. Nilai yang valid:

  • true: Aktifkan.

  • false: Nonaktifkan.

Jika Anda menggunakan ENI untuk membaca atau menulis data dari EMR Hive, Anda harus mengatur parameter ini ke true.

Mengonfigurasi percobaan ulang aplikasi

Parameter

Wajib

Nilai default

Deskripsi

spark.adb.maxAttempts

Tidak

1

Jumlah maksimum percobaan yang diizinkan untuk menjalankan aplikasi. Nilai default adalah 1, yang berarti tidak ada percobaan ulang.

Jika Anda mengatur parameter ini ke 3 untuk aplikasi Spark, sistem akan mencoba menjalankan aplikasi hingga tiga kali dalam jendela geser.

spark.adb.attemptFailuresValidityInterval

Tidak

Integer.MAX

Durasi jendela geser di mana sistem mencoba menjalankan ulang aplikasi. Satuan: detik.

Misalnya, jika Anda mengatur parameter ini ke 6000 untuk aplikasi Spark, sistem menghitung jumlah percobaan dalam 6.000 detik terakhir setelah kegagalan. Jika jumlah percobaan kurang dari nilai parameter maxAttempts, sistem akan mencoba menjalankan ulang aplikasi.

Menentukan lingkungan runtime untuk pekerjaan Spark

Tabel berikut menjelaskan parameter konfigurasi yang diperlukan saat Anda menggunakan teknologi virtual environments untuk mengemas lingkungan Python dan mengirimkan pekerjaan Spark.

Parameter

Wajib

Nilai default

Deskripsi

spark.pyspark.python

Tidak

N/A

Jalur interpreter Python di perangkat lokal Anda.

Menentukan versi Spark

Parameter

Wajib

Nilai default

Deskripsi

spark.adb.version

Tidak

3.2

Versi Spark. Nilai yang valid:

  • 2.4

  • 3.2

  • 3.3

  • 3.5

  • 4.0

Mesin eksekusi vektorisasi berkinerja-tinggi

Parameter

Wajib

Nilai default

Deskripsi

spark.adb.native.enabled

Tidak

false

Menentukan apakah mesin eksekusi vektorisasi berkinerja-tinggi diaktifkan untuk menjalankan pekerjaan. Mesin ini tertanam di AnalyticDB for MySQL Spark dan sepenuhnya kompatibel dengan Spark open source. Anda dapat mengaktifkannya tanpa mengubah kode yang sudah ada.

Akselerasi penyimpanan lake

Parameter

Wajib

Nilai default

Deskripsi

spark.adb.lakecache.enabled

Tidak

false

Menentukan apakah LakeCache (akselerasi penyimpanan lake) diaktifkan.

Parameter konfigurasi yang tidak didukung oleh AnalyticDB for MySQL

AnalyticDB for MySQL Spark tidak mendukung parameter konfigurasi Apache Spark berikut. Parameter ini tidak berlaku pada AnalyticDB for MySQL Spark.

Useless options(these options will be ignored):
  --deploy-mode
  --master
  --packages, please use `--jars` instead
  --exclude-packages
  --proxy-user
  --repositories
  --keytab
  --principal
  --queue
  --total-executor-cores
  --driver-library-path
  --driver-class-path
  --supervise
  -S,--silent
  -i <filename>