

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
<a name="enhanced-custom-metrics"></a>

## Ikhtisar
<a name="enhanced-custom-metrics-overview"></a>

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:

1. Konfigurasikan CloudWatch agen untuk mengirim EMR pada log EC2 CloudWatch

1. Tambahkan Hadoop, YARN, dan HBase metrik khusus melalui klasifikasi

1. Pantau metrik melalui dasbor bawaan

1. Lacak log klaster melalui grup CloudWatch log

## Prasyarat dan Latar Belakang
<a name="enhanced-custom-metrics-prerequisites"></a>

Secara default, Amazon EMR mengirimkan metrik dasar ke CloudWatch setiap lima menit tanpa biaya tambahan. Dengan EMR Release 7.0\$1, 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
<a name="enhanced-custom-metrics-agent-config"></a>

Untuk menangkap log EMR CloudWatch, buat file *cloudwatch-config.json* yang menentukan file log mana yang akan dikumpulkan:

**cloudwatch-config.json**

```
{
  "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
<a name="enhanced-custom-metrics-bootstrap-script"></a>

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
<a name="enhanced-custom-metrics-create-bootstrap"></a>

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 /opt/aws/amazon-cloudwatch-agent/etc/stdout_log_config.json

# Start the agent with the created config file
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a append-config -c file:/opt/aws/amazon-cloudwatch-agent/etc/stdout_log_config.json

# Restart CW Agent
sudo systemctl restart amazon-cloudwatch-agent

# 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
```

Ganti ember sampel dengan nama bucket Anda.

### Catatan Konfigurasi Penting
<a name="enhanced-custom-metrics-configuration-note"></a>

**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.

Skrip 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
<a name="enhanced-custom-metrics-custom-metric-classifications"></a>

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
<a name="enhanced-custom-metrics-configuring-custom-metrics"></a>

Anda dapat menerapkan koleksi metrik kustom dengan dua cara:
+ Selama pembuatan cluster untuk cluster baru
+ Sebagai konfigurasi ulang untuk cluster yang ada melalui konsol EMR

### Membuat File Klasifikasi
<a name="enhanced-custom-metrics-creating-classification-file"></a>

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
<a name="enhanced-custom-metrics-implementation-steps"></a>

1. Buat file JSON dengan klasifikasi metrik yang Anda inginkan.

1. Sesuaikan metrik berdasarkan persyaratan pemantauan Anda.

1. Simpan file dan unggah ke bucket S3 Anda.

1. Referensikan file ini saat membuat cluster baru atau mengkonfigurasi ulang yang sudah ada.

### Praktik Terbaik
<a name="enhanced-custom-metrics-best-practices"></a>
+ 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
<a name="enhanced-custom-metrics-emr-cloudwatch-deployment"></a>

Ikuti langkah-langkah berikut untuk membuat klaster EMR Amazon yang secara otomatis mengirimkan log dan metrik khusus ke: CloudWatch

### Langkah 1: Aktifkan CloudWatch Agen
<a name="enhanced-custom-metrics-enable-cloudwatch-agent"></a>

Saat membuat klaster EMR Anda melalui AWS Management Console:

1. Arahkan ke bagian **Aplikasi** selama pembuatan klaster.

1. Pilih kotak centang untuk aplikasi utama Anda (Hadoop, Spark, dll.).

1. Gulir untuk menemukan dan memilih opsi ** CloudWatch Agen Amazon**.

1. 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.

![\[Bundel aplikasi\]](http://docs.aws.amazon.com/id_id/emr/latest/ManagementGuide/images/metrics_name_applications.png)


**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
<a name="enhanced-custom-metrics-add-bootstrap-action"></a>

Untuk mengonfigurasi CloudWatch agen untuk mengumpulkan dan meneruskan file log tertentu ke CloudWatch:

1. Di wizard pembuatan cluster EMR, navigasikan ke bagian Tindakan **Bootstrap**

1. Klik **Tambahkan tindakan bootstrap**

1. Pilih **Tindakan kustom** dari menu tarik-turun

1. Berikan nama untuk tindakan bootstrap Anda (misalnya, **Konfigurasi CloudWatch Agen**)

1. Di bidang **Lokasi skrip**, masukkan jalur S3 ke cloudwatch-agent-bootstrap skrip.sh Anda (misalnya, s3:///your-bucket-name.sh) cloudwatch-agent-bootstrap

1. Klik **Add** 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\]](http://docs.aws.amazon.com/id_id/emr/latest/ManagementGuide/images/metrics_bootstrap_actions.png)


### Langkah 3: Konfigurasikan Koleksi Metrik Kustom
<a name="enhanced-custom-metrics-configure-custom"></a>

Untuk mengaktifkan koleksi Hadoop kustom, YARN, atau HBase metrik di luar set default:

1. Di wizard pembuatan cluster EMR, navigasikan ke bagian **Konfigurasi**.

1. Klik tombol **Edit konfigurasi** untuk memperluas opsi konfigurasi.

1. Pilih **Muat JSON dari Amazon** S3 pilihan dari dropdown metode konfigurasi.

1. Masukkan jalur URI S3 ke file klasifikasi metrik kustom Anda (misalnya, s3://amzn-s3-demo-bucket1/ emr-metrics-classification .json).

1. Klik **Load** untuk mengurai konfigurasi.

1. Verifikasi bahwa konfigurasi muncul dengan benar di antarmuka konsol.

1. 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\]](http://docs.aws.amazon.com/id_id/emr/latest/ManagementGuide/images/metrics_software_setting.png)


### Memperbarui Konfigurasi Metrik untuk Menjalankan Cluster
<a name="enhanced-custom-metrics-update-configuration"></a>

Anda dapat mengubah setelan pengumpulan metrik untuk klaster EMR yang ada tanpa mengganggu operasi dengan mengikuti langkah-langkah berikut:

1. Arahkan ke klaster EMR aktif Anda di AWS Management Console.

1. Pilih tab **Konfigurasi** di tampilan detail cluster.

1. Temukan bagian **Konfigurasi grup Instance**.

1. Klik tombol **Konfigurasi ulang** untuk mengubah pengaturan.

1. Pilih **Muat JSON dari Amazon** S3 atau langsung edit konfigurasi.

1. Masukkan lokasi file klasifikasi metrik Anda yang diperbarui atau buat perubahan di editor.

1. 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.

![\[Configurations tab showing klaster and instance group settings with options to view JSON and reconfigure.\]](http://docs.aws.amazon.com/id_id/emr/latest/ManagementGuide/images/metrics_cluster_config.png)


## Memvalidasi integrasi Anda CloudWatch
<a name="enhanced-custom-metrics-validating-cloudwatch"></a>

Setelah menyelesaikan langkah-langkah konfigurasi, saatnya untuk memverifikasi bahwa pengaturan pemantauan Anda berfungsi dengan benar:

### Langkah 1: Menyebarkan Cluster EMR Anda
<a name="enhanced-custom-metrics-deploy-emr-cluster"></a>

1. Tinjau semua pengaturan konfigurasi untuk akurasi.

1. Pastikan tindakan bootstrap dan file klasifikasi direferensikan dengan benar.

1. Klik **Buat klaster** untuk meluncurkan lingkungan EMR Anda.

1. Tunggu cluster mencapai status **Running** (biasanya 5-15 menit).

### Langkah 2: Jalankan Aplikasi Uji
<a name="enhanced-custom-metrics-execute-test"></a>

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
<a name="enhanced-custom-metrics-accessing-emr-logs"></a>

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
<a name="enhanced-custom-metrics-viewing-log-groups"></a>

1. Arahkan ke CloudWatch konsol di AWS Management Console.

1. Pilih **Grup log** dari panel navigasi kiri.

1. 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
<a name="enhanced-custom-metrics-working-with-log-data"></a>
+ *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
<a name="enhanced-custom-metrics-log-retention"></a>

**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
<a name="viewing-custom-metrics"></a>

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
<a name="accessing-custom-metrics"></a>

1. Arahkan ke klaster EMR Anda di AWS Management Console.

1. Pilih tab **Monitoring** di halaman detail cluster.

1. Temukan dropdown **klasifikasi metrik Filter** di dekat bagian atas dasbor pemantauan.

1. 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 **HBase**untuk 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
<a name="working-with-metric-visualizations"></a>
+ *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.

![\[EMR klaster monitoring dashboard showing CloudWatch metrics and filter options.\]](http://docs.aws.amazon.com/id_id/emr/latest/ManagementGuide/images/metrics_cloudwatch_metrics.png)
