Untuk meningkatkan efisiensi aplikasi Spark, penting untuk memantau kinerja dan perilakunya. Dalam postingan ini, kami mendemonstrasikan cara memublikasikan metrik Spark terperinci dari Amazon ESDM untuk amazoncloudwatch. Hal ini akan memberi Anda kemampuan untuk mengidentifikasi hambatan sekaligus mengoptimalkan pemanfaatan sumber daya.
CloudWatch memberikan solusi pemantauan yang kuat, terukur, dan hemat biaya untuk sumber daya dan aplikasi AWS, dengan opsi penyesuaian yang kuat dan integrasi yang lancar dengan layanan AWS lainnya. Secara default, Amazon EMR mengirimkan metrik dasar ke CloudWatch untuk melacak aktivitas dan kesehatan klaster. Sistem metrik Spark yang dapat dikonfigurasi memungkinkan metrik dikumpulkan di berbagai sink, termasuk file HTTP, JMX, dan CSV, namun konfigurasi tambahan diperlukan agar Spark dapat mempublikasikan metrik ke CloudWatch.
Ikhtisar solusi
Solusi ini mencakup konfigurasi Spark untuk mengirim metrik ke sink kustom. Sink kustom hanya mengumpulkan metrik yang ditentukan dalam file Metricfilter.json. Ini menggunakan agen CloudWatch untuk mempublikasikan metrik ke namespace Cloudwatch kustom. Skrip tindakan bootstrap yang disertakan bertanggung jawab untuk menginstal dan mengonfigurasi agen CloudWatch dan pustaka metrik di Cloud komputasi elastis Amazon (Amazon EC2) Mesin virtual EMR. Dasbor CloudWatch dapat memberikan wawasan instan tentang kinerja suatu aplikasi.
Diagram berikut mengilustrasikan arsitektur solusi dan alur kerja.
Alur kerja meliputi langkah-langkah berikut:
- Pengguna memulai pekerjaan Spark EMR, membuat langkah pada klaster EMR. Dengan Apache Spark, beban kerja didistribusikan ke berbagai node di klaster EMR.
- Di setiap node (instans EC2) klaster, pustaka Spark menangkap dan mengirimkan data metrik ke agen CloudWatch, yang mengumpulkan data metrik sebelum mengirimkannya ke CloudWatch setiap detik 30.
- Pengguna dapat melihat metrik dengan mengakses namespace kustom di konsol CloudWatch.
Kami menyediakan Formasi AWS Cloud template di posting ini sebagai panduan umum. Templat ini menunjukkan cara mengonfigurasi agen CloudWatch di Amazon EMR untuk mendorong metrik Spark ke CloudWatch. Anda dapat meninjau dan menyesuaikannya sesuai kebutuhan untuk menyertakan konfigurasi keamanan Amazon EMR Anda. Sebagai praktik terbaik, kami merekomendasikan untuk menyertakan konfigurasi keamanan Amazon EMR Anda dalam templat mengenkripsi data dalam perjalanan.
Anda juga harus menyadari bahwa beberapa sumber daya yang disebarkan oleh tumpukan ini dikenakan biaya jika tetap digunakan. Selain itu, Metrik ESDM tidak dikenakan biaya CloudWatch. Namun, metrik khusus dikenakan biaya berdasarkan harga metrik CloudWatch. Untuk informasi lebih lanjut, lihat Harga Amazon CloudWatch.
Di bagian selanjutnya, kita melalui langkah-langkah berikut:
- Buat dan unggah pustaka metrik, skrip instalasi, dan definisi filter ke Layanan Penyimpanan Sederhana Amazon (Amazon S3).
- Gunakan template CloudFormation untuk membuat sumber daya berikut:
- Pantau metrik Spark di konsol CloudWatch.
Prasyarat
Posting ini mengasumsikan bahwa Anda memiliki yang berikut:
- An Akun AWS.
- Bucket S3 untuk menyimpan skrip bootstrap, pustaka, dan definisi filter metrik.
- VPC dibuat di Cloud Pribadi Virtual Amazon (Amazon VPC), tempat klaster EMR Anda akan diluncurkan.
- Peran layanan IAM default untuk izin Amazon EMR ke layanan dan sumber daya AWS. Anda dapat membuat peran ini dengan perintah aws emr create-default-roles di Antarmuka Baris Perintah AWS (AWS CLI).
- Pasangan kunci EC2 opsional, jika Anda berencana untuk terhubung ke klaster Anda melalui SSH session Manager, kemampuan Manajer Sistem AWS.
Tentukan metrik yang diperlukan
Untuk menghindari pengiriman data yang tidak diperlukan ke CloudWatch, solusi kami menerapkan filter metrik. Tinjau Dokumentasi percikan untuk mengenal namespace dan metrik terkaitnya. Tentukan metrik mana yang relevan dengan aplikasi spesifik dan sasaran kinerja Anda. Aplikasi yang berbeda mungkin memerlukan metrik yang berbeda untuk dipantau, bergantung pada beban kerja, persyaratan pemrosesan data, dan tujuan pengoptimalan. Nama metrik yang ingin Anda pantau harus ditentukan dalam file Metricfilter.json, beserta namespace terkaitnya.
Kami telah membuat contoh definisi Metricfilter.json, yang mencakup pengambilan metrik yang terkait dengan I/O data, pengumpulan sampah, memori dan tekanan CPU, serta metrik pekerjaan, tahapan, dan tugas Spark.
Perhatikan bahwa metrik tertentu tidak tersedia di semua versi rilis Spark (misalnya, appStatus diperkenalkan di Spark 3.0).
Buat dan unggah file yang diperlukan ke bucket S3
Untuk informasi lebih lanjut, lihat Mengunggah objek dan Menginstal dan menjalankan agen CloudWatch di server Anda.
Untuk membuat dan mengunggah skrip bootstrap, selesaikan langkah-langkah berikut:
- Di konsol Amazon S3, pilih bucket S3 Anda.
- pada benda tab, pilih Unggah.
- Pilih Tambahkan file, lalu pilih Metricfilter.json, pemasang.sh, dan contoh pekerjaan.sh file.
- Selain itu, unggah
emr-custom-cw-sink-0.0.1.jar
file perpustakaan metrik yang sesuai dengan versi rilis Amazon EMR yang akan Anda gunakan: - Pilih Unggah, dan catat URI S3 untuk file tersebut.
Sediakan sumber daya dengan templat CloudFormation
Pilih Luncurkan Stack untuk meluncurkan tumpukan CloudFormation di akun Anda dan menerapkan template:
Templat ini membuat peran IAM, profil instans IAM, klaster EMR, dan dasbor CloudWatch. Cluster memulai dasar Percikan contoh aplikasi. Anda akan ditagih untuk sumber daya AWS yang digunakan jika Anda membuat tumpukan dari template ini.
Wizard CloudFormation akan meminta Anda untuk mengubah atau memberikan parameter berikut:
- Jenis Instance - The jenis contoh untuk semua grup instance. Standarnya adalah m5.2xlarge.
- InstanceCountCore – Jumlah instance dalam grup instance inti. Standarnya adalah 4.
- Label Rilis EMRR - The Label rilis Amazon EMR Anda ingin menggunakan. Standarnya adalah emr-6.9.0.
- BootstrapScriptPath – Jalur S3 dari skrip bootstrap instalasi installer.sh yang Anda salin sebelumnya.
- Jalur Filter Metrik – Jalur S3 dari definisi Metricfilter.json yang Anda salin sebelumnya.
- Jalur Perpustakaan Metrik – Jalur S3 perpustakaan CloudWatch emr-custom-cw-sink-0.0.1.jar yang Anda salin sebelumnya.
- CloudWatchNamespace – Nama namespace CloudWatch kustom yang akan digunakan.
- SparkDemoApplicationPath – Jalur S3 dari skrip examplejob.sh yang Anda salin sebelumnya.
- Subnet – Subnet EC2 tempat cluster diluncurkan. Anda harus memberikan parameter ini.
- EC2KeyPairNama – Pasangan kunci EC2 opsional untuk menghubungkan ke node cluster, sebagai alternatif untuk Session Manager.
Lihat metriknya
Setelah tumpukan CloudFormation berhasil diterapkan, contoh pekerjaan dimulai secara otomatis dan memerlukan waktu sekitar 15 menit untuk diselesaikan. Di konsol CloudWatch, pilih Dashboard di panel navigasi. Kemudian filter daftar berdasarkan awalan SparkMonitoring.
Dasbor contoh mencakup informasi tentang klaster dan gambaran umum tentang pekerjaan, tahapan, dan tugas Spark. Metrik juga tersedia dalam namespace kustom yang dimulai dengan EMRCustomSparkCloudWatchSink
.
Memori, CPU, I/O, dan metrik distribusi tugas tambahan juga disertakan.
Terakhir, metrik pengumpulan sampah Java yang terperinci tersedia untuk setiap pelaksana.
Membersihkan
Untuk menghindari tagihan di masa mendatang pada akun Anda, hapus sumber daya yang Anda buat dalam panduan ini. Klaster EMR akan dikenakan biaya selama klaster tersebut aktif, jadi hentikan jika Anda sudah selesai. Selesaikan langkah-langkah berikut:
- Di konsol CloudFormation, di panel navigasi, pilih Tumpukan.
- Pilih tumpukan yang Anda luncurkan (
EMR-CloudWatch-Demo
), lalu pilih Delete. - Kosongkan wadah S3 Anda buat.
- Hapus keranjang S3 Anda buat.
Kesimpulan
Sekarang setelah Anda menyelesaikan langkah-langkah dalam panduan ini, agen CloudWatch berjalan di host klaster Anda dan dikonfigurasi untuk memasukkan metrik Spark ke CloudWatch. Dengan fitur ini, Anda dapat secara efektif memantau kesehatan dan kinerja tugas Spark Anda yang berjalan di Amazon EMR, mendeteksi masalah kritis secara real-time dan mengidentifikasi akar permasalahan dengan cepat.
Anda dapat mengemas dan menerapkan solusi ini melalui templat CloudFormation seperti templat contoh ini, yang membuat peran profil instans IAM, dasbor CloudWatch, dan klaster EMR. Kode sumber untuk perpustakaan tersedia di GitHub untuk kustomisasi.
Untuk melangkah lebih jauh, pertimbangkan untuk menggunakan metrik ini di alarm CloudWatch. Anda dapat mengumpulkannya dengan alarm lain ke dalam a alarm komposit atau konfigurasikan tindakan alarm seperti pengiriman Layanan Pemberitahuan Sederhana Amazon (Amazon SNS) pemberitahuan untuk memicu proses yang digerakkan oleh peristiwa seperti AWS Lambda fungsi.
tentang Penulis
Le Clue Lubbe adalah Insinyur Utama di AWS. Dia bekerja dengan pelanggan perusahaan terbesar kami untuk memecahkan beberapa masalah teknis mereka yang paling rumit. Dia mendorong solusi luas melalui inovasi untuk memberikan dampak dan meningkatkan kehidupan pelanggan kami.
- Konten Bertenaga SEO & Distribusi PR. Dapatkan Amplifikasi Hari Ini.
- PlatoData.Jaringan Vertikal Generatif Ai. Berdayakan Diri Anda. Akses Di Sini.
- PlatoAiStream. Intelijen Web3. Pengetahuan Diperkuat. Akses Di Sini.
- PlatoESG. Otomotif / EV, Karbon, teknologi bersih, energi, Lingkungan Hidup, Tenaga surya, Penanganan limbah. Akses Di Sini.
- PlatoHealth. Kecerdasan Uji Coba Biotek dan Klinis. Akses Di Sini.
- ChartPrime. Tingkatkan Game Trading Anda dengan ChartPrime. Akses Di Sini.
- BlockOffset. Modernisasi Kepemilikan Offset Lingkungan. Akses Di Sini.
- Sumber: https://aws.amazon.com/blogs/big-data/monitor-apache-spark-applications-on-amazon-emr-with-amazon-cloudwatch/
- :adalah
- :bukan
- :Di mana
- 1
- 100
- 107
- 15%
- 20
- 30
- 9
- a
- kemampuan
- mengakses
- Akun
- berkenalan
- di seluruh
- Tindakan
- tindakan
- aktif
- kegiatan
- Tambahan
- Selain itu
- Agen
- alarm
- Semua
- memungkinkan
- sepanjang
- juga
- alternatif
- Amazon
- Amazon EC2
- Amazon ESDM
- Amazon Web Services
- an
- dan
- Apache
- Apache Spark
- Aplikasi
- aplikasi
- sekitar
- arsitektur
- arsitektur
- ADALAH
- AS
- terkait
- mengasumsikan
- At
- penulis
- secara otomatis
- tersedia
- menghindari
- sadar
- AWS
- berdasarkan
- dasar
- BE
- sebelum
- TERBAIK
- Bootstrap
- luas
- tapi
- by
- CAN
- kemampuan
- menangkap
- Menangkap
- penyebab
- tertentu
- beban
- Pilih
- Kelompok
- kode
- mengumpulkan
- koleksi
- mengumpulkan
- lengkap
- Lengkap
- kompleks
- menghitung
- konfigurasi
- dikonfigurasi
- Terhubung
- Menghubungkan
- Mempertimbangkan
- konsul
- Core
- berkorespondensi
- hemat biaya
- Biaya
- bisa
- CPU
- membuat
- dibuat
- menciptakan
- membuat
- kritis
- adat
- pelanggan
- kustomisasi
- menyesuaikan
- dasbor
- data
- pengolahan data
- Default
- didefinisikan
- definisi
- mendemonstrasikan
- menunjukkan
- Tergantung
- menyebarkan
- dikerahkan
- menyebarkan
- terperinci
- Menentukan
- berbeda
- didistribusikan
- distribusi
- dilakukan
- Dont
- drive
- setiap
- Terdahulu
- efektif
- efisiensi
- aktif
- insinyur
- Enterprise
- pelanggan perusahaan
- penting
- Eter (ETH)
- contoh
- Fitur
- File
- File
- menyaring
- berikut
- Untuk
- dari
- fungsi
- lebih lanjut
- masa depan
- Umum
- mendapatkan
- Memberikan
- Go
- Anda
- Kelompok
- Grup
- membimbing
- Memiliki
- he
- Kesehatan
- host
- Seterpercayaapakah Olymp Trade? Kesimpulan
- How To
- Namun
- HTML
- http
- HTTPS
- IAM
- mengenali
- mengidentifikasi
- if
- menggambarkan
- menggambarkan
- Dampak
- mengimplementasikan
- memperbaiki
- in
- memasukkan
- termasuk
- termasuk
- Termasuk
- informasi
- Innovation
- wawasan
- instalasi
- Instalasi
- contoh
- saat
- integrasi
- ke
- diperkenalkan
- masalah
- IT
- NYA
- Jawa
- Pekerjaan
- Jobs
- json
- kunci
- terbesar
- jalankan
- diluncurkan
- meluncurkan
- Perpustakaan
- Hidup
- 'like'
- baris
- Daftar
- Panjang
- manajer
- Mungkin..
- Memori
- metrik
- Metrik
- menit
- memodifikasi
- Memantau
- pemantauan
- lebih
- paling
- harus
- nama
- nama
- Navigasi
- dibutuhkan
- berikutnya
- simpul
- node
- mencatat
- pemberitahuan
- pemberitahuan
- jumlah
- target
- of
- on
- hanya
- optimasi
- mengoptimalkan
- Opsi
- or
- Lainnya
- kami
- ikhtisar
- paket
- pasangan
- pane
- parameter
- parameter
- path
- untuk
- prestasi
- Izin
- rencana
- plato
- Kecerdasan Data Plato
- Data Plato
- potret
- Pos
- kuat
- praktek
- tekanan
- di harga
- Utama
- swasta
- masalah
- proses
- pengolahan
- Profil
- memberikan
- menyediakan
- menerbitkan
- Dorong
- mendorong
- Mendorong
- segera
- agak
- nyata
- real-time
- sarankan
- terkait
- melepaskan
- relevan
- tinggal
- membutuhkan
- wajib
- Persyaratan
- sumber
- pemanfaatan sumber daya
- Sumber
- tanggung jawab
- ulasan
- kuat
- Peran
- peran
- akar
- berjalan
- terukur
- mulus
- Bagian
- bagian
- keamanan
- melihat
- mengirim
- mengirim
- mengirimkan
- layanan
- Layanan
- Sidang
- harus
- Sederhana
- So
- larutan
- Solusi
- MEMECAHKAN
- beberapa
- sumber
- kode sumber
- percikan
- tertentu
- tumpukan
- Tahap
- magang
- awal
- Mulai
- dimulai
- Langkah
- Tangga
- berhenti
- penyimpanan
- subnet
- berhasil
- seperti itu
- RINGKASAN
- sistem
- sistem
- Mengambil
- Dibutuhkan
- tugas
- tugas
- Teknis
- Template
- dari
- bahwa
- Grafik
- Sumber
- mereka
- Mereka
- kemudian
- Ini
- mereka
- ini
- Melalui
- waktu
- untuk
- jalur
- memicu
- bawah
- menggunakan
- bekas
- menggunakan
- memanfaatkan
- variasi
- versi
- View
- maya
- walkthrough
- ingin
- adalah
- we
- jaringan
- layanan web
- ketika
- yang
- sementara
- akan
- dengan
- alur kerja
- bekerja
- X
- yaml
- kamu
- Anda
- zephyrnet.dll