Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Amazon EMR aktif EC2 - Pemantauan yang Ditingkatkan dengan CloudWatch menggunakan metrik dan log khusus
Gambaran Umum
Amazon EMR menyediakan kemampuan pemrosesan data besar yang kuat dan hemat biaya. Untuk memaksimalkan kinerja dan pemanfaatan sumber daya, pemantauan yang efektif sangat penting. Amazon CloudWatch menawarkan observabilitas komprehensif untuk kluster EMR, memungkinkan Anda melacak metrik dan log secara real-time. Dokumen ini menguraikan cara:
-
Konfigurasikan CloudWatch agen untuk mengirim EMR pada log EC2 CloudWatch
-
Tambahkan Hadoop, YARN, dan HBase metrik khusus melalui klasifikasi
-
Pantau metrik melalui dasbor bawaan
-
Lacak log klaster melalui grup CloudWatch log
Prasyarat dan Latar Belakang
Secara default, Amazon EMR mengirimkan metrik dasar ke CloudWatch setiap lima menit tanpa biaya tambahan. Dengan EMR Release 7.0+, Anda dapat menyebarkan Agen ke: CloudWatch
-
Kumpulkan 34 metrik terperinci tambahan pada interval satu menit (dikenakan biaya tambahan)
-
Kumpulkan metrik dari semua node cluster
-
Agregat data pada node utama sebelum dikirim ke CloudWatch
-
Akses metrik melalui tab Pemantauan atau Konsol konsol EMR CloudWatch
EMR 7.1 memperluas kemampuan ini, memungkinkan Anda mengonfigurasi agen untuk menangkap metrik khusus dari Hadoop, YARN, dan komponen. HBase Untuk lingkungan yang menggunakan Prometheus, metrik dapat diteruskan ke Amazon Managed Service untuk Prometheus.
CloudWatch Konfigurasi Agen untuk Log
Untuk menangkap log EMR CloudWatch, buat file cloudwatch-config.json yang menentukan file log mana yang akan dikumpulkan:
cloudwatch-config.json
{ "agent": {"metrics_collection_interval":60,"logfile":"/var/log/emr-cluster-metrics/amazon-cloudwatch-agent/amazon-cloudwatch-agent.log","run_as_user":"****","omit_hostname":true}, "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/mnt/var/log/hadoop-yarn/hadoop-yarn-resourcemanager-*", "log_group_name": "/emr/yarn/resourcemnger", "log_stream_name": "{instance_id}", "publish_multi_logs" : true }, { "file_path": "/var/log/hadoop-hdfs/hadoop-hdfs-namenode-*", "log_group_name": "/emr/hdfs/namenode", "log_stream_name": "{instance_id}", "publish_multi_logs" : true } ] } } } }
Bootstrap Script untuk Konfigurasi CloudWatch Agen
Untuk menerapkan CloudWatch konfigurasi kustom Anda ke node EMR, buat skrip bootstrap yang akan memulai ulang CloudWatch agen dengan pengaturan Anda. Skrip ini memastikan agen berjalan dengan parameter pengumpulan log spesifik Anda setelah penyediaan klaster.
Membuat Script Bootstrap
Buat file bernama cloudwatch-agent-bootstrap.sh dengan konten berikut:
#!/bin/bash set -xe EMR_SECONDARY_BA_SCRIPT=$(cat << 'EOF' while true; do NODEPROVISIONSTATE=$(sed -n '/localInstance [{]/,/[}]/ {/nodeProvisionCheckinRecord [{]/,/[}]/ {/status:/ p}}' /emr/instance-controller/lib/info/job-flow-state.txt | awk '{ print $2 }') if [ "$NODEPROVISIONSTATE" == "SUCCESSFUL" ]; then sleep 10 echo "Running my post provision bootstrap" NODETYPE=$(cat /mnt/var/lib/instance-controller/extraInstanceData.json | jq -r '.instanceRole' | awk '{print tolower($0)}') # Copy config file on the instance sudo aws s3 cp s3://
amzn-s3-demo-bucket1
>/cloudwatch-config.json /etc/emr-cluster-metrics/amazon-cloudwatch-agent/conf/emr-amazon-cloudwatch-agent.json # Stop the current agent sudo /usr/bin/amazon-cloudwatch-agent-ctl -a stop # Start the agent with the created config file sudo /usr/bin/amazon-cloudwatch-agent-ctl -a fetch-config -s -m ec2 -c file:/etc/emr-cluster-metrics/amazon-cloudwatch-agent/conf/emr-amazon-cloudwatch-agent.json # Status CW Agent echo "Status CW Agent" sudo /usr/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status exit fi sleep 10 done EOF ) echo "${EMR_SECONDARY_BA_SCRIPT}" | tee -a /tmp/emr-secondary-ba.sh chmod u+x /tmp/emr-secondary-ba.sh /tmp/emr-secondary-ba.sh > /tmp/emr-secondary-ba.log 2>&1 & exit 0
Catatan Konfigurasi Penting
penting
Sebelum mengunggah skrip, ganti <amzn-s3-demo-bucket1>
dengan nama sebenarnya dari bucket S3 tempat Anda menyimpan file cloudwatch-config.json dari langkah sebelumnya. Ini memastikan skrip bootstrap dapat mengambil file konfigurasi Anda selama inisialisasi cluster.
Script bootstrap ini akan:
-
Tunggu penyediaan node selesai
-
Unduh CloudWatch konfigurasi kustom Anda
-
Hentikan CloudWatch agen yang sedang berjalan
-
Mulai ulang agen dengan konfigurasi spesifik Anda
-
Catat status agen untuk pemecahan masalah
Klasifikasi Metrik Kustom untuk Hadoop, YARN, dan HBase
Selain CloudWatch metrik default, Anda dapat meningkatkan kemampuan pemantauan dengan mengonfigurasi metrik khusus aplikasi khusus untuk komponen cluster EMR Anda. API konfigurasi Amazon EMR menyediakan cara yang fleksibel untuk menentukan dengan tepat metrik mana yang ingin Anda kumpulkan.
Mengkonfigurasi Metrik Kustom
Anda dapat menerapkan koleksi metrik khusus dengan dua cara:
-
Selama pembuatan cluster untuk cluster baru
-
Sebagai konfigurasi ulang untuk cluster yang ada melalui konsol EMR
Membuat File Klasifikasi
File klasifikasi menentukan metrik komponen spesifik mana yang harus dikumpulkan dari cluster Anda. Di bawah ini adalah contoh struktur untuk mengumpulkan metrik Hadoop kustom:
[ { "Classification": "emr-metrics", "Configurations": [ { "Classification": "emr-hadoop-hdfs-datanode-metrics", "Properties": { "Hadoop:service=DataNode,name=DataNodeActivity-*": "DatanodeNetworkErrors,TotalReadTime,TotalWriteTime,BytesRead,BytesWritten,RemoteBytesRead,RemoteBytesWritten,ReadBlockOpNumOps,ReadBlockOpAvgTime,WriteBlockOpNumOps,WriteBlockOpAvgTime", "otel.metric.export.interval": "30000" } }, { "Classification": "emr-hadoop-yarn-nodemanager-metrics", "Properties": { "Hadoop:service=NodeManager,name=JvmMetrics": "MemNonHeapUsedM,MemNonHeapCommittedM,MemNonHeapMaxM,MemHeapUsedM,MemHeapCommittedM,MemHeapMaxM,MemMaxM", "Hadoop:service=NodeManager,name=NodeManagerMetrics": "ContainerCpuUtilization,NodeCpuUtilization,ContainersCompleted,ContainersFailed,ContainersKilled,ContainersLaunched,ContainersRolledBackOnFailure,ContainersRunning,ContainerUsedMemGB,ContainerUsedVMemGB,ContainerLaunchDurationNumOps,ContainerLaunchDurationAvgTime", "otel.metric.export.interval": "20000" } } ], "Properties": {} } ]
Langkah-langkah Implementasi
-
Buat file JSON dengan klasifikasi metrik yang Anda inginkan.
-
Sesuaikan metrik berdasarkan persyaratan pemantauan Anda.
-
Simpan file dan unggah ke bucket S3 Anda.
-
Referensikan file ini saat membuat cluster baru atau mengkonfigurasi ulang yang sudah ada.
Praktik Terbaik
-
Hanya kumpulkan metrik yang memberikan wawasan bermakna untuk beban kerja Anda.
-
Pertimbangkan interval pengumpulan metrik berdasarkan kebutuhan pemantauan Anda.
-
Tinjau AWS dokumentasi untuk daftar lengkap metrik yang tersedia untuk setiap komponen.
-
Kelompokkan metrik terkait dalam klasifikasi yang sama untuk organisasi yang lebih baik.
Pendekatan ini memungkinkan Anda untuk memfokuskan pemantauan Anda pada metrik paling penting untuk aplikasi EMR spesifik Anda, memberi Anda visibilitas yang lebih dalam ke kinerja cluster.
Menyebarkan Cluster EMR dengan Integrasi CloudWatch
Ikuti langkah-langkah berikut untuk membuat klaster EMR Amazon yang secara otomatis mengirimkan log dan metrik khusus ke: CloudWatch
Langkah 1: Aktifkan CloudWatch Agen
Saat membuat klaster EMR Anda melalui AWS Management Console:
-
Arahkan ke bagian Aplikasi selama pembuatan klaster.
-
Pilih kotak centang untuk aplikasi utama Anda (Hadoop, Spark, dll.).
-
Gulir untuk menemukan dan memilih opsi CloudWatch Agen Amazon.
-
Ini memungkinkan agen di klaster Anda, yang penting untuk mengumpulkan metrik dan log yang disempurnakan.
CloudWatch Agen akan diinstal pada semua node di cluster Anda, memungkinkannya mengumpulkan metrik sistem dan aplikasi pada interval yang dikonfigurasi.
Nama dan aplikasi

Membuat cluster dan menampilkan bundel yang tersedia.
catatan
CloudWatch Agen tersedia dalam rilis EMR 7.0 dan yang lebih baru. Mengaktifkan komponen ini diperlukan untuk pengumpulan metrik kustom dan penerusan log yang dijelaskan dalam panduan ini.
Langkah 2: Tambahkan Tindakan Bootstrap untuk Koleksi Log
Untuk mengonfigurasi CloudWatch agen untuk mengumpulkan dan meneruskan file log tertentu ke CloudWatch:
-
Di wizard pembuatan cluster EMR, navigasikan ke bagian Tindakan Bootstrap
-
Klik Tambahkan tindakan bootstrap
-
Pilih Tindakan kustom dari menu tarik-turun
-
Berikan nama untuk tindakan bootstrap Anda (misalnya, Konfigurasi CloudWatch Agen)
-
Di bidang Lokasi skrip, masukkan jalur S3 ke cloudwatch-agent-bootstrap skrip.sh Anda (misalnya, s3:///your-bucket-name.sh) cloudwatch-agent-bootstrap
-
Klik Tambah untuk menyimpan aksi bootstrap
Tindakan bootstrap ini akan dijalankan selama startup cluster, memastikan bahwa dikonfigurasi dengan benar dengan pengaturan khusus Anda untuk mengumpulkan dan meneruskan file log yang ditentukan dalam file konfigurasi Anda. CloudWatchagent
Agen akan secara otomatis mulai mengumpulkan log setelah node disediakan, memberikan visibilitas mendekati waktu nyata ke dalam operasi klaster Anda melalui Log. CloudWatch
Tindakan bootstrap

Menggunakan tindakan bootstrap.
Langkah 3: Konfigurasikan Koleksi Metrik Kustom
Untuk mengaktifkan koleksi Hadoop kustom, YARN, atau HBase metrik di luar set default:
-
Di wizard pembuatan cluster EMR, navigasikan ke bagian Konfigurasi.
-
Klik tombol Edit konfigurasi untuk memperluas opsi konfigurasi.
-
Pilih Load JSON dari Amazon S3 pilihan dari dropdown metode konfigurasi.
-
Masukkan jalur URI S3 ke file klasifikasi metrik kustom Anda (misalnya, s3://amzn-s3-demo-bucket1/ emr-metrics-classification .json).
-
Klik Load untuk mengurai konfigurasi.
-
Verifikasi bahwa konfigurasi muncul dengan benar di antarmuka konsol.
-
Klik Simpan perubahan untuk menerapkan konfigurasi metrik ini ke klaster Anda.
Langkah ini menginstruksikan CloudWatch agen untuk mengumpulkan metrik komponen tertentu yang ditentukan dalam file klasifikasi Anda. Metrik akan dikumpulkan pada interval yang ditentukan dalam konfigurasi Anda dan dipublikasikan ke CloudWatch, di mana mereka dapat divisualisasikan dan dianalisis.
Metrik khusus memberikan wawasan yang lebih dalam tentang karakteristik kinerja klaster Anda, memungkinkan pemantauan dan pemecahan masalah aplikasi EMR yang lebih tepat.
Pengaturan perangkat lunak

Ganti konfigurasi default.
Memperbarui Konfigurasi Metrik untuk Menjalankan Cluster
Anda dapat mengubah setelan pengumpulan metrik untuk klaster EMR yang ada tanpa mengganggu operasi dengan mengikuti langkah-langkah berikut:
-
Arahkan ke klaster EMR aktif Anda di AWS Management Console.
-
Pilih tab Konfigurasi di tampilan detail cluster.
-
Temukan bagian Konfigurasi grup Instance.
-
Klik tombol Konfigurasi ulang untuk mengubah pengaturan.
-
Pilih Muat JSON dari Amazon S3 atau langsung edit konfigurasi.
-
Masukkan lokasi file klasifikasi metrik Anda yang diperbarui atau buat perubahan di editor.
-
Terapkan perubahan untuk memperbarui perilaku pengumpulan metrik.
Kemampuan konfigurasi ulang ini memungkinkan Anda untuk menyempurnakan pendekatan pemantauan Anda saat persyaratan beban kerja Anda berkembang. CloudWatch Agen akan secara otomatis beradaptasi dengan konfigurasi baru, mengumpulkan kumpulan metrik yang diperbarui tanpa memerlukan restart cluster atau downtime.
penting
Perubahan konfigurasi mungkin memakan waktu beberapa menit untuk menyebar di semua node di cluster. Lanjutkan memantau CloudWatch dasbor Anda untuk mengonfirmasi metrik baru muncul seperti yang diharapkan.
Konfigurasi klaster

Konfigurasi grup instans.
Memvalidasi integrasi Anda CloudWatch
Setelah menyelesaikan langkah-langkah konfigurasi, saatnya untuk memverifikasi bahwa pengaturan pemantauan Anda berfungsi dengan benar:
Langkah 1: Menyebarkan Cluster EMR Anda
-
Tinjau semua pengaturan konfigurasi untuk akurasi.
-
Pastikan tindakan bootstrap dan file klasifikasi direferensikan dengan benar.
-
Klik Buat klaster untuk meluncurkan lingkungan EMR Anda.
-
Tunggu cluster mencapai status Running (biasanya 5-15 menit).
Langkah 2: Jalankan Aplikasi Uji
Kirimkan beberapa aplikasi uji Spark untuk menghasilkan metrik yang bermakna:
-
Jalankan pekerjaan Spark sederhana yang memproses data sampel.
-
Jalankan tugas analitik yang berjalan lebih lama untuk mengamati pemanfaatan sumber daya.
-
Uji konfigurasi aplikasi yang berbeda untuk membandingkan metrik kinerja.
Setelah aplikasi Anda selesai (atau saat sedang berjalan):
-
Arahkan ke CloudWatch konsol.
-
Periksa grup log yang dikonfigurasi untuk log aplikasi.
-
Periksa dasbor metrik untuk mengamati CPU, memori, dan metrik khusus aplikasi.
-
Verifikasi bahwa metrik kustom yang ditentukan dalam file klasifikasi Anda muncul di CloudWatch.
Proses validasi ini mengonfirmasi bahwa CloudWatch integrasi Anda menangkap log dan metrik dengan benar, memberi Anda visibilitas komprehensif ke dalam kinerja dan perilaku aplikasi klaster EMR Anda.
Mengakses Log EMR di Grup Log CloudWatch
Setelah kluster EMR Anda berjalan dan CloudWatch agen dikonfigurasi dengan benar, log aplikasi dan sistem Anda akan tersedia di CloudWatch Log. Ikuti langkah-langkah ini untuk mengakses dan menganalisisnya:
Melihat Grup Log Anda
-
Arahkan ke CloudWatch konsol di AWS Management Console.
-
Pilih Grup log dari panel navigasi kiri.
-
Cari grup log yang dibuat oleh konfigurasi Anda, seperti:
-
/emr/yarn/resourcemngeruntuk ResourceManager log YARN.
-
/emr/hdfs/namenodeuntuk NameNode log HDFS.
-
Setiap grup log tambahan yang ditentukan dalam file konfigurasi Anda.
-
Setiap grup log berisi aliran log yang diatur oleh ID instance, memungkinkan Anda melacak log ke node tertentu di cluster Anda.
Bekerja dengan Data Log
-
Cari Data Log: Gunakan Wawasan CloudWatch Log untuk melakukan kueri terstruktur di seluruh grup log Anda.
-
Buat Metrik: Ekstrak metrik dari pola log untuk membuat metrik khusus CloudWatch .
-
Set Alerts: Konfigurasikan alarm berdasarkan pola kesalahan tertentu atau frekuensi log.
-
Ekspor Log: Unduh log untuk analisis atau pengarsipan offline.
Retensi Log
catatan
Secara default, log disimpan selama 30 hari. Anda dapat mengubah kebijakan penyimpanan untuk setiap grup log untuk menyimpan log untuk jangka waktu yang lebih lama jika diperlukan untuk tujuan kepatuhan atau analisis.
CloudWatch Log menyediakan lokasi terpusat untuk semua data log EMR Anda, menghilangkan kebutuhan SSH ke node cluster individual untuk memecahkan masalah atau menganalisis perilaku aplikasi.
Melihat Metrik Kustom di Dasbor Pemantauan EMR
Setelah klaster EMR Anda berjalan dengan CloudWatch agen dan konfigurasi metrik kustom, Anda dapat dengan mudah memantau metrik ini secara langsung di konsol EMR:
Mengakses Metrik Kustom Anda
-
Arahkan ke klaster EMR Anda di AWS Management Console.
-
Pilih tab Monitoring di halaman detail cluster.
-
Temukan dropdown klasifikasi metrik Filter di dekat bagian atas dasbor pemantauan.
-
Gunakan filter ini untuk memilih kategori metrik tertentu:
-
Pilih HDFS untuk dilihat NameNode dan DataNode metrik.
-
Pilih YARN untuk melihat ResourceManager dan metrik kontainer.
-
Pilih HBaseuntuk data kinerja HBase -spesifik.
-
Pilih klasifikasi metrik khusus yang Anda tentukan.
-
Dasbor akan diperbarui secara dinamis untuk menampilkan grafik untuk metrik pilihan Anda, menunjukkan tren kinerja dari waktu ke waktu.
Bekerja dengan Visualisasi Metrik
-
Sesuaikan rentang waktu: Ubah jendela waktu untuk melihat aktivitas terkini atau tren historis.
-
Bandingkan metrik: Tampilkan beberapa metrik terkait side-by-side untuk analisis korelasi.
-
Fitur zoom: Fokus pada periode waktu tertentu di mana anomali atau pola muncul.
-
Segarkan data: Perbarui visualisasi dengan data metrik terbaru dalam waktu dekat.
Pendekatan pemantauan terintegrasi ini memungkinkan Anda melacak metrik EMR standar dan metrik khusus Anda di dasbor terpadu, sehingga lebih mudah untuk mengidentifikasi masalah kinerja, kendala sumber daya, atau kemacetan aplikasi tanpa meninggalkan konsol EMR.
CloudWatch metrik

Memfilter klasifikasi metrik.