- Amazon CloudWatch ile Databricks Nasıl İzlenir?
- Mühendislerin çevreleri için neden bir izleme/uyarı sistemi kurmaları gerektiğinin temel nedenlerinin, faydalarının ve ayrıca sağlam bir izleme sisteminin merkezi bileşenlerinin gözden geçirilmesi ile başlayacağım.
- Ayrıca Amazon CloudWatch'in de aralarında bulunduğu Databricks üzerinde bir izleme ve uyarı sistemi oluşturmanın farklı yollarını inceleyeceğiz. Son bölümde, CloudWatch'i seçmenin nedenlerini/faydalarını ve mühendislerin CloudWatch'i ile Databricks üzerinde bir izleme sistemi oluşturmak için izlemesi gereken belirli adımları açıklamaya çalışacağım.
- Databricks Lakehouse Platformu, veri göllerinin ve veri ambarlarının en iyi unsurlarını bir araya getirerek, veri göllerinin sunduğu düşük maliyetli, esnek nesne depolarıyla tipik olarak veri ambarlarında bulunan veri yönetimi ve performansını sunar. Binlerce müşteri, sürekli veri ardışık düzenlerini çalıştırmak için AWS'de Databricks kullanıyor. Ayrıca, iş izleme, bu boru hatlarını çalıştırmak için kritik bir görev öğesidir.
- Neden izleme ve uyarı?
- Sağlam bir izleme ve uyarı sistemi, DevOps ve mühendislik ekiplerinin sağlıklı ve istikrarlı bir üretim ortamının korunmasına yardımcı olmak için aşağıdaki soruları proaktif olarak yanıtlanması gerekmektedir :
1) Sağlık kontrolü : Yaptığınız işler ve temel/altın sinyalleriniz sağlıklı mı?
2) Gerçek zamanlı uyarı : Bir şey mi bozuldu yoksa kırılmak üzere mi?
3) Ad hoc retrospektif analiz : “Dün gece işimiz gerçekten yavaştı; aynı anda ne oldu?”
4) Deney yapılandırmaları : “Geçen hafta işlerim daha mı yavaş çalışıyordu? Performansı artırmak için daha fazla CPU veya bellek eklemeli miyiz?”
- Databricks izleme ve uyarı sistemindeki temel bileşenler
- 1) Metrikler: Metrikler, belirli bir süre boyunca ölçülen faaliyeti veya belirli bir süreci tanımlayan sayılardır. Databricks'te farklı metrik türleri şunlardır:
& CPU, bellek, disk ve ağ gibi sistem kaynağı düzeyindeki ölçümler.
& Özel Metrik Kaynağını kullanan Uygulama Metrikleri StreamingQueryListener, ve QueryExecutionListener.
& Kıvılcım Metrikleri tarafından açığa çıkarıldı MetricsSystem.
- 2) Günlükler : Günlükler, meydana gelen seri olayların bir temsilidir ve onlar hakkında doğrusal bir hikaye anlatırlar. Databricks'te farklı günlük türleri şunlardır:
& Olay günlükleri
& Denetim günlükleri
& Sürücü günlükleri: stdout, stderr, log4j özel günlükleri (yapılandırılmış günlük kaydını etkinleştir)
& Yürütücü günlükleri: stdout, stderr, log4j özel günlükleri (yapılandırılmış günlük kaydını etkinleştir)
- 3) İzler : Yığın izleri uçtan uca görünürlük sağlar ve aşamalar arasındaki tüm akışı gösterir. Bu, hangi aşamaların/kodların hatalara/performans sorunlarına neden olduğunu belirlemek için hata ayıklamanız gerektiğinde kullanışlıdır.
- 4) Gösterge Tabloları : Gösterge tabloları, bir uygulamanın/hizmetin altın metriklerinin harika bir özet görünümünü sağlar.
5) Uyarılar : Uyarılar, mühendisleri dikkat gerektiren durumlar hakkında bilgilendirir.
- Neden Amazon CloudWatch?
- Ganglia UI ve Log Delivery gibi yerel çözümler, sistem ölçümlerini toplamak ve Apache Spark™ ölçümlerini sorgulamak için harika çözümlerdir. Ancak, bazı alanlar geliştirilebilir:
& Ganglia, uyarıları desteklemez.
& Ganglia, günlüklerden türetilen ölçümler oluşturmayı desteklemez (ör. HATA günlüğü büyüme oranı).
& Veri doğruluğu, veri tazeliği veya uçtan uca gecikme ile ilgili SLO'yu (Hizmet Düzeyi Hedefleri) ve SLI'yi (Hizmet Düzeyi Göstergeleri) izlemek ve ardından bunları gangliyonla görselleştirmek için özel panoları kullanamazsınız.
Databricks'i CloudWatch ile entegre etmek ve yapılandırılmış günlük kaydını etkinleştirmek bu alanların iyileştirilmesine yardımcı olabilir. CloudWatch Application Insights, günlüklerde bulunan alanlar otomatik olarak keşfetmemize yardımcı olabilir ve CloudWatch Logs Insights, daha hızlı hata ayıklama ve analiz için amaca yönelik oluşturulmuş bir sorgu dili sağlar.
- Amazon CloudWatch ile Databricks nasıl entegre edilir
- Aşama 1:
Aşağıdaki izinlerle IAM rolü oluşturalım:
& CloudWatchAgent Sunucu Politikası
& ec2:DescribeTags – init betiğindeki küme adını ec2 örnek etiketlerinden almamız gerektiği için
- Kümelerin yukarıda oluşturulan yeni IAM rolünü üstlenebilmesi için bir AssumeRole Politikası ile IAM Rollerini kullanmaya benzer adımları izleyin.
- Adım 2:
- & Aşağıdaki init betiğiyle kümeleri başlatalım:
& Spark Config altında, metrics.namespaceöğesini, uygulama kimliğinin metriklerin önüne eklenmeyeceği şekilde ayarlayalım
.
- Aşama 3:
& Aşağıdaki komutu çalıştırarak aracının çalıştığını doğrulayalım:
>> %sh ps -ef |grep cloudwatch | grep agent
& Yukarıdaki komutun çıktısı, çalışan PID'yi gösterecektir.
- 4. Adım:
& AWS Konsolunda Panoları, Günlük ölçümlerini ve Uyarıları yapılandırın. Konsolu, AWS Komut Satırı Arabirimini (CLI) veya PutDashboard API'sini kullanarak panolar oluşturabiliriz.
- Günlük oluşturmak için birleştirilmiş CloudWatch aracısını kullanabiliriz. Bu, tek bir aracıyla hem günlükleri hem de gelişmiş ölçümleri toplamaya yardımcı olur.
& CloudWatch panolarına alarmlar ekleyebilir ve bunları görsel olarak izleyebilmek mümkündür.
- & Örnek Pano ve yapılandırma aşağıdaki gibidir:
- Güvenilir Veri İşlem Hatları ve Veri Bilimi İşleri
- Yerinde izleme ve uyarı ile veri boru hatlarımızdaki sorunların önüne geçebiliriz. Yavaş işleri ve başarısız işleri tespit ederek, bunlara neden olan sorunları tüm kuruluşumuzu etkilemeden önce çözebiliriz. İster hatalı kodun belirlenmesi, ister daha büyük veri kümelerinin tanınması veya bölgesel kesintilerin bulunması olsun, izleme ve uyarı, veri boru hatlarımızın akışını sürdürmek için bu sorunları tam olarak belirlememize yarar.