Saya membaca Ikhtisar Mode Cluster dan saya masih tidak dapat memahami proses yang berbeda di cluster Standalone Spark dan paralelisme.
Apakah pekerja itu proses JVM atau tidak? Saya menjalankan bin\start-slave.sh
dan menemukan bahwa itu memunculkan pekerja, yang sebenarnya adalah JVM.
Sesuai tautan di atas, pelaksana adalah proses yang diluncurkan untuk aplikasi pada simpul pekerja yang menjalankan tugas. Seorang pelaksana juga seorang JVM.
Ini adalah pertanyaan saya:
Pelaksana adalah per aplikasi. Lalu apa peran pekerja? Apakah itu berkoordinasi dengan pelaksana dan mengkomunikasikan hasilnya kembali ke pengemudi? Atau apakah pengemudi langsung berbicara dengan pelaksana? Kalau begitu, apa tujuan pekerja itu?
Bagaimana cara mengontrol jumlah pelaksana untuk suatu aplikasi?
Bisakah tugas dilakukan untuk berjalan secara paralel di dalam pelaksana? Jika demikian, bagaimana cara mengkonfigurasi jumlah utas untuk pelaksana?
Apa hubungan antara pekerja, pelaksana dan inti pelaksana (--total-pelaksana-inti)?
Apa artinya memiliki lebih banyak pekerja per node?
Diperbarui
Mari kita ambil contoh untuk memahami lebih baik.
Contoh 1: Cluster mandiri dengan 5 node pekerja (setiap node memiliki 8 core) Ketika saya memulai aplikasi dengan pengaturan default.
Contoh 2 Konfigurasi cluster yang sama seperti contoh 1, tetapi saya menjalankan aplikasi dengan pengaturan berikut --executor-core 10 --total-executor-core 10.
Contoh 3 Konfigurasi cluster yang sama seperti contoh 1, tetapi saya menjalankan aplikasi dengan pengaturan berikut --executor-core 10 --total-executor-core 50.
Contoh 4 Konfigurasi cluster yang sama dengan contoh 1, tetapi saya menjalankan aplikasi dengan pengaturan berikut --executor-core 50 --total-executor-core 50.
Contoh 5 Konfigurasi cluster yang sama seperti contoh 1, tetapi saya menjalankan aplikasi dengan pengaturan berikut --executor-core 50 --total-executor-core 10.
Dalam masing-masing contoh ini, Berapa banyak pelaksana? Berapa banyak utas per pelaksana? Berapa core? Bagaimana jumlah pelaksana diputuskan per aplikasi? Apakah selalu sama dengan jumlah pekerja?
sumber
--num-executors
tidak lagi digunakan di YARN.Inilah cara Apache Spark bekerja secara internal:
sumber