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 yang lebih baru, Anda dapat mengonfigurasi ulang aplikasi cluster dan menentukan klasifikasi konfigurasi tambahan untuk setiap grup instans dalam klaster yang sedang berjalan. Untuk melakukannya, Anda dapat menggunakan EMR konsol Amazon, AWS Command Line Interface (AWS CLI), atau AWS SDK.

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

Setelah mengirimkan permintaan konfigurasi ulang untuk grup instans, Amazon EMR menetapkan nomor versi ke 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 berikan, Amazon akan EMR me-reset konfigurasi yang dimodifikasi secara manual, seperti konfigurasi yang telah Anda modifikasi saat terhubung ke cluster Anda menggunakanSSH, ke default cluster untuk grup instance yang ditentukan.

Pertimbangan saat Anda melakukan konfigurasi ulang grup instans

Tindakan konfigurasi ulang

Saat Anda mengirimkan permintaan konfigurasi ulang menggunakan EMR konsol Amazon, AWS Command Line Interface (AWS CLI), atau AWS SDK, Amazon EMR memeriksa file konfigurasi on-cluster yang ada. Jika ada perbedaan antara konfigurasi yang ada dan file yang Anda berikan, Amazon EMR memulai tindakan konfigurasi ulang, memulai ulang beberapa aplikasi, dan mengatur ulang konfigurasi yang dimodifikasi secara manual, seperti konfigurasi yang telah Anda modifikasi saat terhubung ke cluster Anda menggunakanSSH, ke default cluster untuk grup instans yang 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 EMR Rilis Amazon 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 mengkonfigurasi ulang instance di grup instans Tugas dan Inti. 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 YARN pekerjaan selama YARN restart, Anda dapat membuat EMR klaster Amazon dengan beberapa node master atau disetel yarn.resourcemanager.recovery.enabled ke true dalam klasifikasi yarn-site konfigurasi Anda. Untuk informasi selengkapnya tentang penggunaan beberapa node master, lihat Ketersediaan tinggi YARN ResourceManager.

Validasi aplikasi

Amazon EMR memeriksa bahwa setiap aplikasi di cluster berjalan setelah proses restart konfigurasi ulang. Jika ada aplikasi yang tidak tersedia, maka operasi konfigurasi ulang secara keseluruhan gagal. Jika operasi konfigurasi ulang gagal, Amazon EMR 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 konfigurasi ulangAPI.

  • Gabungkan. Metode konfigurasi ulang yang didukung untuk Amazon EMR merilis 5.35.0 dan 6.6.0 dan yang lebih baru, kecuali dari EMR konsol 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.

Batasan

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

  • YARNNon-aplikasi dapat gagal selama restart atau menyebabkan masalah cluster, terutama jika aplikasi tidak dikonfigurasi dengan benar. Cluster yang mendekati memori dan CPU penggunaan 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 mengonfigurasi ulang grup instans, Amazon EMR memulai ulang aplikasi untuk memungkinkan konfigurasi baru diterapkan. 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, Amazon EMR 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 yang lebih baru, dan tidak didukung di Amazon EMR versi 5.21.0 atau 5.22.0.

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

  • Amazon EMR mendukung permintaan konfigurasi ulang aplikasi pada EMR cluster 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 KMS konfigurasi Hadoop apa pun tidak didukung pada EMR klaster Amazon dengan beberapa node utama.

  • 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

EMRKonsol Amazon tidak mendukung konfigurasi ulang tipe Gabungan.

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

  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 tarik-turun Konfigurasi ulang, pilih Edit dalam tabel atau Edit dalam JSON file.

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

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

    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.

Mengkonfigurasi ulang grup instance 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 referensi JSON file konfigurasi yang dipanggil instanceGroups.json untuk mengedit properti pemeriksa kesehatan YARN NodeManager disk 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 YARN NodeManager virtual. Konfigurasi juga menyertakan nilai yang ditentukan sebelumnya untuk pemeriksa kesehatan YARN NodeManager disk 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, Timpa 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 YARN NodeManager virtual. Karena ini adalah konfigurasi ulang tipe Gabungan, itu tidak menimpa nilai yang ditentukan sebelumnya untuk pemeriksa kesehatan YARN NodeManager disk.

  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 YARN NodeManager disk 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

Contoh berikut JSON menunjukkan cara mengkonfigurasi ulang dan mengubah ukuran grup instance 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" } } ] } ]

Mengkonfigurasi ulang grup instance 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 node di mana konfigurasi ulang telah gagal. Untuk petunjuknya, lihat Connect ke instans Linux Anda di Panduan EC2 Pengguna Amazon 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. reportsDirektori mengatur log berdasarkan nomor versi konfigurasi ulang, identifier unik universal (), alamat IP EC2 instans AmazonUUID, dan stempel waktu. Setiap laporan adalah YAML file 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:

    amzn-s3-demo-bucket/elasticmapreduce/<cluster id>/node/<instance id>/provision-node/
  4. Buka folder reports dan cari simpul yang menyediakan laporan untuk konfigurasi ulang Anda. reportsFolder mengatur log berdasarkan nomor versi konfigurasi ulang, identifier unik universal (), alamat IP EC2 instans AmazonUUID, dan stempel waktu. Setiap laporan adalah YAML file 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 di cluster Anda.

Contoh berikut menunjukkan informasi kesalahan untuk versi EMR rilis Amazon 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 merilis versi 5.32.0 dan 6.2.0 dan yang lebih baru 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: