Bize Ulaşın
 Süre 21 Saat

Eğitim İçeriği

Modül 1: Büyük Veri ve Spark Temelleri

  • Büyük Veri ekosisteminin genel görünümü ve modern veri platformlarında Spark'ın rolü
  • Spark mimarisini anlama: driver, executorlar, küme yöneticisi, tembel değerlendirme (lazy evaluation), DAG ve yürütme planlaması
  • RDD ve DataFrame API'leri arasındaki farklılıklar ve hangi yaklaşımın ne zaman kullanılacağı
  • SparkSession oluşturma ve yapılandırma; uygulama yapılandırmasının temel ilkelerini anlama

Modül 2: PySpark DataFrames

  • CSV, JSON, Parquet ve Delta gibi kurumsal kaynaklardan ve biçimlerden veri okuma ve yazma
  • PySpark DataFrames ile çalışma: dönüştürme, eylemler, sütun ifadeleri, filtreleme, birleştirme (joins) ve özetleme
  • Pencere işlevleri (window functions), zaman damgalarıyla çalışma ve iç içe geçmiş veriyle başa çıkma gibi ileri düzey işlemlerin uygulanması
  • Veri kalite kontrollerinin uygulanması ve yeniden kullanılabilir, sürdürülebilir PySpark kodu yazma

Modül 3: Spark Kullanıcıları İçin Kubernetes ve Docker Temelleri

  • Docker imajlarının ve Kubernetes podlarının Spark driver ve executor süreçleriyle ilişkisini anlama — yöneticiler için değil, küme tüketicileri için kavramsal bir bakış
  • Spark işinin Kubernetes üzerinde çalışırken neler olduğunu anlama: pod zamanlaması, kaynak istekleri ve sınırları, oturum ayarlarının bunlara nasıl eşlendiği
  • Spark oturum parametreleri üzerinden neyin sizin kontrolünüzde olduğunu, neyin de platform ekibinin küme sağlama ayarları üzerinden kontrolünde olduğunu ve bu sınırın nedenine ayarlamaları etkilediğini anlama
  • Uygulamalı egzersiz: Kum havuzu kümesinde çalışan bir Spark-on-Kubernetes işini inceleyin ve driver ile executor podlarını belirleyin

Modül 3: Kubernetes Üzerinde Spark Oturum Yapılandırması — Derinlemesine İnceleme

  • Executor sayısı ile executor boyutu arasındaki farkı anlama: bellek ve çekirdek (cores) arasındaki takaslar ve bunların nasıl değerlendirileceği
  • Driver ve executor bellek tahsisi, bellek fazlalığı (overhead) ve bunların pod kaynaklarına nasıl dönüştüğü
  • Dinamik tahsis: Kubernetes üzerinde nasıl davrandığı, ne zaman kaynak tasarrufu sağladığı ve ne zaman sağamadığı
  • Uygulamalı egzersiz: Aynı işi farklı executor ve çekirdek yapılandırmaları altında çalıştırın ve çalışma süresi ile kaynak kullanımını karşılaştırın

Modül 5: Ölçekleme Davranışı ve Maliyet Optimizasyonu

  • Ek düğümlerin eklenmesinin veya kaldırılmasının iş davranışını, tamamlanma süresini ve kaynak tüketimini nasıl değiştirdiğini anlama
  • Çok sayıda küçük executor ile daha az sayıda büyük executorun karşılaştırılması: performans ve maliyet takasları
  • Shuffle davranışı ve shuffle bölümü ayarlamaları, yapılandırma seçimlerinin maliyet etkisini tahmin etme dahil
  • Uygulamalı egzersiz: Kum havuzu kümesini beş düğümden on düğüme ölçekleyin ve iş tamamlanma süresi ile kaynak tüketimi üzerindeki etkiyi gözlemleyin

Modül 6: Verimli Veri Alımı ve Bölümlendirme

  • Küçük dosya sorununu anlama: Neden kaynakların birçok 1–5 MB'lık Parquet dosyasına bölünmesi performansı düşürür ve bölümlendirmeyi çarpıtır
  • Bölümü yeniden düzenleme (repartitioning) ve birleştirme (coalescing) stratejileri
  • Okuma ve yazma sırasında bölüm boyutlarını kontrol etme
  • Aşağı akışta (downstream) küçük dosya sorununu yeniden yaratmaktan kaçınmak için Parquet dosyalarını verimli yazma
  • Uygulamalı egzersiz: Birçok küçük Parquet bölümünden oluşan bir veri kümesini yükleyin, farklı yeniden bölümlendirme stratejileri uygulayın ve optimizasyon öncesi ve sonrası performansı karşılaştırın

Modül 7: Pandas Bellek Yönetimi ve Hata Teşhisi

  • Pandas'taki bellek yetersizliği (out-of-memory) hatalarının kök nedenlerini anlama ve belirtilerini tanıma
  • Spark ile Pandas arasında bellek verimli dönüşüm kalıplarının uygulanması
  • Büyük veri kümelerini CSV olarak yazarken bellek şişlemelerinden (blow-ups) kaçınma
  • Kısıtlı ortamlar için parça parça işleme (chunked processing) ve veri tipi (dtype) optimizasyonunun kullanılması
  • Uygulamalı egzersiz: Tipik bir Pandas bellek yetersizliği senaryosunu yeniden yaratın ve parça parça işleme ile dtype optimizasyonu kullanarak çözün

Modül 8: Tamamlayıcı Bir Araç Olarak Polars

  • Polars'ın Pandas'a göre konumlandırılması: performans özellikleri, tembel değerlendirme ve bellek davranışı
  • Polars'ın modern bulut veri yığınları ve migrasyon yol haritalarında PySpark ve Pandas'ın yanında nerede yer aldığını anlama; AWS ortamları dahil
  • Uygulamalı egzersiz: Pandas ağırlıklı bir dönüştürme işlemini Polars'ta yeniden yazın ve bellek kullanımını ile işleme hızını karşılaştırın

Modül 9: Optimizasyonu ETL ve ML İş Yüklerinde Uygulama

  • Gerçekçi bir ETL boru hattında yapılandırma, bölümlendirme ve bellek yönetimi ilkelerinin uygulanması
  • Aynı kümede çalışan makine öğrenmesi iş yüklerine özgü optimizasyon dikkatlerini anlama
  • Maliyet ve performans sorunlarını sistematik olarak teşhis etmek için pratik bir ayarlama iş akışının uygulanması
  • Uygulamalı egzersiz: Katılımcıların Spark yapılandırmasını kendilerinin ayarladığı, veri yükleme, dönüştürme ve basit bir model eğitimi adımını içeren uçtan uca bir mini-proje tamamlayın

Kurs İçin Gerekli Önbilgiler

Katılımcılarda aşağıdaki becerilerin bulunması beklenmektedir:

  • Python programlama konusunda işlevler, modüller ve temel nesne yönelimli kavramlar dahil olmak üzere pratik deneyim.
  • Pandas ve tabular veri işleme iş akışları ile temel veya orta düzeyde deneyim.
  • Veri okuma, dönüştürme, eylemler, birleştirme (joins) ve özetleme işlemleri dahil olmak üzere PySpark ve Spark DataFrames ile temel aşinalık.
  • Filtreleme, gruplandırma ve veri kümelerini birleştirme gibi SQL ve veri işleme kavramları hakkında genel bir anlayış.
  • Konteynerler, imajlar ve podlar gibi kavramlar dahil olmak üzere Docker ve Kubernetes ile temel aşinalık. Kubernetes yöneticiliği deneyimi gerekmemektedir.
  • CSV, JSON ve Parquet gibi yaygın veri biçimleri hakkında temel bilgi.

Katılımcıların Kubernetes yöneticisi veya altyapı uzmanı olmaları gerekmemektedir. Kurs, veri mühendislerinin, geliştiricilerin ve veri bilimcilerin, uygulama ve yapılandırma perspektifinden Kubernetes üzerinde çalışan Spark iş yüklerini nasıl anlayıp optimize edebileceklerine odaklanmaktadır.

Hedef Kitle

Bu kurs; bulut veya konteynerleştirilmiş ortamlarda Python ve Spark kullanarak veri işleme ve makine öğrenmesi iş yükleri geliştiren, bakımını yapan veya optimize eden profesyoneller için tasarlanmıştır.

Aşağıdaki kişiler için özellikle uygundur:

  • PySpark, dağıtık veri işleme ve ETL boru hatlarıyla çalışan Veri Mühendisleri.
  • Spark, Pandas veya Polars ile büyük veri kümelerini işleyen veya makine öğrenmesi iş yükleri yürüten Veri Bilimcileri.
  • Veri yoğun uygulamalarla çalışan ve bellek verimliliğini ve işleme performansını artırmak isteyen Python Geliştiricileri.
  • Paylaşımlı Kubernetes veya bulut ortamlarında veri hazırlama ve model eğitimi iş yüklerini yöneten Makine Öğrenmesi Mühendisleri.
  • Büyük veri kümeleriyle çalışarak veri işleme verimliliğini artırmayı hedefleyen Analitik Mühendisleri.
  • Kubernetes üzerinde Spark iş yüklerini destekleyen ve uygulama düzeyindeki yapılandırmanın kaynak kullanımını ve performansı nasıl etkilediğini anlaması gereken DevOps, Platform ve Bulut Mühendisleri.
  • Modern veri işleme platformlarının tasarımında veya optimizasyonunda rol alan Teknik Liderler ve Çözüm Mimarları.

Katılımcı Sayısı


Katılımcı başına fiyat

Danışanlarımızın Yorumları (1)

Yaklaşan Etkinlikler

İlgili Kategoriler