Memperkirakan kapasitas cluster EMR Amazon - AWS Panduan Preskriptif

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memperkirakan kapasitas cluster EMR Amazon

Meskipun Amazon EMR adalah platform yang dapat diubah ukurannya, penting untuk mengukur cluster dengan benar. Ukuran kanan menghindari cluster yang lambat, jika berukuran kecil, atau biaya yang lebih tinggi, jika cluster terlalu besar. Untuk mengantisipasi masalah ini, Anda dapat menghitung jumlah dan jenis node yang akan dibutuhkan untuk beban kerja.

Node primer

Jenis node ini bertanggung jawab untuk mengoordinasikan distribusi data dan proses. Seperti disebutkan sebelumnya, persyaratan komputasi untuk node primer rendah. Anda dapat menggunakan satu simpul utama untuk mengelola klaster EMR Amazon Anda. Namun, Anda dapat menggunakan hingga tiga node utama sehingga Anda tidak memiliki satu titik kegagalan. Jika satu node primer gagal, Amazon EMR gagal ke salah satu dari dua node utama lainnya.

Node inti dan tugas

Perbedaan antara node inti dan tugas adalah bahwa node tugas tidak menyimpan data; mereka hanya menyediakan kekuatan untuk melakukan tugas komputasi paralel.

Untuk menghitung jumlah inti dan node tugas, Anda harus mengetahui ukuran data Anda dan perkiraan penggunaan memori Anda.

Simpul inti

Node inti bertanggung jawab untuk menjalankan tugas untuk memproses data dan juga menyimpan data di Hadoop Distributed File System (HDFS). Untuk menghitung kapasitas node inti, tentukan jumlah node inti, dan kemudian kalikan jumlah node dengan penyimpanan Amazon Elastic Block Store (Amazon EBS) dari setiap node.

Misalnya, jika Anda menentukan 10 node inti untuk memproses 1 TiB data, dan Anda memiliki tipe m5.xlarge instan dengan 64 GiB penyimpanan Amazon EBS, Anda memiliki10 nodes × 64 GiB, atau 640 GiB kapasitas. Berdasarkan faktor replikasi HDFS tiga, ukuran data Anda direplikasi tiga kali di node, sehingga 1 TiB data memerlukan kapasitas 3 TiB. Karena contoh ini hanya memiliki 640 GiB, Anda harus menambah jumlah node atau mengubah jenis instance hingga Anda memiliki kapasitas 3 TiB.

Jenis m5.4xlarge instans memiliki 256 GiB penyimpanan. Mengubah ke jenis m5.4xlarge instans dan memilih 12 instans memberikan kapasitas yang cukup.

12 instances × 256 GiB of storage = 3072 GiB = 3 TiB available

Simpul tugas

Node tugas hanya menjalankan tugas. Mereka tidak menyimpan data. Untuk menghitung jumlah node tugas, Anda memerlukan perkiraan penggunaan memori. Kapasitas ini dapat dibagi menjadi inti dan node tugas. Untuk menghitung jumlah node tugas yang dibutuhkan, Anda dapat mengurangi memori yang disediakan oleh node inti yang Anda hitung pada langkah sebelumnya dari penggunaan memori.

Untuk memiliki rentang memori yang lebih luas, ini adalah praktik terbaik untuk melipatgandakan memori yang dibutuhkan oleh tiga.

Misalkan Anda memiliki 28 proses masing-masing 20 GiB.

3 × 28 processes × 20 GiB of memory = 1680 GiB of memory

Untuk contoh ini, node inti Anda memiliki 64 GiB memori (m5.4xlargeinstance). Node inti Anda menyediakan64 GiB × 12 nodes = 768 GiB of memory, yang tidak cukup dalam contoh ini.

Untuk menemukan kekurangan, kurangi memori node inti dari total memori yang dibutuhkan.

1680 GiB – 768 GiB core node memory = 912 GiB memory shortage.

Node tugas dapat menyediakan 912 GiB memori yang tersisa. Untuk contoh ini, node tugas Anda memiliki 32 GiB memori (m5.2xlargeinstance). Untuk mendapatkan jumlah node tugas yang dibutuhkan, bagilah kekurangan memori dengan memori tipe instance.

912 GiB/32 GiB = 28.5 task nodes

Anda tidak dapat memiliki sebagian kecil dari node tugas, jadi Anda perlu membulatkan hingga 29 node tugas.