Di Cloud Data Fusion, konfigurasi cluster mengacu pada cara menentukan penggunaan resource komputasi oleh pipeline pemrosesan data saat menjalankan tugas Spark di Dataproc. Halaman ini menjelaskan pendekatan utama untuk konfigurasi cluster.
Cluster sementara default (direkomendasikan)
Menggunakan cluster default adalah pendekatan yang direkomendasikan untuk pipeline Cloud Data Fusion.
- Cloud Data Fusion secara otomatis menyediakan dan mengelola cluster Dataproc sementara untuk setiap eksekusi pipeline. Tindakan ini membuat cluster di awal proses pipeline, lalu menghapusnya setelah proses pipeline selesai.
- Manfaat cluster sementara:
- Kesederhanaan: Anda tidak perlu mengonfigurasi atau mengelola cluster secara manual.
- Efisiensi biaya: Anda hanya membayar resource yang digunakan selama eksekusi pipeline.
Untuk menyesuaikan cluster dan mengoptimalkan performa, lihat Penentuan ukuran cluster.
Cluster statis (untuk skenario tertentu)
Dalam skenario berikut, Anda dapat menggunakan cluster statis:
- Pipeline yang berjalan lama: untuk pipeline yang berjalan terus-menerus atau dalam jangka waktu yang lama, cluster statis dapat lebih hemat biaya daripada membuat dan menghapus cluster efemeral berulang kali.
- Pengelolaan cluster terpusat: jika organisasi Anda memerlukan kontrol terpusat atas kebijakan pembuatan dan pengelolaan cluster, cluster statis dapat digunakan bersama alat seperti Terraform.
- Waktu pembuatan cluster: jika waktu yang diperlukan untuk membuat cluster baru untuk setiap pipeline tidak memungkinkan untuk kasus penggunaan Anda.
Namun, cluster statis memerlukan konfigurasi manual yang lebih banyak dan melibatkan pengelolaan siklus proses cluster sendiri.
Untuk menggunakan cluster statis, Anda harus menyetel properti berikut di cluster Dataproc:
dataproc:dataproc.conscrypt.provider.enable=false
capacity-scheduler:yarn.scheduler.capacity.resource-calculator="org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator"
Opsi konfigurasi cluster untuk cluster statis
Jika Anda memilih untuk menggunakan cluster statis, Cloud Data Fusion menawarkan opsi konfigurasi untuk aspek berikut:
- Jenis mesin pekerja: tentukan jenis mesin virtual untuk node pekerja di cluster Anda. Hal ini menentukan vCPU dan memori yang tersedia untuk setiap pekerja.
- Number of workers: tentukan jumlah awal node pekerja di cluster Anda. Dataproc mungkin masih menskalakan otomatis jumlah ini, berdasarkan workload.
- Zona: pilih zona Google Cloud cluster Anda. Lokasi dapat memengaruhi lokalitas data dan performa jaringan.
- Konfigurasi tambahan: Anda dapat mengonfigurasi opsi lanjutan untuk cluster statis, seperti setelan preemptive, setelan jaringan, dan tindakan inisialisasi.
Praktik terbaik
Saat membuat cluster statis untuk pipeline, gunakan konfigurasi berikut.
Parameter | Deskripsi |
---|---|
yarn.nodemanager.delete.debug-delay-sec |
Mempertahankan log YARN. Nilai yang direkomendasikan: 86400 (setara dengan satu hari) |
yarn.nodemanager.pmem-check-enabled |
Memungkinkan YARN memeriksa batas memori fisik dan menghentikan container jika
melebihi memori fisik. Nilai yang direkomendasikan: false |
yarn.nodemanager.vmem-check-enabled |
Memungkinkan YARN memeriksa batas memori virtual dan menghentikan container jika
melebihi memori fisik. Nilai yang direkomendasikan: false |
dataproc.scheduler.driver-size-mb |
Penggunaan memori rata-rata driver membuat Dataproc mengantrekan tugas jika node master tidak memiliki memori yang cukup untuk menjalankan proses driver. Hal ini dapat memengaruhi serentak tugas, tetapi dapat diatasi dengan menggunakan node master dengan lebih banyak memori. Nilai yang direkomendasikan: 2048 |
Untuk mengetahui informasi selengkapnya, lihat Menjalankan pipeline terhadap cluster Dataproc yang ada.
Menggunakan kembali cluster
Anda dapat menggunakan kembali cluster Dataproc di antara beberapa proses untuk meningkatkan waktu pemrosesan. Penggunaan ulang cluster diterapkan dalam model yang mirip dengan penggabungan koneksi atau penggabungan thread. Cluster apa pun tetap aktif dan berjalan selama waktu yang ditentukan setelah proses selesai. Saat dijalankan, proses baru akan mencoba menemukan cluster yang tidak digunakan yang tersedia dan cocok dengan konfigurasi profil komputasi. Jika ada, klaster tersebut akan digunakan, jika tidak, klaster baru akan dimulai.
Pertimbangan untuk menggunakan kembali cluster
- Cluster tidak dibagikan. Mirip dengan model penyediaan cluster sementara reguler, cluster menjalankan satu operasi pipeline dalam satu waktu. Cluster digunakan kembali hanya jika tidak ada aktivitas.
- Jika Anda mengaktifkan penggunaan ulang cluster untuk semua proses, jumlah cluster yang diperlukan untuk memproses semua proses Anda akan dibuat sesuai kebutuhan. Mirip dengan penyedia Dataproc sementara, tidak ada kontrol langsung pada jumlah cluster yang dibuat. Anda tetap dapat menggunakan Google Cloud tanda petik untuk mengelola resource. Misalnya, jika Anda menjalankan 100 kali dengan 7 kali menjalankan paralel maksimum, Anda akan memiliki hingga 7 cluster pada waktu tertentu.
Cluster digunakan kembali di antara pipeline yang berbeda segera setelah pipeline tersebut menggunakan profil yang sama dan memiliki setelan profil yang sama. Jika penyesuaian profil digunakan, cluster akan tetap digunakan kembali, tetapi hanya jika penyesuaiannya sama persis, termasuk semua setelan cluster seperti pemberian label cluster.
Jika penggunaan ulang cluster diaktifkan, ada dua pertimbangan biaya utama:
- Lebih sedikit resource yang digunakan untuk memulai dan menginisialisasi cluster.
- Lebih banyak resource digunakan agar cluster tetap tidak aktif di antara eksekusi pipeline dan setelah eksekusi pipeline terakhir.
Meskipun sulit untuk memprediksi efek biaya penggunaan kembali cluster, Anda dapat menerapkan strategi untuk mendapatkan penghematan maksimal. Strateginya adalah mengidentifikasi jalur penting untuk pipeline berantai dan mengaktifkan penggunaan kembali cluster untuk jalur penting ini. Hal ini akan memastikan cluster segera digunakan kembali, tidak ada waktu tunggu yang terbuang, dan manfaat performa maksimum tercapai.
Mengaktifkan Penggunaan Ulang Cluster
Di bagian Compute Config pada konfigurasi pipeline yang di-deploy atau saat membuat profil komputasi baru:
- Aktifkan Lewati Penghapusan Cluster.
- Waktu Diam Maksimal adalah waktu hingga cluster menunggu pipeline berikutnya untuk menggunakannya kembali. Waktu Nonaktif Maksimum default adalah 30 menit. Untuk Waktu Diam Maksimal, pertimbangkan biaya versus ketersediaan cluster untuk digunakan kembali. Semakin tinggi nilai Waktu Diam Maksimum, semakin banyak cluster yang diam, siap untuk dijalankan.
Pemecahan masalah: Kompatibilitas versi
Masalah: Versi lingkungan Cloud Data Fusion Anda mungkin tidak kompatibel dengan versi cluster Dataproc Anda.
Direkomendasikan: Upgrade ke versi Cloud Data Fusion terbaru dan gunakan salah satu versi Dataproc yang didukung.
Versi Cloud Data Fusion sebelumnya hanya kompatibel dengan versi Dataproc yang tidak didukung. Dataproc tidak memberikan update dan dukungan untuk cluster yang dibuat dengan versi ini. Meskipun Anda dapat terus menjalankan cluster yang dibuat dengan versi yang tidak didukung, sebaiknya ganti cluster tersebut dengan cluster yang dibuat dengan versi yang didukung.
Versi Cloud Data Fusion | Versi Dataproc |
---|---|
6.11.1 | 2.3 |
6.10.1.1 | 2,2***, 2,1, 2,0 * |
6.10 | 2.1, 2.0 * |
6.9 | 2.1, 2.0, 1.5 * |
6,7-6,8 | 2.0, 1.5 * |
6.4-6.6 | 2.0 *, 1.3 ** |
6.1-6.3 | 1.3** |
major.minor
.Untuk menentukan versi OS yang digunakan di cluster Dataproc, versi OS harus kompatibel dengan salah satu versi Dataproc yang didukung untuk Cloud Data Fusion Anda dalam tabel sebelumnya.
Pemecahan masalah: Container keluar dengan kode keluar bukan nol 3
Masalah: Kebijakan penskalaan otomatis tidak digunakan, dan cluster Dataproc statis mengalami tekanan memori, sehingga menyebabkan pengecualian kehabisan memori muncul di log: Container exited with a non-zero
exit code 3
.
Direkomendasikan: Tingkatkan memori eksekutor.
Tingkatkan memori dengan menambahkan argumen task.executor.system.resources.memory
runtime
ke pipeline. Contoh argumen runtime berikut menetapkan memori
ke 4096 MB:
"task.executor.system.resources.memory": 4096
Untuk mengetahui informasi selengkapnya, lihat Penentuan ukuran cluster.