Zephyrnet Logosu

Amazon Cloudwatch ile Amazon EMR'deki Apache Spark uygulamalarını izleyin | Amazon Web Hizmetleri

Tarih:

Spark uygulamasının verimliliğini artırmak için performansını ve davranışını izlemek önemlidir. Bu yazıda, ayrıntılı Spark ölçümlerinin nasıl yayınlanacağını gösteriyoruz. Amazon EMR'si için Amazon Bulut İzleme. Bu size kaynak kullanımını optimize ederken darboğazları belirleme yeteneği verecektir.

CloudWatch, güçlü özelleştirme seçenekleri ve diğer AWS hizmetleriyle sorunsuz entegrasyonla AWS kaynakları ve uygulamaları için sağlam, ölçeklenebilir ve uygun maliyetli bir izleme çözümü sunar. Amazon EMR varsayılan olarak şunu gönderir: temel ölçümler Bir kümenin etkinliğini ve durumunu izlemek için CloudWatch'a. Spark'ın yapılandırılabilir ölçüm sistemi, ölçümlerin HTTP, JMX ve CSV dosyaları da dahil olmak üzere çeşitli havuzlarda toplanmasına olanak tanır, ancak Spark'ın ölçümleri CloudWatch'ta yayınlamasını sağlamak için ek yapılandırma gerekir.

Çözüme genel bakış

Bu çözüm, metrikleri özel bir havuza göndermek için Spark yapılandırmasını içerir. Özel havuz yalnızca Metricfilter.json dosyasında tanımlanan ölçümleri toplar. Ölçümleri özel bir Cloudwatch ad alanına yayınlamak için CloudWatch aracısını kullanır. Dahil edilen önyükleme eylem komut dosyası, CloudWatch aracısının ve metrik kitaplığının yüklenmesinden ve yapılandırılmasından sorumludur. Amazon Elastik Bilgi İşlem Bulutu (Amazon EC2) EMR bulut sunucuları. CloudWatch kontrol paneli, bir uygulamanın performansına ilişkin anında bilgi sağlayabilir.

Aşağıdaki şema, çözüm mimarisini ve iş akışını göstermektedir.

Çözüme genel bakışı gösteren mimari diyagram

İş akışı aşağıdaki adımları içerir:

  1. Kullanıcılar, EMR kümesinde bir adım oluşturarak bir Spark EMR işi başlatır. Apache Spark ile iş yükü, EMR kümesinin farklı düğümlerine dağıtılır.
  2. Kümenin her düğümünde (EC2 örneği), bir Spark kitaplığı metrik verilerini yakalar ve bir CloudWatch aracısına aktarır; bu aracı, metrik verilerini CloudWatch'a göndermeden önce toplar. her 30 saniye.
  3. Kullanıcılar, CloudWatch konsolunda özel ad alanına erişen ölçümleri görüntüleyebilir.

Biz bir AWS CloudFormation Bu yazıdaki şablonu genel bir kılavuz olarak kullanın. Şablon, Spark ölçümlerini CloudWatch'a aktarmak için Amazon EMR'de bir CloudWatch aracısının nasıl yapılandırılacağını gösterir. Amazon EMR güvenlik yapılandırmalarınızı dahil etmek için bunu gerektiği gibi inceleyebilir ve özelleştirebilirsiniz. En iyi uygulama olarak Amazon EMR güvenlik yapılandırmalarınızı şablona dahil etmenizi öneririz. aktarılan verileri şifrelemek.

Ayrıca, bu yığın tarafından dağıtılan bazı kaynakların, kullanımda kaldıkları süre boyunca maliyete neden olacağının da farkında olmalısınız. Bunlara ek olarak, EMR ölçümleri CloudWatch maliyetlerine maruz kalmayın. Ancak özel ölçümler, CloudWatch ölçüm fiyatlandırmasına göre ücrete tabidir. Daha fazla bilgi için bakınız Amazon CloudWatch Fiyatlandırması.

Sonraki bölümlerde, aşağıdaki adımlardan geçiyoruz:

  1. Metrik kitaplığını, kurulum komut dosyasını ve filtre tanımını oluşturup bir Amazon Basit Depolama Hizmeti (Amazon S3) kovası.
  2. Aşağıdaki kaynakları oluşturmak için CloudFormation şablonunu kullanın:
  3. CloudWatch konsolunda Spark ölçümlerini izleyin.

Önkoşullar

Bu gönderi, aşağıdakilere sahip olduğunuzu varsayar:

  • An AWS hesabı.
  • Önyükleme komut dosyasını, kitaplığı ve metrik filtre tanımını depolamak için bir S3 grubu.
  • Şu tarihte oluşturulan bir VPC: Amazon Sanal Özel Bulut (Amazon VPC), EMR kümenizin başlatılacağı yer.
  • AWS hizmetlerine ve kaynaklarına yönelik Amazon EMR izinleri için varsayılan IAM hizmeti rolleri. Bu rolleri aşağıdaki aws emr create-default-roles komutuyla oluşturabilirsiniz. AWS Komut Satırı Arayüzü (AWS CLI'si).
  • Kümenize SSH yerine SSH aracılığıyla bağlanmayı planlıyorsanız isteğe bağlı bir EC2 anahtar çifti Oturum Yöneticisi, yeteneği AWS Sistem Yöneticisi.

Gerekli ölçümleri tanımlayın

CloudWatch'a gereksiz veri gönderilmesini önlemek için çözümümüz bir metrik filtre uygular. Görüntüle Kıvılcım belgeleri ad alanları ve bunlarla ilişkili ölçümler hakkında bilgi sahibi olmak. Özel uygulamanız ve performans hedeflerinizle hangi metriklerin alakalı olduğunu belirleyin. Farklı uygulamalar, iş yüküne, veri işleme gereksinimlerine ve optimizasyon hedeflerine bağlı olarak farklı ölçümlerin izlenmesini gerektirebilir. İzlemek istediğiniz metrik adları, ilişkili ad alanlarıyla birlikte Metricfilter.json dosyasında tanımlanmalıdır.

Veri G/Ç, çöp toplama, bellek ve CPU basıncı ile Spark işi, aşama ve görev ölçümleriyle ilgili yakalama ölçümlerini içeren örnek bir Metricfilter.json tanımı oluşturduk.

Bazı ölçümlerin tüm Spark sürüm sürümlerinde mevcut olmadığını unutmayın (örneğin, appStatus, Spark 3.0'da kullanıma sunuldu).

Gerekli dosyaları oluşturun ve bir S3 klasörüne yükleyin

Daha fazla bilgi için bkz: Nesneleri yükleme ve CloudWatch aracısını sunucularınıza yükleme ve çalıştırma.

Önyükleme komut dosyasını oluşturmak ve karşıya yüklemek için aşağıdaki adımları tamamlayın:

  1. Amazon S3 konsolunda S3 klasörünüzü seçin.
  2. Üzerinde nesneler sekmesini seçin Foto Yükle.
  3. Klinik Dosyaları ekleyin, sonra seçin Metricfilter.json, yükleyici.sh, ve örnekiş.sh dosyaları.
  4. Ek olarak, şunu yükleyin: emr-custom-cw-sink-0.0.1.jar Kullanacağınız Amazon EMR sürüm sürümüne karşılık gelen metrics kitaplığı dosyası:
    1. EMR-6.xx
    2. EMR-5.xx
  5. Klinik Foto Yükleve dosyalara ilişkin S3 URI'lerini not edin.

CloudFormation şablonuyla kaynakları sağlayın

Klinik Yığını Başlat Hesabınızda bir CloudFormation yığını başlatmak ve şablonu dağıtmak için:

yığın 1'i başlat

Bu şablon bir IAM rolü, IAM örnek profili, EMR kümesi ve CloudWatch kontrol panelini oluşturur. Küme temel bir başlangıç ​​başlatır Spark örnek uygulaması. Bu şablondan bir yığın oluşturursanız, kullanılan AWS kaynakları için faturalandırılırsınız.

CloudFormation sihirbazı sizden şu parametreleri değiştirmenizi veya sağlamanızı isteyecektir:

  • Örnek Türü - örnek türü tüm örnek grupları için. Varsayılan m5.2xlarge'dir.
  • Örnek SayısıÇekirdek – Çekirdek örnek grubundaki örnek sayısı. Varsayılan 4'dir.
  • EMRReaseLabel - Amazon EMR sürüm etiketi kullanmak istiyorsun Varsayılan emr-6.9.0'dır.
  • BootstrapScriptPath – Daha önce kopyaladığınız installer.sh kurulum önyükleme komut dosyasının S3 yolu.
  • MetrikFiltreYolu – Daha önce kopyaladığınız Metricfilter.json tanımınızın S3 yolu.
  • MetriklerKütüphaneYol – Daha önce kopyaladığınız CloudWatch emr-custom-cw-sink-3.jar kitaplığınızın S0.0.1 yolu.
  • CloudWatchAd Alanı – Kullanılacak özel CloudWatch ad alanının adı.
  • SparkDemoUygulamaYolu – Daha önce kopyaladığınız examplejob.sh betiğinizin S3 yolu.
  • alt ağ – Kümenin başlatıldığı EC2 alt ağı. Bu parametreyi sağlamanız gerekir.
  • EC2AnahtarÇiftiAdı – Oturum Yöneticisine alternatif olarak küme düğümlerine bağlanmak için isteğe bağlı bir EC2 anahtar çifti.

Metrikleri görüntüle

CloudFormation yığını başarıyla dağıtıldıktan sonra örnek iş otomatik olarak başlar ve tamamlanması yaklaşık 15 dakika sürer. CloudWatch konsolunda şunu seçin: Panolar Gezinti bölmesinde. Ardından listeyi SparkMonitoring önekine göre filtreleyin.

Örnek kontrol paneli, kümeyle ilgili bilgileri ve Spark işlerine, aşamalarına ve görevlerine genel bir bakış içerir. Metrikler ayrıca şununla başlayan özel bir ad alanı altında da mevcuttur: EMRCustomSparkCloudWatchSink.

CloudWatch kontrol paneli özeti bölümü

Bellek, CPU, G/Ç ve ek görev dağıtım ölçümleri de dahildir.

CloudWatch kontrol paneli uygulayıcıları

Son olarak, uygulayıcı başına ayrıntılı Java çöp toplama ölçümleri mevcuttur.

CloudWatch kontrol paneli çöp toplama

Temizlemek

Gelecekte hesabınızdan ücret alınmasını önlemek için bu kılavuzda oluşturduğunuz kaynakları silin. EMR kümesi, küme etkin olduğu sürece ücretlendirilecektir; bu nedenle işiniz bittiğinde kümeyi durdurun. Aşağıdaki adımları tamamlayın:

  1. CloudFormation konsolunda, gezinti bölmesinde Yığınları.
  2. Başlattığınız yığını seçin (EMR-CloudWatch-Demo), ardından Sil.
  3. S3 kovasını boşaltın sen yarattın.
  4. S3 klasörünü silin sen yarattın.

Sonuç

Artık bu izlenecek yoldaki adımları tamamladığınıza göre CloudWatch aracısı küme ana bilgisayarlarınızda çalışıyor ve Spark ölçümlerini CloudWatch'a aktaracak şekilde yapılandırılmış durumda. Bu özellik sayesinde Amazon EMR'de çalışan Spark işlerinizin durumunu ve performansını etkili bir şekilde izleyebilir, kritik sorunları gerçek zamanlı olarak tespit edebilir ve temel nedenleri hızlı bir şekilde belirleyebilirsiniz.

Bu çözümü, IAM örnek profili rolünü, CloudWatch kontrol panelini ve EMR kümesini oluşturan bu örnek şablon gibi bir CloudFormation şablonu aracılığıyla paketleyebilir ve dağıtabilirsiniz. Kütüphanenin kaynak kodu şu adreste mevcuttur: GitHub özelleştirme için.

Bunu daha da ileriye taşımak için bu ölçümleri CloudWatch alarmlarında kullanmayı düşünün. Bunları diğer alarmlarla birlikte bir klasörde toplayabilirsiniz. bileşik alarm veya gönderme gibi alarm eylemlerini yapılandırın. Amazon Basit Bildirim Servisi (Amazon SNS) bildirimleri, aşağıdakiler gibi olaya dayalı süreçleri tetikler: AWS Lambda fonksiyonlar.


Yazar Hakkında

yazar portresiLe Clue Lubbe AWS'de Baş Mühendistir. En karmaşık teknik sorunlarından bazılarını çözmek için en büyük kurumsal müşterilerimizle birlikte çalışıyor. Müşterilerimizin yaşamlarını etkilemek ve iyileştirmek için inovasyon yoluyla geniş çözümler üretiyor.

spot_img

En Son İstihbarat

spot_img