Lakukan konfigurasi ulang pada grup instans di klaster yang sedang berjalan - Amazon EMR

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

Lakukan konfigurasi ulang pada grup instans di klaster yang sedang berjalan

Dengan Amazon EMR versi 5.21.0 dan terbaru, Anda dapat melakukan konfigurasi ulang pada aplikasi klaster dan menentukan klasifikasi konfigurasi tambahan untuk masing-masing grup instans pada klaster yang sedang berjalan. Untuk melakukannya, Anda dapat menggunakan konsol Amazon EMR, AWS Command Line Interface (AWS CLI), atau AWS SDK.

Saat Anda memperbarui konfigurasi aplikasi untuk grup instans di konsol EMR Amazon yang baru, konsol mencoba menggabungkan konfigurasi baru dengan konfigurasi yang ada untuk membuat konfigurasi baru yang aktif. Dalam kasus yang tidak biasa di mana Amazon EMR tidak dapat menggabungkan konfigurasi, konsol memberi tahu Anda.

Setelah Anda mengirimkan permintaan konfigurasi ulang untuk grup instans, Amazon EMR menetapkan nomor versi untuk spesifikasi konfigurasi baru. Anda dapat melacak nomor versi konfigurasi, atau status grup instans, dengan melihat CloudWatch peristiwa. Untuk informasi selengkapnya, lihat Memantau CloudWatch Acara.

catatan

Anda hanya dapat menimpa, dan bukannya menghapus, konfigurasi klaster yang ditentukan selama pembuatan klaster. Jika ada perbedaan antara konfigurasi yang ada dan file yang Anda sediakan, maka Amazon EMR akan me-reset konfigurasi yang telah dimodifikasi secara manual, misalnya konfigurasi yang telah Anda modifikasi saat terhubung ke klaster Anda menggunakan SSH, ke klaster default untuk grup instans yang ditentukan.

Pertimbangan saat Anda melakukan konfigurasi ulang grup instans

Tindakan konfigurasi ulang

Ketika Anda mengirimkan permintaan konfigurasi ulang menggunakan konsol Amazon EMR, AWS Command Line Interface (AWS CLI), atau AWS SDK, Amazon EMR akan memeriksa file konfigurasi yang ada pada klaster. Jika ada perbedaan antara konfigurasi yang ada dan file yang Anda sediakan, maka Amazon EMR akan memulai tindakan konfigurasi ulang, melakukan restart pada beberapa aplikasi, dan me-reset konfigurasi yang dimodifikasi secara manual, misalnya konfigurasi yang telah Anda modifikasi saat terhubung ke klaster Anda menggunakan SSH, ke klaster default untuk grup instans yang sudah ditentukan.

catatan

Amazon EMR melakukan beberapa tindakan default selama setiap konfigurasi ulang grup instans. Tindakan default ini mungkin bertentangan dengan kustomisasi klaster yang telah Anda buat, dan mengakibatkan kegagalan konfigurasi ulang. Untuk informasi tentang cara memecahkan masalah kegagalan konfigurasi ulang, lihat Pecahkan masalah konfigurasi ulang grup instans.

Amazon EMR juga memulai tindakan konfigurasi ulang untuk klasifikasi konfigurasi yang Anda tentukan dalam permintaan Anda. Untuk daftar lengkap tindakan ini, lihat bagian Klasifikasi Konfigurasi untuk versi Amazon EMR yang Anda gunakan. Misalnya, Klasifikasi Konfigurasi 6.2.0.

catatan

Panduan Rilis Amazon EMR hanya mencantumkan tindakan konfigurasi ulang yang dimulai dengan Amazon EMR versi 5.32.0 dan 6.2.0.

Gangguan layanan

Amazon EMR mengikuti proses bergulir untuk melakukan konfigurasi ulang instans dalam grup instans Tugas dan Core. Hanya 10 persen instans yang ada dalam grup instans yang dimodifikasi dan di-restart pada suatu waktu. Proses ini membutuhkan waktu lebih lama untuk selesai tetapi mengurangi kemungkinan gagal aplikasi yang mungkin terjadi dalam sebuah klaster yang berjalan.

Untuk menjalankan tugas YARN selama restart YARN, Anda dapat membuat klaster Amazon EMR dengan beberapa simpul utama atau atur yarn.resourcemanager.recovery.enabled menjadi true di klasifikasi konfigurasi yarn-site Anda. Untuk informasi selengkapnya tentang penggunaan beberapa node master, lihat YARN ketersediaan tinggi ResourceManager.

Validasi aplikasi

Amazon EMR memeriksa apakah setiap aplikasi di klaster berjalan setelah proses restart konfigurasi ulang. Jika ada aplikasi yang tidak tersedia, maka operasi konfigurasi ulang secara keseluruhan gagal. Jika operasi rekonfigurasi gagal, maka Amazon EMR akan membalikkan parameter konfigurasi ke versi kerja sebelumnya.

catatan

Untuk menghindari gagal konfigurasi ulang, kami merekomendasikan Anda untuk hanya menginstal aplikasi di klaster Anda yang Anda rencanakan untuk digunakan. Kami juga merekomendasikan Anda untuk memastikan semua aplikasi klaster dalam keadaan sehat dan berjalan sebelum Anda mengirimkan permintaan konfigurasi ulang.

Jenis konfigurasi ulang

Anda dapat mengkonfigurasi ulang grup instans dengan salah satu dari dua cara:

  • Menimpa. Metode konfigurasi ulang default dan satu-satunya yang tersedia di Amazon EMR rilis lebih awal dari 5.35.0 dan 6.6.0. Metode konfigurasi ulang ini tanpa pandang bulu menimpa file on-cluster dengan set konfigurasi yang baru dikirimkan. Metode ini menghapus setiap perubahan pada file konfigurasi yang dibuat di luar API konfigurasi ulang.

  • Gabungkan. Metode konfigurasi ulang yang didukung untuk Amazon EMR merilis 5.35.0 dan 6.6.0 dan yang lebih baru, kecuali dari konsol EMR Amazon, di mana tidak ada versi yang mendukungnya. Metode konfigurasi ulang ini menggabungkan konfigurasi yang baru dikirimkan dengan konfigurasi yang sudah ada di cluster. Opsi ini hanya menambah atau memodifikasi konfigurasi baru yang Anda kirimkan. Ini mempertahankan konfigurasi yang ada.

catatan

Amazon EMR terus menimpa beberapa konfigurasi Hadoop penting yang diperlukan untuk memastikan bahwa layanan berjalan dengan benar.

Keterbatasan

Ketika Anda melakukan konfigurasi ulang pada grup instans di klaster yang sedang berjalan, pertimbangkan keterbatasan-keterbatasan berikut:

  • Aplikasi non-yarn dapat gagal selama restart atau menyebabkan masalah klaster, terutama jika aplikasi tidak dikonfigurasi dengan benar. Klaster yang mendekati penggunaan memori dan CPU maksimum dapat mengalami masalah setelah proses restart. Hal ini terutama berlaku untuk grup instans utama.

  • Anda tidak dapat mengirimkan permintaan konfigurasi ulang ketika grup instans sedang diubah ukurannya. Jika konfigurasi ulang dimulai sementara grup instans sedang diubah ukurannya, maka konfigurasi ulang tidak akan memulai sampai perubahan ukuran grup instans telah selesai, dan sebaliknya.

  • Setelah melakukan konfigurasi ulang terhadap grup instans, Amazon EMR akan melakukan restart pada aplikasi untuk mengizinkan konfigurasi baru berlaku. Gagal tugas atau perilaku aplikasi tak terduga lainnya mungkin terjadi jika aplikasi sedang digunakan saat konfigurasi ulang dilakukan.

  • Jika konfigurasi ulang untuk grup instans gagal, maka Amazon EMR akan membalikkan parameter konfigurasi ke versi kerja sebelumnya. Jika proses pembalikan juga gagal, maka Anda harus mengirimkan permintaan ModifyInstanceGroup baru untuk memulihkan grup instans dari keadaan SUSPENDED.

  • Permintaan konfigurasi ulang untuk klasifikasi konfigurasi Phoenix hanya didukung di Amazon EMR versi 5.23.0 dan setelahnya, dan tidak didukung di Amazon EMR versi 5.21.0 atau 5.22.0.

  • Permintaan konfigurasi ulang untuk klasifikasi konfigurasi HBase hanya didukung di Amazon EMR versi 5.30.0 dan setelahnya, dan tidak didukung di Amazon EMR versi 5.23.0 hingga 5.29.0.

  • Amazon EMR mendukung permintaan konfigurasi ulang aplikasi pada cluster EMR Amazon dengan beberapa node utama hanya di Amazon EMR versi 5.27.0 dan yang lebih baru.

  • Mengkonfigurasi ulang hdfs-encryption-zones klasifikasi atau klasifikasi konfigurasi KMS Hadoop tidak didukung pada kluster EMR Amazon dengan beberapa node primer.

  • Amazon EMR saat ini tidak mendukung permintaan konfigurasi ulang tertentu untuk penjadwal kapasitas yang memerlukan memulai ulang YARN. ResourceManager Misalnya, Anda tidak dapat menghapus antrean sepenuhnya.

Lakukan konfigurasi ulang pada grup instans di konsol tersebut

catatan

Konsol EMR Amazon tidak mendukung konfigurasi ulang tipe Gabungan.

  1. Buka konsol Amazon EMR di https://console.aws.amazon.com/elasticmapreduce/.

  2. Dalam daftar klaster di bawah Nama, pilih klaster aktif yang ingin Anda konfigurasi ulang.

  3. Buka halaman detail klaster untuk klaster tersebut, dan buka tab Konfigurasi.

  4. Di daftar drop-down Filter, pilih grup instans yang ingin Anda konfigurasi ulang.

  5. Di menu drop-down Konfigurasi ulang, pilih Mengedit tabel atau Mengedit file JSON.

    • Mengedit tabel - Dalam tabel klasifikasi konfigurasi, edit properti dan nilai untuk konfigurasi yang ada, atau pilih Tambahkan konfigurasi untuk menyediakan klasifikasi konfigurasi tambahan.

    • Mengedit file JSON - Masukkan konfigurasi secara langsung di JSON, atau gunakan sintaks singkatan (ditunjukkan dalam teks bayangan). Jika tidak, sediakan URI Amazon S3 untuk file dengan objek Configurations JSON.

    catatan

    Kolom Sumber dalam tabel klasifikasi konfigurasi menunjukkan apakah konfigurasi disediakan ketika Anda membuat sebuah klaster, atau ketika Anda menentukan konfigurasi tambahan untuk grup instans ini. Anda dapat mengedit konfigurasi untuk grup instans dari kedua sumber. Anda tidak dapat menghapus konfigurasi klaster awal, tetapi Anda dapat menimpa mereka untuk grup instans.

    Anda juga dapat menambahkan atau mengedit klasifikasi konfigurasi bersarang langsung di tabel. Misalnya, untuk menyediakan sub-klasifikasi export tambahan hadoop-env, tambahkan klasifikasi konfigurasi hadoop.export dalam tabel. Kemudian, berikan properti dan nilai khusus untuk klasifikasi ini.

  6. (Opsional) Pilih Terapkan konfigurasi ini ke semua grup instans aktif.

  7. Simpan perubahan.

Lakukan konfigurasi ulang grup instans menggunakan CLI

Gunakan perintah modify-instance-groups untuk menentukan konfigurasi baru untuk grup instans di klaster yang sedang berjalan.

catatan

Dalam contoh berikut, ganti <j-2AL4XXXXXX5T9>dengan ID cluster Anda, dan ganti <ig-1xxxxxxx9>dengan ID grup instans Anda.

contoh – Ganti konfigurasi untuk grup instans

Contoh berikut mereferensikan file JSON konfigurasi yang dipanggil instanceGroups.json untuk mengedit properti pemeriksa kesehatan NodeManager disk YARN untuk grup instance.

  1. Siapkan klasifikasi konfigurasi Anda, dan simpan sebagai instanceGroups.json di direktori yang sama di mana Anda akan menjalankan perintah.

    [ { "InstanceGroupId":"<ig-1xxxxxxx9>", "Configurations":[ { "Classification":"yarn-site", "Properties":{ "yarn.nodemanager.disk-health-checker.enable":"true", "yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage":"100.0" }, "Configurations":[] } ] } ]
  2. Jalankan perintah berikut.

    aws emr modify-instance-groups --cluster-id <j-2AL4XXXXXX5T9> \ --instance-groups file://instanceGroups.json
contoh – Menambahkan konfigurasi ke grup instans

Jika Anda ingin menambahkan konfigurasi ke grup instans, Anda harus menyertakan semua konfigurasi yang telah ditentukan sebelumnya untuk grup instans di permintaan ModifyInstanceGroup. Jika tidak, konfigurasi yang ditentukan sebelumnya akan dihapus.

Contoh berikut menambahkan properti untuk pemeriksa memori NodeManager virtual YARN. Konfigurasi juga menyertakan nilai yang ditentukan sebelumnya untuk pemeriksa kesehatan NodeManager disk YARN sehingga nilainya tidak akan ditimpa.

  1. Siapkan konten berikut di instanceGroups.json dan simpan di direktori yang sama dimana anda akan menjalankan perintahnya.

    [ { "InstanceGroupId":"<ig-1xxxxxxx9>", "Configurations":[ { "Classification":"yarn-site", "Properties":{ "yarn.nodemanager.disk-health-checker.enable":"true", "yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage":"100.0", "yarn.nodemanager.vmem-check-enabled":"true", "yarn.nodemanager.vmem-pmem-ratio":"3.0" }, "Configurations":[] } ] } ]
  2. Jalankan perintah berikut.

    aws emr modify-instance-groups --cluster-id <j-2AL4XXXXXX5T9> \ --instance-groups file://instanceGroups.json
contoh — Tambahkan konfigurasi ke grup instance dengan konfigurasi ulang tipe Gabung

Bila Anda ingin menggunakan metode konfigurasi ulang Overwrite default untuk menambahkan konfigurasi, Anda harus menyertakan semua konfigurasi yang ditentukan sebelumnya untuk grup instance tersebut dalam permintaan baru Anda. ModifyInstanceGroup Jika tidak, Overwrite akan menghapus konfigurasi yang Anda tentukan sebelumnya. Anda tidak perlu melakukan ini dengan Merge reconfiguration. Sebagai gantinya, Anda harus memastikan bahwa permintaan Anda hanya menyertakan konfigurasi baru yang disertakan.

Contoh berikut menambahkan properti untuk pemeriksa memori NodeManager virtual YARN. Karena ini adalah konfigurasi ulang tipe Gabungan, ini tidak menimpa nilai yang ditentukan sebelumnya untuk pemeriksa kesehatan NodeManager disk YARN.

  1. Siapkan konten berikut di instanceGroups.json dan simpan di direktori yang sama dimana anda akan menjalankan perintahnya.

    [ {"InstanceGroupId":"<ig-1xxxxxxx9>", "ReconfigurationType" :"MERGE", "Configurations":[ {"Classification":"yarn-site", "Properties":{ "yarn.nodemanager.vmem-check-enabled":"true", "yarn.nodemanager.vmem-pmem-ratio":"3.0" }, "Configurations":[] } ] } ]
  2. Jalankan perintah berikut.

    aws emr modify-instance-groups --cluster-id <j-2AL4XXXXXX5T9> \ --instance-groups file://instanceGroups.json
contoh – Hapus konfigurasi untuk grup instans

Untuk menghapus konfigurasi untuk grup instans, kirimkan permintaan konfigurasi ulang baru yang mengecualikan konfigurasi sebelumnya.

catatan

Anda hanya dapat menimpa konfigurasi Klaster awal. Anda tidak dapat menghapusnya.

Misalnya, untuk menghapus konfigurasi pemeriksa kesehatan NodeManager disk YARN dari contoh sebelumnya, kirimkan yang baru instanceGroups.json dengan konten berikut.

[ { "InstanceGroupId":"<ig-1xxxxxxx9>", "Configurations":[ { "Classification":"yarn-site", "Properties":{ "yarn.nodemanager.vmem-check-enabled":"true", "yarn.nodemanager.vmem-pmem-ratio":"3.0" }, "Configurations":[] } ] } ]
catatan

Untuk menghapus semua konfigurasi dalam permintaan konfigurasi ulang terakhir Anda, kirimkan permintaan konfigurasi ulang dengan konfigurasi array kosong. Misalnya,

[ { "InstanceGroupId":"<ig-1xxxxxxx9>", "Configurations":[] } ]
contoh – Melakukan konfigurasi ulang dan mengubah ukuran grup instans dalam satu permintaan

JSON contoh berikut menunjukkan cara melakukan konfigurasi ulang dan mengubah ukuran grup instans dalam permintaan yang sama.

[ { "InstanceGroupId":"<ig-1xxxxxxx9>", "InstanceCount":5, "EC2InstanceIdsToTerminate":["i-123"], "ForceShutdown":true, "ShrinkPolicy":{ "DecommissionTimeout":10, "InstanceResizePolicy":{ "InstancesToTerminate":["i-123"], "InstancesToProtect":["i-345"], "InstanceTerminationTimeout":20 } }, "Configurations":[ { "Classification":"yarn-site", "Configurations":[], "Properties":{ "yarn.nodemanager.disk-health-checker.enable":"true", "yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage":"100.0" } } ] } ]

Lakukan konfigurasi ulang grup instans menggunakan Java SDK

catatan

Dalam contoh berikut, ganti <j-2AL4XXXXXX5T9>dengan ID cluster Anda, dan ganti <ig-1xxxxxxx9>dengan ID grup instans Anda.

Potongan kode berikut menyediakan konfigurasi baru untuk grup instans menggunakan AWS SDK for Java.

AWSCredentials credentials = new BasicAWSCredentials("access-key", "secret-key"); AmazonElasticMapReduce emr = new AmazonElasticMapReduceClient(credentials); Map<String,String> hiveProperties = new HashMap<String,String>(); hiveProperties.put("hive.join.emit.interval","1000"); hiveProperties.put("hive.merge.mapfiles","true"); Configuration configuration = new Configuration() .withClassification("hive-site") .withProperties(hiveProperties); InstanceGroupModifyConfig igConfig = new InstanceGroupModifyConfig() .withInstanceGroupId("<ig-1xxxxxxx9>") .withReconfigurationType("MERGE"); .withConfigurations(configuration); ModifyInstanceGroupsRequest migRequest = new ModifyInstanceGroupsRequest() .withClusterId("<j-2AL4XXXXXX5T9>") .withInstanceGroups(igConfig); emr.modifyInstanceGroups(migRequest);

Potongan kode berikut menghapus konfigurasi yang telah ditentukan sebelumnya untuk grup instans dengan menyediakan array kosong konfigurasi.

List<Configuration> configurations = new ArrayList<Configuration>(); InstanceGroupModifyConfig igConfig = new InstanceGroupModifyConfig() .withInstanceGroupId("<ig-1xxxxxxx9>") .withConfigurations(configurations); ModifyInstanceGroupsRequest migRequest = new ModifyInstanceGroupsRequest() .withClusterId("<j-2AL4XXXXXX5T9>") .withInstanceGroups(igConfig); emr.modifyInstanceGroups(migRequest);

Pecahkan masalah konfigurasi ulang grup instans

Jika proses konfigurasi ulang untuk grup instans gagal, Amazon EMR mengembalikan konfigurasi ulang dan mencatat pesan kegagalan menggunakan peristiwa Amazon. CloudWatch Peristiwa ini menyediakan ringkasan singkat dari kegagalan konfigurasi ulang. Ia mendaftar instans yang konfigurasi ulangnya gagal dan pesan kegagalan yang sesuai. Berikut ini adalah contoh pesan kegagalan.

The reconfiguration operation for instance group ig-1xxxxxxx9 in Amazon EMR cluster j-2AL4XXXXXX5T9 (ExampleClusterName) failed at 2021-01-01 00:00 UTC and took 2 minutes to fail. Failed configuration version is example12345. Failure message: Instance i-xxxxxxx1, i-xxxxxxx2, i-xxxxxxx3 failed with message "This is an example failure message".

Untuk mengumpulkan lebih banyak data tentang kegagalan konfigurasi ulang, Anda dapat memeriksa simpul yang menyediakan log. Dengan melakukan hal ini akan sangat berguna saat Anda menerima pesan seperti berikut.

i-xxxxxxx1 failed with message “Unable to complete transaction and some changes were applied.”
On the node
Untuk mengakses simpul yang menyediakan log dengan menghubungkan ke sebuah simpul
  1. Gunakan SSH untuk terhubung ke simpul di mana konfigurasi ulang gagal dilakukan. Untuk instruksi, lihat Connect ke instans Linux Anda di Amazon EC2 Panduan Pengguna untuk Instans Linux.

  2. Arahkan ke direktori berikut, yang berisi simpul yang menyediakan berkas log.

    /mnt/var/log/provision-node/
  3. Buka subdirektori reports dan cari simpul yang menyediakan laporan untuk konfigurasi ulang Anda. Direktori reports mengatur log berdasarkan nomor versi konfigurasi ulang, pengenal unik universal (UUID), alamat IP instans Amazon EC2, dan stempel waktu. Setiap laporan adalah file YAML terkompresi yang berisi informasi rinci tentang proses konfigurasi ulang.

    Berikut ini adalah contoh nama dan path file laporan.

    /reports/2/ca598xxx-cxxx-4xxx-bxxx-6dbxxxxxxxxx/ip-10-73-xxx-xxx.ec2.internal/202104061715.yaml.gz
  4. Anda dapat memeriksa laporan menggunakan penampil file seperti zless, seperti pada contoh berikut.

    zless 202104061715.yaml.gz
Amazon S3
Untuk mengakses simpul yang menyediakan log menggunakan Amazon S3
  1. Masuk ke AWS Management Console dan buka konsol Amazon S3 di https://console.aws.amazon.com/s3/.

  2. Buka bucket Amazon S3 yang Anda tetapkan saat Anda mengkonfigurasi klaster untuk mengarsip berkas log.

  3. Arahkan ke folder berikut, yang berisi simpul yang menyediakan berkas log:

    DOC-EXAMPLE-BUCKET/elasticmapreduce/<cluster id>/node/<instance id>/provision-node/
  4. Buka folder reports dan cari simpul yang menyediakan laporan untuk konfigurasi ulang Anda. Folder reports mengatur log berdasarkan nomor versi konfigurasi ulang, pengenal unik universal (UUID), alamat IP instans Amazon EC2, dan stempel waktu. Setiap laporan adalah file YAML terkompresi yang berisi informasi rinci tentang proses konfigurasi ulang.

    Berikut ini adalah contoh nama dan path file laporan.

    /reports/2/ca598xxx-cxxx-4xxx-bxxx-6dbxxxxxxxxx/ip-10-73-xxx-xxx.ec2.internal/202104061715.yaml.gz
  5. Untuk melihat berkas log, Anda dapat mengunduhnya dari Amazon S3 ke mesin lokal Anda sebagai file teks. Untuk instruksi, lihat Mengunduh objek.

Setiap file berkas log berisi rincian laporan penyediaan rinci untuk konfigurasi ulang terkait. Untuk menemukan informasi pesan kesalahan, Anda dapat mencari tingkat log err laporan. Format laporan tergantung pada versi Amazon EMR pada klaster Anda.

Contoh berikut menunjukkan informasi kesalahan untuk Amazon EMR versi rilis lebih awal dari 5.32.0 dan 6.2.0.

- !ruby/object:Puppet::Util::Log level: !ruby/sym err tags: - err message: "Example detailed error message." source: Puppet time: 2021-01-01 00:00:00.000000 +00:00

Amazon EMR versi rilis 5.32.0 dan 6.2.0 dan setelahnya menggunakan format berikut sebagai gantinya.

- level: err message: 'Example detailed error message.' source: Puppet tags: - err time: '2021-01-01 00:00:00.000000 +00:00' file: line: