View a markdown version of this page

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 rilis 7.1.0 dan yang lebih tinggi, Anda dapat mengintegrasikan EMR Serverless dengan Amazon Managed Service for Prometheus untuk mengumpulkan metrik Apache Spark untuk pekerjaan dan aplikasi EMR Serverless. Integrasi ini tersedia saat Anda mengirimkan pekerjaan atau membuat aplikasi menggunakan AWS konsol, API Tanpa Server EMR, atau. AWS CLI

Prasyarat

Sebelum Anda dapat mengirimkan metrik Spark Anda ke Layanan Terkelola Amazon untuk Prometheus, lengkapi prasyarat berikut.

  • Buat ruang kerja Amazon Managed Service untuk Prometheus. Ruang kerja ini berfungsi sebagai titik akhir penyerapan. Catat URL yang ditampilkan untuk Endpoint - remote write URL. Anda harus menentukan URL saat membuat aplikasi EMR Serverless.

  • Untuk memberikan akses pekerjaan Anda ke Amazon Managed Service for Prometheus untuk tujuan pemantauan, tambahkan kebijakan berikut ke peran eksekusi 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 for Prometheus
  1. Lihat Memulai dengan Amazon EMR Serverless untuk membuat aplikasi.

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

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

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

Gunakan API AWS CLI atau EMR Serverless

Anda juga dapat menggunakan API Tanpa Server AWS CLI atau EMR untuk mengintegrasikan aplikasi EMR Serverless Anda dengan Amazon Managed Service for Prometheus saat menjalankan perintah atau. 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 Serverless harus menjalankan tugas Spark dengan agen yang mengumpulkan metrik Spark dan menulisnya ke remoteWriteUrl titik akhir Anda untuk 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

EMR Serverless menggunakan komponen dalam Spark bernama PrometheusServlet untuk mengumpulkan metrik Spark dan menerjemahkan data kinerja menjadi data yang kompatibel dengan Amazon Managed Service for Prometheus. Secara default, EMR Serverless menetapkan nilai default di Spark dan mengurai metrik driver dan pelaksana saat Anda mengirimkan pekerjaan menggunakan. PrometheusMonitoringConfiguration

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

Properti Spark 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 for Prometheus. Untuk mengganti perilaku default, tentukan kelas kustom Anda sendiri.

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

org.apache.spark.metrics.source. JvmSource

Kelas yang digunakan Spark untuk mengumpulkan dan mengirim metrik penting dari mesin virtual Java yang mendasarinya. Untuk berhenti mengumpulkan metrik JVM, 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

/metrics/prometheus

URL berbeda yang digunakan Amazon Managed Service for 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

URL berbeda yang digunakan Amazon Managed Service for 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 Amazon Managed Service for Prometheus untuk mengumpulkan metrik dari EMR Serverless, pertimbangkan pertimbangan dan batasan berikut.

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

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

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

  • Amazon Managed Service for Prometheus harus digunakan di akun yang sama tempat Anda menjalankan EMR Serverless untuk mengumpulkan metrik.