Pantau metrik Spark dengan Amazon Managed Service untuk Prometheus - Amazon EMR

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

Pantau metrik Spark dengan Amazon Managed Service untuk Prometheus

Dengan Amazon EMR merilis 7.1.0 dan yang lebih tinggi, Anda dapat mengintegrasikan Tanpa EMR Server dengan Amazon Managed Service untuk Prometheus guna mengumpulkan metrik Apache Spark untuk pekerjaan dan aplikasi Tanpa Server. EMR Integrasi ini tersedia saat Anda mengirimkan pekerjaan atau membuat aplikasi menggunakan AWS konsol, EMR Tanpa ServerAPI, atau. AWS CLI

Prasyarat

Sebelum Anda dapat mengirimkan metrik Spark Anda ke Amazon Managed Service untuk Prometheus, Anda harus menyelesaikan prasyarat berikut.

  • Buat Layanan Terkelola Amazon untuk ruang kerja Prometheus. Ruang kerja ini berfungsi sebagai titik akhir konsumsi. Buat catatan yang URL ditampilkan untuk Endpoint - tulis URL jarak jauh. Anda harus menentukan URL kapan Anda membuat aplikasi EMR Tanpa Server Anda.

  • Untuk memberikan akses pekerjaan Anda ke Amazon Managed Service untuk Prometheus untuk tujuan pemantauan, tambahkan kebijakan berikut ke peran pelaksanaan pekerjaan Anda.

    { "Sid": "AccessToPrometheus", "Effect": "Allow", "Action": ["aps:RemoteWrite"], "Resource": "arn:aws:aps:<AWS_REGION>:<AWS_ACCOUNT_ID>:workspace/<WORKSPACE_ID>" }

Pengaturan

Untuk menggunakan AWS konsol untuk membuat aplikasi yang terintegrasi dengan Amazon Managed Service untuk Prometheus
  1. Lihat Memulai Amazon EMR Tanpa Server untuk membuat aplikasi.

  2. Saat Anda membuat aplikasi, pilih Gunakan pengaturan khusus, lalu konfigurasikan aplikasi Anda dengan menentukan informasi ke dalam bidang yang ingin Anda konfigurasikan.

  3. Di bawah Log dan metrik aplikasi, pilih Mengirimkan metrik engine ke Amazon Managed Service for Prometheus, lalu tentukan penulisan jarak jauh Anda. URL

  4. Tentukan pengaturan konfigurasi lain yang Anda inginkan, lalu pilih Buat dan mulai aplikasi.

Gunakan AWS CLI atau Tanpa EMR Server API

Anda juga dapat menggunakan AWS CLI atau EMR Tanpa Server API untuk mengintegrasikan EMR aplikasi Tanpa Server Anda dengan Amazon Managed Service untuk Prometheus saat menjalankan atau perintah. create-application start-job-run

create-application
aws emr-serverless create-application \ --release-label emr-7.1.0 \ --type "SPARK" \ --monitoring-configuration '{ "prometheusMonitoringConfiguration": { "remoteWriteUrl": "https://aps-workspaces.<AWS_REGION>.amazonaws.com/workspaces/<WORKSPACE_ID>/api/v1/remote_write" } }'
start-job-run
aws emr-serverless start-job-run \ --application-id <APPPLICATION_ID> \ --execution-role-arn <JOB_EXECUTION_ROLE> \ --job-driver '{ "sparkSubmit": { "entryPoint": "local:///usr/lib/spark/examples/src/main/python/pi.py", "entryPointArguments": ["10000"], "sparkSubmitParameters": "--conf spark.dynamicAllocation.maxExecutors=10" } }' \ --configuration-overrides '{ "monitoringConfiguration": { "prometheusMonitoringConfiguration": { "remoteWriteUrl": "https://aps-workspaces.<AWS_REGION>.amazonaws.com/workspaces/<WORKSPACE_ID>/api/v1/remote_write" } } }'

Termasuk prometheusMonitoringConfiguration dalam perintah Anda menunjukkan bahwa EMR Tanpa Server harus menjalankan pekerjaan Spark dengan agen yang mengumpulkan metrik Spark dan menuliskannya ke titik akhir Anda untuk remoteWriteUrl Amazon Managed Service for Prometheus. Anda kemudian dapat menggunakan metrik Spark di Amazon Managed Service for Prometheus untuk visualisasi, peringatan, dan analisis.

Properti konfigurasi lanjutan

EMRTanpa server menggunakan komponen dalam nama Spark PrometheusServlet untuk mengumpulkan metrik Spark dan menerjemahkan data kinerja ke dalam data yang kompatibel dengan Amazon Managed Service for Prometheus. Secara default, EMR Tanpa Server menetapkan nilai default di Spark dan mem-parsing metrik driver dan eksekutor saat Anda mengirimkan pekerjaan menggunakan. PrometheusMonitoringConfiguration

Tabel berikut menjelaskan semua properti yang dapat Anda konfigurasikan saat mengirimkan pekerjaan Spark yang mengirimkan metrik ke Amazon Managed Service for Prometheus.

Properti percikan Nilai default Deskripsi
spark.metrics.conf.*.sink.prometheusServlet.class

org.apache.spark.metrics.sink. PrometheusServlet

Kelas yang digunakan Spark untuk mengirim metrik ke Amazon Managed Service untuk Prometheus. Untuk mengganti perilaku default, tentukan kelas kustom Anda sendiri.

spark.metrics.conf.*.source.jvm.class

org.apache.spark.metrics.source. JvmSource

Kelas Spark digunakan untuk mengumpulkan dan mengirim metrik penting dari mesin virtual Java yang mendasarinya. Untuk berhenti mengumpulkan JVM metrik, nonaktifkan properti ini dengan menyetelnya ke string kosong, seperti"". Untuk mengganti perilaku default, tentukan kelas kustom Anda sendiri.

spark.metrics.conf.driver.sink.prometheusServlet.path

/metrik/prometheus

Perbedaan URL yang digunakan Amazon Managed Service untuk Prometheus untuk mengumpulkan metrik dari driver. Untuk mengganti perilaku default, tentukan jalur Anda sendiri. Untuk berhenti mengumpulkan metrik driver, nonaktifkan properti ini dengan menyetelnya ke string kosong, seperti"".

spark.metrics.conf.executor.sink.prometheusServlet.path

/metrics/executor/prometheus

Perbedaan URL yang digunakan Amazon Managed Service untuk Prometheus untuk mengumpulkan metrik dari pelaksana. Untuk mengganti perilaku default, tentukan jalur Anda sendiri. Untuk berhenti mengumpulkan metrik pelaksana, nonaktifkan properti ini dengan menyetelnya ke string kosong, seperti. ""

Untuk informasi selengkapnya tentang metrik Spark, lihat metrik Apache Spark.

Pertimbangan dan batasan

Saat menggunakan Layanan Terkelola Amazon untuk Prometheus untuk mengumpulkan metrik EMR dari Tanpa Server, pertimbangkan pertimbangan dan batasan berikut.

  • Dukungan untuk menggunakan Amazon Managed Service untuk Prometheus EMR dengan Serverless hanya tersedia di tempat Wilayah AWS Amazon Managed Service untuk Prometheus umumnya tersedia.

  • Menjalankan agen untuk mengumpulkan metrik Spark di Amazon Managed Service untuk Prometheus membutuhkan lebih banyak sumber daya dari pekerja. Jika Anda memilih ukuran pekerja yang lebih kecil, seperti satu CPU pekerja v, waktu kerja Anda mungkin meningkat.

  • Support untuk menggunakan Amazon Managed Service untuk Prometheus EMR dengan Serverless hanya tersedia untuk Amazon rilis 7.1.0 dan yang lebih tinggi. EMR

  • Layanan Terkelola Amazon untuk Prometheus harus diterapkan di akun yang sama tempat Anda EMR menjalankan Tanpa Server untuk mengumpulkan metrik.