Lindorm Distributed Processing System (LDPS) menjalankan pekerjaan Spark pada kolam sumber daya elastis yang dikelola oleh Kubernetes. Halaman ini mencantumkan semua parameter yang dapat dikonfigurasi untuk pekerjaan Spark LDPS dan menjelaskan cara meneruskannya berdasarkan metode pengiriman yang digunakan.
Parameter Spark
Parameter terbatas
Parameter berikut diatur oleh sistem dan tidak dapat dikustomisasi.
| Parameter | Deskripsi |
|---|---|
spark.master |
Titik akhir sistem manajemen kluster. |
spark.submit.deployMode |
Mode deployment driver Spark. |
Parameter sumber daya
LDPS berjalan pada kolam sumber daya elastis yang ditagih dengan skema pay-as-you-go. Secara default, tidak ada batas atas pada sumber daya yang dapat diminta oleh suatu pekerjaan. Untuk menetapkan batas maksimum, lihat Ubah konfigurasi LDPS.
Parameter sumber daya berlaku untuk semua pekerjaan JDBC, JAR, dan Python yang dikirimkan ke LDPS. Parameter ini dibagi menjadi parameter spesifikasi dan parameter kapasitas.
Parameter spesifikasi
Parameter spesifikasi dasar
| Parameter | Deskripsi | Default |
|---|---|---|
spark.driver.memory |
Memori heap driver. Satuan: mebibyte. | 8192m |
spark.driver.memoryOverhead |
Memori off-heap driver. Satuan: mebibyte. | 8192m |
spark.kubernetes.driver.disk.size |
Ukuran disk lokal driver. Satuan: GB. | 50 |
spark.executor.cores |
Inti CPU per executor. | 4 |
spark.executor.memory |
Memori heap per executor. Satuan: mebibyte. | 8192m |
spark.executor.memoryOverhead |
Memori off-heap per executor. Satuan: mebibyte. | 8192m |
spark.kubernetes.executor.disk.size |
Ukuran disk lokal per executor. Satuan: GB. | 50 |
Parameter spesifikasi lanjutan
| Parameter | Deskripsi | Default |
|---|---|---|
spark.{driver/executor}.resourceTag |
Set spesifikasi sumber daya yang telah ditentukan. Ketika diatur, LDPS secara otomatis menerapkan nilai CPU, memori, dan disk yang sesuai. Nilai yang valid: xlarge, 2xlarge, 4xlarge, 8xlarge, 16xlarge. |
None |
spark.kubernetes.{driver/executor}.ecsModelPreference |
Model node komputasi yang disukai, dicantumkan dalam urutan prioritas. LDPS mencoba setiap model secara berurutan; jika semuanya tidak tersedia, LDPS memilih model yang tersedia yang sesuai dengan spesifikasi sumber daya. Tentukan hingga empat model, dipisahkan dengan koma. Contoh: hfg6,g6. |
None |
spark.kubernetes.{driver/executor}.annotation.k8s.aliyun.com/eci-use-specs |
Spesifikasi GPU Elastic Container Instance (ECI). Untuk tipe instans GPU yang didukung, lihat Tentukan tipe instans ECS untuk membuat pod. | ecs.gn7i-c8g1.2xlarge |
spark.{driver/executor}.resource.gpu.vendor |
Vendor GPU. Harus sesuai dengan spesifikasi GPU yang diatur di eci-use-specs. |
nvidia.com |
spark.{driver/executor}.resource.gpu.amount |
Jumlah GPU. Diatur ke 1. |
1 |
spark.{driver/executor}.resource.gpu.discoveryScript |
Path ke skrip penemuan GPU yang digunakan untuk mengidentifikasi dan mengikat sumber daya GPU saat startup driver atau executor. Diatur ke /opt/spark/examples/src/main/scripts/getGpusResources.sh. |
/opt/spark/examples/src/main/scripts/getGpusResources.sh |
spark.kubernetes.executor.annotation.k8s.aliyun.com/eci-use-specs |
Spesifikasi instans executor dengan kapasitas disk lokal yang diperluas. Lihat nilai yang didukung di bawah ini. | None |
Parameter spark.kubernetes.executor.annotation.k8s.aliyun.com/eci-use-specs mendukung spesifikasi executor berikut:
| Nilai | Inti CPU | Memori |
|---|---|---|
ecs.d1ne.2xlarge |
8 | 32 GB |
ecs.d1ne.4xlarge |
16 | 64 GB |
ecs.d1ne.6xlarge |
24 | 96 GB |
ecs.d1ne.8xlarge |
32 | 128 GB |
ecs.d1ne.14xlarge |
56 | 224 GB |
Saat menggunakan spark.kubernetes.executor.annotation.k8s.aliyun.com/eci-use-specs, atur juga dua parameter berikut:
-
spark.kubernetes.executor.volumes.emptyDir.spark-local-dir-1.mount.path=/var -
spark.kubernetes.executor.volumes.emptyDir.spark-local-dir-1.options.medium=LocalRaid0. Jika tipe instans executor yang ditentukan tidak tersedia, hubungi dukungan teknis Lindorm (ID DingTalk: s0s3eg3).
Pemetaan spesifikasi resourceTag
| Nilai resourceTag | spark.{driver/executor}.cores |
spark.{driver/executor}.memory |
spark.{driver/executor}.memoryOverhead |
spark.kubernetes.{driver/executor}.disk.size |
|---|---|---|---|---|
xlarge |
4 | 8192m | 8192m | 50 GB |
2xlarge |
8 | 16384m | 16384m | 100 GB |
4xlarge |
16 | 32768m | 32768m | 200 GB |
8xlarge |
32 | 65536m | 65536m | 400 GB |
16xlarge |
64 | 131072m | 131072m | 400 GB |
Parameter kapasitas
| Parameter | Deskripsi | Default |
|---|---|---|
spark.executor.instances |
Jumlah executor yang dialokasikan untuk pekerjaan. | 2 |
spark.dynamicAllocation.enabled |
Mengaktifkan alokasi sumber daya dinamis. Saat diaktifkan, LDPS secara otomatis meminta dan melepaskan executor berdasarkan beban kerja pekerjaan secara real-time. Nilai yang valid: true, false. |
true |
spark.dynamicAllocation.minExecutors |
Jumlah minimum executor saat alokasi sumber daya dinamis diaktifkan. | 0 |
spark.dynamicAllocation.maxExecutors |
Jumlah maksimum executor saat alokasi sumber daya dinamis diaktifkan. Nilai ini sama dengan jumlah task konkuren. | Infinity |
spark.dynamicAllocation.executorIdleTimeout |
Berapa lama executor idle dipertahankan sebelum dilepaskan. Satuan: detik. | 600s |
Parameter eksekusi
| Parameter | Deskripsi | Default |
|---|---|---|
spark.speculation |
Mengaktifkan eksekusi spekulatif. Saat diaktifkan, driver mengirim ulang task yang berjalan jauh lebih lambat daripada task lain dalam stage yang sama (long tails), untuk menghindari keterlambatan pekerjaan. Nilai yang valid: true, false. |
true |
spark.task.maxFailures |
Jumlah maksimum kegagalan task yang diizinkan sebelum pekerjaan gagal. | 4 |
spark.dfsLog.executor.enabled |
Menyimpan log executor ke LindormDFS. Atur ke false untuk pekerjaan berskala besar guna mengurangi beban DFS dari aliran log. Nilai yang valid: true, false. |
true |
spark.jars |
Path ke paket JAR yang diperlukan untuk pekerjaan. Menerima path OSS atau Hadoop Distributed File System (HDFS). Jika Anda menggunakan JDBC, atur ini ke path HDFS saja. Jika Anda menggunakan path OSS, konfigurasikan juga parameter OSS di bawah ini. | None |
spark.hadoop.fs.oss.endpoint |
Titik akhir OSS. Untuk nilai titik akhir berdasarkan wilayah, lihat Wilayah dan titik akhir. | None |
spark.hadoop.fs.oss.accessKeyId |
ID AccessKey Akun Alibaba Cloud atau Pengguna RAM Anda. Lihat Dapatkan Pasangan Kunci Akses. | None |
spark.hadoop.fs.oss.accessKeySecret |
Rahasia AccessKey Akun Alibaba Cloud atau Pengguna RAM Anda. Lihat Dapatkan Pasangan Kunci Akses. | None |
spark.hadoop.fs.oss.impl |
Kelas implementasi sistem file untuk OSS. Diatur ke org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem. |
None |
spark.default.parallelism |
Paralelisme default untuk task non-SQL, termasuk pembacaan sumber data dan stage shuffle. | None |
spark.sql.shuffle.partitions |
Jumlah partisi shuffle untuk task SQL. | 200 |
Parameter pemantauan
| Parameter | Deskripsi | Default |
|---|---|---|
spark.monitor.cmd |
Perintah pemantauan yang dijalankan secara berkala. Pisahkan beberapa perintah dengan titik koma (;). Hasilnya ditulis ke log pekerjaan. Catatan
Parameter ini tidak dapat dikonfigurasi saat mengirim pekerjaan melalui Beeline atau JDBC. |
None |
spark.monitor.interval |
Interval antara eksekusi perintah pemantauan. Satuan: detik. | 60 |
spark.monitor.timeout |
Timeout untuk setiap perintah pemantauan. Jika perintah melebihi batas ini, perintah tersebut dilewati dan perintah berikutnya dijalankan. Satuan: detik. | 2 |
Contoh perintah pemantauan:
# Perintah tunggal
"spark.monitor.cmd": "top -b -n 1"
# Beberapa perintah
"spark.monitor.cmd": "top -b -n 1; vmstat; free -m; iostat -d -x -c -k; df -h; sar -n DEV 1 1; netstat"
Perintah pemantauan umum berdasarkan kategori:
| Kategori | Perintah |
|---|---|
| Status sistem | top -b -n 1, vmstat |
| Memori | free -m |
| I/O disk | iostat -d -x -c -k |
| Penggunaan disk | df -h |
| Jaringan | sar -n DEV 1 1, netstat |
Parameter log
| Parameter | Deskripsi | Default |
|---|---|---|
spark.log.level |
Tingkat output log untuk pekerjaan. | INFO |
Nilai yang valid untuk spark.log.level, dari yang paling verbose hingga paling sedikit:
| Tingkat | Deskripsi |
|---|---|
ALL |
Semua output log, termasuk informasi debug paling rinci. |
TRACE |
Lebih detail daripada DEBUG; mencatat langkah-langkah eksekusi detail halus. |
DEBUG |
Log tingkat debug termasuk status runtime detail. |
INFO |
Log informasi umum untuk event eksekusi normal. |
WARN |
Peringatan tentang potensi masalah yang tidak menghentikan eksekusi. |
ERROR |
Error yang terjadi selama eksekusi. |
FATAL |
Error kritis yang mencegah program dilanjutkan. |
OFF |
Menonaktifkan semua output log. |
Parameter Spark open-source
Untuk parameter yang diwariskan dari Spark open-source, lihat Konfigurasi Spark.
Konfigurasi parameter berdasarkan metode pengiriman
Saat Anda mengirim pekerjaan ke LDPS, metode yang Anda gunakan menentukan cara parameter diteruskan.
Beeline
Edit conf/beeline.conf di direktori paket Spark tempat alat baris perintah Beeline berada.
# Titik akhir LDPS
# Format: jdbc:hive2://<host>:<port>/;?token=<token>
endpoint=jdbc:hive2://ld-bp13ez23egd123****-proxy-ldps-pub.lindorm.aliyuncs.com:10009/;?token=jfjwi2453-fe39-cmkfe-afc9-01eek2j5****
# Kredensial koneksi (default: root/root)
user=root
password=root
# Atur ke false untuk menggunakan session Spark khusus untuk koneksi ini
shareResource=false
# Parameter Spark
spark.dynamicAllocation.enabled=true
spark.dynamicAllocation.minExecutors=3
Untuk penyiapan Beeline lengkap, lihat Memulai.
JDBC
Tambahkan parameter Spark ke string koneksi JDBC sebagai pasangan kunci-nilai setelah token.
jdbc:hive2://<host>:<port>/;?token=<token>;spark.executor.memory=8g;spark.sql.shuffle.partitions=2
Untuk format URL JDBC lengkap, lihat Gunakan JDBC dalam pengembangan aplikasi.
spark.jars tidak dapat diatur ke path OSS saat mengirim pekerjaan melalui JDBC. Gunakan path HDFS sebagai gantinya.
Pekerjaan JAR
Konfigurasikan parameter dalam templat pekerjaan saat mengirim pekerjaan Java:
-
Konsol Lindorm: Konfigurasikan dalam templat konten pekerjaan. Lihat Kelola pekerjaan di Konsol Lindorm.
-
Data Management Service (DMS): Konfigurasikan di bagian Job configuration pada halaman node pekerjaan. Lihat Gunakan DMS untuk mengelola pekerjaan.
Pekerjaan Python
Konfigurasikan parameter dalam templat pekerjaan saat mengirim pekerjaan Python:
-
Konsol Lindorm: Konfigurasikan dalam templat konten pekerjaan. Lihat Kelola pekerjaan di Konsol Lindorm.
-
Data Management Service (DMS): Konfigurasikan di bagian Job configuration pada halaman node pekerjaan. Lihat Gunakan DMS untuk mengelola pekerjaan.