Penentuan ukuran cluster

Cloud Data Fusion secara default menggunakan Penskalaan Otomatis sebagai profil komputasi. Memperkirakan jumlah pekerja cluster (node) terbaik untuk beban kerja sulit, dan satu ukuran cluster untuk seluruh pipeline sering kali tidak ideal. Penskalaan Otomatis Dataproc menyediakan mekanisme untuk mengotomatiskan pengelolaan resource cluster dan memungkinkan penskalaan otomatis VM pekerja cluster. Untuk informasi selengkapnya, lihat Penskalaan otomatis

Di halaman Konfigurasi komputasi, tempat Anda dapat melihat daftar profil, ada kolom Total core, yang memiliki vCPU maksimum yang dapat disetel profil, seperti Up to 84.

Jika ingin menggunakan profil Compute Dataproc , Anda dapat mengelola ukuran cluster berdasarkan ukuran pipeline.

Node master

Node master menggunakan resource yang sebanding dengan jumlah pipeline atau aplikasi tambahan yang berjalan di cluster. Jika Anda menjalankan pipeline di cluster sementara, gunakan 2  CPU dan 8  GB memori untuk node master. Jika menggunakan cluster persisten, Anda mungkin memerlukan node master yang lebih besar untuk mengimbangi alur kerja. Untuk memahami apakah Anda memerlukan node master yang lebih besar, Anda dapat memantau penggunaan memori dan CPU di node. Sebaiknya tentukan ukuran worker node dengan minimal 2 CPU dan memori 8 GB. Jika telah mengonfigurasi pipeline untuk menggunakan memori dalam jumlah yang lebih besar, Anda harus menggunakan pekerja yang lebih besar.

Untuk meminimalkan waktu eksekusi, pastikan cluster Anda memiliki node yang cukup untuk memungkinkan pemrosesan paralel sebanyak mungkin.

Pekerja

Bagian berikut menjelaskan aspek ukuran node pekerja.

CPU dan Memori

Sebaiknya tentukan ukuran node pekerja Anda dengan minimal 2 CPU dan memori 8 GB. Jika Anda mengonfigurasi pipeline untuk menggunakan memori dalam jumlah yang lebih besar, gunakan pekerja yang lebih besar. Misalnya, dengan node pekerja 4 CPU 15 GB, setiap pekerja akan memiliki 4 CPU dan 12 GB yang tersedia untuk menjalankan penampung YARN. Jika pipeline Anda dikonfigurasi untuk menjalankan 1 CPU, eksekutor 8 GB, YARN tidak dapat menjalankan lebih dari satu penampung per node pekerja. Setiap node pekerja akan memiliki 3 CPU dan 4 GB tambahan yang terbuang karena tidak dapat digunakan untuk menjalankan apa pun. Untuk memaksimalkan penggunaan resource di cluster, Anda sebaiknya menetapkan memori YARN dan CPU menjadi kelipatan persis dari jumlah yang diperlukan per eksekutor Spark. Anda dapat memeriksa jumlah memori yang telah dicadangkan setiap pekerja untuk YARN dengan memeriksa properti yarn.nodemanager.resource.memory-mb di YARN.

Jika Anda menggunakan Dataproc, memori yang tersedia untuk penampung YARN akan berjumlah sekitar 75% dari memori VM. Ukuran penampung YARN minimum juga disesuaikan bergantung pada ukuran VM pekerja. Beberapa ukuran pekerja umum dan setelan YARN yang sesuai diberikan dalam tabel berikut.

CPU Pekerja Memori pekerja (GB) Memori node YARN (GB) Memori alokasi minimum YARN (MB)
1 4 3 256
2 8 6 512
4 16 12 1024
8 32 24 1024
16 64 51 1024

Perlu diingat bahwa Spark meminta lebih banyak memori daripada memori eksekutor yang ditetapkan untuk pipeline, dan YARN membulatkan jumlah yang diminta. Misalnya, Anda telah menetapkan memori eksekutor ke 2048 MB, dan belum memberikan nilai untuk spark.yarn.executor.memoryOverhead, yang berarti memori default sebesar 384 MB akan digunakan. Artinya, Spark meminta 2048 MB + 384 MB untuk setiap eksekutor, yang dibulatkan YARN ke bilangan kelipatan persis dari alokasi minimum YARN. Saat berjalan di node pekerja 8 GB, karena alokasi minimum YARN adalah 512 MB, alokasi tersebut akan dibulatkan ke atas menjadi 2,5 GB. Artinya, setiap pekerja dapat menjalankan dua penampung, menggunakan semua CPU yang tersedia, tetapi menyisakan memori YARN sebesar 1 GB (6 GB - 2,5 GB - 2,5 GB) yang tidak digunakan. Ini berarti node pekerja sebenarnya dapat dibuat sedikit lebih kecil, atau eksekutor dapat diberi sedikit lebih banyak memori. Saat berjalan di node pekerja 16 GB, 2048 MB + 1024 MB dibulatkan menjadi 3 GB karena alokasi minimum YARN adalah 1024 MB. Artinya, setiap node pekerja dapat menjalankan empat penampung, dengan semua CPU dan memori YARN yang digunakan.

Untuk membantu memberikan konteks, tabel berikut menunjukkan ukuran pekerja yang direkomendasikan dengan beberapa ukuran eksekutor umum.

CPU  Eksekutor Memori Eksekutor (MB) CPU  Worker Memori Pekerja ( GB)
1 2048 4 15
1 3072 4 21
1 4096 4 26
2 8192 4 26

Misalnya, node pekerja 26 GB diterjemahkan menjadi memori 20 GB yang dapat digunakan untuk menjalankan penampung YARN. Dengan memori eksekutor yang ditetapkan ke 4 GB, 1 GB ditambahkan sebagai overhead, yang berarti penampung YARN 5 GB untuk setiap eksekutor. Artinya, pekerja dapat menjalankan empat penampung tanpa sisa resource tambahan. Anda juga dapat mengalikan ukuran pekerja. Misalnya, jika memori eksekutor ditetapkan ke 4096 GB, pekerja dengan 8 CPU dan memori 52 GB juga akan berfungsi dengan baik. VM Compute Engine membatasi jumlah memori yang dapat dimiliki VM berdasarkan jumlah core. Misalnya, VM dengan 4 core harus memiliki memori minimal 7,25 GB dan memori maksimum 26 GB. Artinya, eksekutor yang ditetapkan untuk menggunakan 1 CPU dan memori 8 GB akan menggunakan 2 CPU dan memori 26 GB di VM. Jika eksekutor dikonfigurasi untuk menggunakan 2 CPU dan 8 GB memori, semua CPU akan digunakan.

Disk

Disk penting untuk beberapa pipeline, tetapi tidak semuanya. Jika pipeline Anda tidak berisi shuffle, disk hanya akan digunakan saat Spark kehabisan memori dan perlu memindahkan data ke disk. Untuk jenis pipeline ini, ukuran dan jenis disk umumnya tidak akan berdampak besar pada performa Anda. Jika pipeline Anda mengacak banyak data, performa disk akan membuat perbedaan. Jika menggunakan Dataproc, sebaiknya gunakan ukuran disk setidaknya 1 TB, karena performa disk disk akan diskalakan dengan ukuran disk. Untuk informasi tentang performa disk, lihat Mengonfigurasi disk untuk memenuhi persyaratan performa.

Jumlah pekerja

Untuk meminimalkan waktu eksekusi, sebaiknya pastikan cluster Anda cukup besar sehingga dapat berjalan sebanyak mungkin secara paralel. Misalnya, jika sumber pipeline membaca data menggunakan 100 pemisahan, Anda harus memastikan cluster cukup besar untuk menjalankan 100 eksekutor sekaligus.

Cara termudah untuk mengetahui apakah cluster Anda berukuran kecil adalah dengan melihat memori YARN yang tertunda dari waktu ke waktu. Jika Anda menggunakan Dataproc, grafik dapat ditemukan di halaman detail cluster.

Jika memori tertunda tinggi selama jangka waktu yang lama, Anda dapat meningkatkan jumlah pekerja untuk menambahkan kapasitas tambahan sebanyak itu ke cluster. Dalam contoh sebelumnya, cluster harus ditingkatkan sebesar sekitar 28 GB untuk memastikan bahwa tingkat paralelisme maksimum tercapai.

Enhanced Flexibility Mode (EFM)

EFM memungkinkan Anda menentukan bahwa hanya node pekerja utama yang terlibat saat mengacak data. Karena pekerja sekunder tidak lagi bertanggung jawab atas data shuffle antara, saat dihapus dari cluster, tugas Spark tidak mengalami penundaan atau error. Karena pekerja utama tidak pernah diskalakan ke bawah, cluster akan diskalakan ke bawah dengan stabilitas dan efisiensi yang lebih tinggi. Jika Anda menjalankan pipeline dengan shuffle di cluster statis, sebaiknya gunakan EFM.

Untuk mengetahui informasi selengkapnya tentang EFM, lihat Mode fleksibilitas yang ditingkatkan Dataproc.