Memaksimalkan fleksibilitas dan efisiensi cluster dan tugas

Halaman ini memberikan praktik terbaik dan strategi penjadwalan untuk membantu Anda mendesain cluster Managed Service untuk Apache Spark yang tangguh dan memaksimalkan ketersediaan resource di seluruh Google Cloud region, mengurangi penundaan penyediaan, serta memanfaatkan pengoptimalan performa dan biaya.

Ringkasan ketersediaan resource

Menjalankan tugas pada cluster Managed Service untuk Apache Spark yang kaku akan menciptakan satu titik kegagalan yang dapat menyebabkan gangguan tugas serta kegagalan cluster dan tugas karena tidak tersedianya layanan di lokasi tertentu atau penundaan penyediaan.

Risiko tidak tersedianya resource tinggi untuk cluster yang dikonfigurasi dengan anti-pola kaku berikut:

  • Penempatan zona tetap: Hardcode satu zona menggunakan tanda atau kolom zone, bukan mengizinkan Managed Service untuk Apache Spark AutoZone untuk menempatkan cluster secara dinamis di zona yang optimal. Anti-pola ini mencegah pembuatan cluster menggunakan resource komputasi yang tersedia di zona yang berdekatan.
  • Satu jenis atau generasi mesin per peran node: Membatasi peran node ke satu generasi atau jenis mesin. Anti-pola ini mencegah cluster melakukan penggantian ke alternatif.
  • Penskalaan vertikal dengan lebih sedikit VM besar: Menskalakan cluster secara vertikal untuk mengandalkan sejumlah kecil bentuk VM besar. Anti-pola ini membatasi fleksibilitas penjadwalan.
  • Pembuatan cluster secara menyeluruh: Mewajibkan semua node pekerja untuk disediakan secara bersamaan, bukan menggunakan pembuatan cluster parsial yang dipasangkan dengan penskalaan otomatis. Anti-pola ini menyebabkan pembuatan cluster gagal jika worker node tidak dapat dialokasikan karena ketersediaan resource sementara.
  • Lonjakan penjadwalan puncak: Memicu pipeline batch besar selama jam penggunaan puncak, yang meningkatkan persaingan regional.

Kemampuan memperoleh resource adalah praktik mendesain tugas agar fleksibel secara hardware, multi-zona, dan dapat diskalakan. Dengan memisahkan cluster dari konfigurasi yang kaku dan mengaktifkan penggantian keluarga multi-mesin, Anda dapat meningkatkan tingkat keberhasilan pembuatan, meminimalkan latensi startup, dan secara konsisten mencapai SLA.

Rekomendasi kemampuan memperoleh resource

Terapkan pengoptimalan berikut untuk meningkatkan ketersediaan resource dan stabilitas tugas:

Menggunakan VM fleksibel

Fitur VM Fleksibel memungkinkan Anda menentukan daftar jenis VM yang diberi peringkat untuk node master, worker utama, dan worker sekunder. Hal ini meningkatkan tingkat keberhasilan pembuatan dengan mengevaluasi jenis VM yang tercantum dan memilih zona secara otomatis dengan kapasitas yang tersedia.

Rekomendasi: Gunakan VM fleksibel dengan penggantian disk, yang memungkinkan Anda menentukan berbagai jenis disk, seperti hyperdisk dan persistent disk, untuk berbagai kelompok mesin kandidat dalam kebijakan cluster yang sama. Anda juga dapat menggabungkan kelompok mesin Gen2 dan Gen4 dalam satu kebijakan untuk menskalakan tugas di seluruh kumpulan yang lebih luas dan melewati batas kapasitas.

Untuk tugas yang menggunakan mesin N2 dan N2D, pertimbangkan peringkat berikut:

  • Peringkat 0: N2, N2D
  • Peringkat 1: N4, N4D (dengan hyperdisk balanced)
  • Peringkat 2: C4, C4D, C3, C3D (dengan hyperdisk seimbang). SSD Lokal dapat digunakan dengan C4 dan C4D, tetapi biasanya 8 atau 16 core hanya mendukung 1–2 SSD lokal.
  • Peringkat 3: E2 (performa lebih rendah; gunakan hanya jika diperlukan)

Misalnya, untuk tugas yang menggunakan n2d-standard-16, peringkatnya adalah:

  • Peringkat 0: n2d-standard-16, n2-standard-16
  • Peringkat 1: n4-standard-16, n4d-standard-16
  • Peringkat 2: c4-standard-16, c4d-standard-16, c3-standard-22, c3d-standard-16
  • Peringkat 3: e2-standard-16

Saat menggunakan VM Fleksibel, pertimbangkan faktor-faktor berikut:

  • Dukungan jenis disk campuran: Jenis mesin Gen3 dan Gen4 hanya mendukung jenis disk Hyperdisk dan tidak mendukung jenis Persistent Disk. Saat menggabungkan Gen2 dan Gen4, tentukan diskConfig untuk setiap pilihan instance di instanceFlexibilityPolicy. Untuk mengetahui informasi selengkapnya, lihat Penggantian disk.

  • Kuota resource: Saat Anda menentukan kebijakan VM Fleksibel dengan jenis penggantian, Compute Engine akan memeriksa kuota untuk semua jenis dan disk kandidat di region tersebut. Pastikan project Anda memiliki kuota komputasi dan disk yang cukup yang dialokasikan untuk semua item yang dikonfigurasi.

  • Diskon Compute Engine: Manfaatkan diskon abonemen fleksibel (CUD) untuk menerapkan penghematan berbasis pembelanjaan di beberapa keluarga dan region VM.

  • Harga: Gunakan Google Cloud Kalkulator Harga untuk membandingkan biaya untuk setiap peringkat dalam kebijakan Anda.

Untuk contoh template konfigurasi dan deployment, lihat:

Menggunakan penempatan autozone

Gunakan penempatan AutoZone agar Managed Service untuk Apache Spark memilih zona terbaik untuk menyediakan resource. Jika Anda menggunakan jaringan Virtual Private Cloud (VPC) kustom, pastikan subnet memiliki alamat IP yang memadai di semua zona regional.

Menggunakan bentuk mesin yang lebih kecil

Desain tugas untuk menskalakan secara horizontal di berbagai jenis mesin yang lebih kecil (4, 8, atau 16 core), bukan menskalakan secara vertikal dengan VM yang lebih besar. Ukuran VM yang lebih kecil memiliki ketersediaan yang lebih tinggi di seluruh zona, sehingga membantu mencegah penundaan pembuatan.

  • Tinjau dan arsitektur ulang tugas yang menggunakan jenis mesin besar untuk node driver.
  • Tinjau tugas yang hanya menjalankan node driver tanpa node pekerja (cluster node tunggal). Tugas yang berjalan di cluster node tunggal tidak dapat ditingkatkan skalanya secara dinamis dan mengikat eksekusi ke satu host fisik.

Menggunakan penskalaan otomatis cluster

Gunakan penskalaan otomatis cluster dengan jumlah maksimum instance yang memadai untuk mengelola kapasitas tugas dengan variabilitas resource (lonjakan).

Menggunakan pembuatan cluster parsial dengan penskalaan otomatis

Gunakan pembuatan cluster parsial, yang memungkinkan Anda menentukan jumlah minimum pekerja utama, dengan penskalaan otomatis. Jika cluster dimulai dengan lebih sedikit worker daripada yang diminta, penskalaan otomatis dapat menambahkan lebih banyak worker secara dinamis setelah resource tersedia.

Menjadwalkan tugas di luar jam sibuk

Jadwalkan tugas di luar jam sibuk, seperti tengah hari dan akhir pekan. Jadwalkan pada waktu yang tidak standar, misalnya, pada pukul 10:07, bukan 10:00, untuk menghindari lonjakan penjadwalan.

Langkah berikutnya