Opsi penskalaan klaster untuk kluster EMR Amazon - Amazon EMR

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

Opsi penskalaan klaster untuk kluster EMR Amazon

catatan

Opsi perilaku penskalaan tidak lagi didukung sejak Amazon EMR merilis 5.10.0. Karena pengenalan penagihan per detik di Amazon EC2, perilaku penurunan skala default untuk klaster EMR Amazon sekarang dihentikan pada penyelesaian tugas.

Dengan Amazon EMR merilis 5.1.0 hingga 5.9.1, ada dua opsi untuk perilaku penurunan skala: hentikan pada batas jam instans untuk penagihan Amazon, atau akhiri saat penyelesaian tugas. EC2 Dimulai dengan rilis EMR Amazon 5.10.0, pengaturan untuk penghentian pada batas jam instans tidak digunakan lagi karena pengenalan penagihan per detik di Amazon. EC2 Kami tidak merekomendasikan menentukan pengakhiran batas jam instans dalam versi yang memiliki opsi tersebut.

Awas

Jika Anda menggunakan AWS CLI untuk mengeluarkan modify-instance-groups denganEC2InstanceIdsToTerminate, instance ini segera dihentikan, tanpa mempertimbangkan pengaturan ini, dan terlepas dari status aplikasi yang berjalan di dalamnya. Mengakhiri sebuah instans dengan cara ini berisiko kehilangan data dan perilaku klaster tak terduga.

Saat penghentian saat penyelesaian tugas ditentukan, Amazon EMR menolak daftar dan menguras tugas dari node sebelum menghentikan instans Amazon. EC2 Dengan salah satu perilaku yang ditentukan, Amazon EMR tidak menghentikan instans EC2 Amazon di grup instans inti jika dapat menyebabkan korupsi HDFS.

Akhiri pada penyelesaian tugas

Amazon EMR mengizinkan Anda untuk menurunkan skala klaster Anda tanpa mempengaruhi beban kerja Anda. Amazon EMR mencoba menonaktifkan YARN, HDFS, dan daemon lainnya dengan anggun pada node inti dan tugas selama operasi pengubahan ukuran tanpa kehilangan data atau mengganggu pekerjaan. Amazon EMR hanya mengurangi ukuran grup instans jika pekerjaan yang ditetapkan ke grup telah selesai dan tidak digunakan. Untuk NodeManager YARN Graceful Decommission, Anda dapat secara manual menyesuaikan waktu node menunggu untuk dinonaktifkan.

catatan

Ketika dekomisioning yang anggun terjadi, mungkin ada kehilangan data. Pastikan untuk membuat cadangan data Anda.

penting

Ada kemungkinan bahwa data HDFS dapat hilang secara permanen selama penggantian yang anggun dari instance inti yang tidak sehat. Kami menyarankan agar Anda selalu mencadangkan data Anda.

Kali ini diatur menggunakan properti di klasifikasi konfigurasi YARN-site. Menggunakan Amazon EMR rilis 5.12.0 dan yang lebih tinggi, tentukan properti. YARN.resourcemanager.nodemanager-graceful-decommission-timeout-secs Menggunakan rilis Amazon EMR sebelumnya, tentukan properti. YARN.resourcemanager.decommissioning.timeout

Jika masih ada kontainer atau aplikasi YARN yang berjalan saat waktu penonaktifan habis, simpul dipaksa untuk dinonaktifkan dan YARN menjadwalkan ulang kontainer yang terpengaruh pada simpul lainnya. Nilai default adalah 3600 detik (satu jam). Anda dapat mengatur batas waktu ini menjadi nilai tinggi yang sewenang-wenang untuk memaksa pengurangan anggun menunggu lebih lama. Untuk informasi lebih lanjut, lihat Graceful Decommission of YARN nodes dalam dokumentasi Apache Hadoop.

Grup simpul tugas

Amazon EMR secara cerdas memilih instance yang tidak memiliki tugas yang berjalan terhadap langkah atau aplikasi apa pun, dan menghapus instance tersebut dari cluster terlebih dahulu. Jika semua instance di cluster sedang digunakan, Amazon EMR menunggu tugas diselesaikan pada instance sebelum menghapusnya dari cluster. Waktu tunggu default adalah 1 jam. Nilai ini dapat diubah dengan YARN.resourcemanager.decommissioning.timeout pengaturan. Amazon EMR secara dinamis menggunakan pengaturan baru. Anda dapat mengatur ini ke jumlah yang sangat besar untuk memastikan bahwa Amazon EMR tidak menghentikan tugas apa pun sekaligus mengurangi ukuran cluster.

Grup simpul inti

Pada node inti, DataNode daemon YARN NodeManager dan HDFS harus dinonaktifkan agar grup instance dapat dikurangi. Untuk YARN, pengurangan anggun memastikan bahwa node yang ditandai untuk penonaktifan hanya dialihkan ke DECOMMISSIONED status jika tidak ada wadah atau aplikasi yang tertunda atau tidak lengkap. Penonaktifan segera selesai jika tidak ada kontainer yang berjalan pada simpul di awal penonaktifan.

Untuk HDFS, pengurangan yang anggun memastikan bahwa kapasitas target HDFS cukup besar untuk memenuhi semua blok yang ada. Jika kapasitas target tidak cukup besar, hanya sebagian jumlah instans inti yang dinonaktifkan sehingga simpul yang tersisa dapat menangani data yang ada di HDFS. Anda harus memastikan kapasitas HDFS tambahan untuk memungkinkan penonaktifan lebih lanjut. Anda juga harus mencoba meminimalkan penulisan I/O sebelum mencoba mengurangi grup instance. Penulisan I/O yang berlebihan mungkin menunda penyelesaian operasi pengubahan ukuran.

Batas lain adalah faktor replikasi default, dfs.replication di dalam /etc/hadoop/conf/hdfs-site. Saat membuat cluster, Amazon EMR mengonfigurasi nilai berdasarkan jumlah instance di cluster: 1 dengan 1-3 instance, untuk cluster dengan 4-9 instance, dan 2 untuk cluster dengan 10+ instance. 3

Awas
  1. Pengaturan dfs.replication ke 1 pada cluster dengan kurang dari empat node dapat menyebabkan hilangnya data HDFS jika satu node turun. Kami menyarankan Anda menggunakan cluster dengan setidaknya empat node inti untuk beban kerja produksi.

  2. Amazon EMR tidak akan mengizinkan cluster untuk menskalakan node inti di bawah ini. dfs.replication Misalnya, jikadfs.replication = 2, jumlah minimum node inti adalah 2.

  3. Saat Anda menggunakan Penskalaan Terkelola, Penskalaan Otomatis, atau memilih untuk mengubah ukuran klaster secara manual, sebaiknya atur dfs.replication ke 2 atau lebih tinggi.

Pengurangan yang anggun tidak memungkinkan Anda mengurangi node inti di bawah faktor replikasi HDFS. Ini untuk memungkinkan HDFS menutup file karena replika tidak mencukupi. Untuk menghindari batas ini, turunkan faktor replikasi dan restart daemon. NameNode