Süre
Modüller 10 modül
Bilgi al

Genel Tanım

Eğitmen

Apache Spark, büyük veri işleme ve analitiği için tasarlanmış, dağıtık, bellek içi (in-memory) hesaplama gücü sunan ve çok çeşitli modülleri (Spark SQL, Spark Streaming, MLlib, GraphX) içeren, modern veri mühendisliği ve analitik uygulamalarında vazgeçilmez bir platformdur. Bu eğitim, Apache Spark’ın mimarisi, temel API’leri, performans optimizasyonu, dağıtık işleyişi ve ekosisteme entegrasyonu gibi konuları derinlemesine ele alarak, katılımcıların büyük veri uygulamalarında yüksek verimlilikle çözümler geliştirmelerini sağlamayı amaçlar.

Nedir?

Apache Spark; verinin hızlı ve ölçeklenebilir biçimde işlenmesi için tasarlanmış, RDD, DataFrame, SQL, streaming, makine öğrenmesi ve graf analizi gibi modülleriyle geniş bir yelpazede veri işleme yetenekleri sunan açık kaynaklı bir çerçevedir. Eğitimde, Spark’ın temel prensipleri, API’leri, optimizasyon teknikleri ve gerçek dünya uygulamalarındaki rolü detaylı olarak incelenecektir.

Kimler içindir?

Bu eğitim, aşağıdaki bireyler için uygundur:

• Veri mühendisleri ve büyük veri analistleri,
• Veri bilimcileri ve makine öğrenimi mühendisleri,
• Yazılım geliştiriciler ve sistem mimarları,
• Hadoop ve diğer büyük veri teknolojilerini kullanan profesyoneller,
• Dağıtık hesaplama ve gerçek zamanlı veri işleme konularında uzmanlaşmak isteyenler,
• Akademisyenler ve araştırmacılar.

Neden Apache Spark Eğitimi?

• Hız ve Verimlilik: Bellek içi hesaplama sayesinde büyük veri setlerinin çok daha hızlı işlenmesini sağlar.
• Ölçeklenebilirlik: Yatayda ölçeklenebilir mimarisi ile verinin artan hacmine uyum sağlar.
• Çeşitli Modüller: Spark SQL, Spark Streaming, MLlib ve GraphX gibi modüller ile tüm veri işleme ve analiz ihtiyaçlarını karşılar.
• Endüstri Standartı: Büyük veri ekosisteminde geniş kabul gören ve yaygın olarak kullanılan bir teknolojidir.
• Entegrasyon: Hadoop, bulut platformları ve diğer modern veri araçlarıyla kolay entegrasyon imkanı sunar.

Konular

Giriş ve Temel Kavramlar

Eğitimin Tanıtımı ve Hedefler

  • Eğitim içeriğinin genel çerçevesi, öğrenme çıktıları ve beklenen kazanımlar

  • Katılımcı beklentileri, uygulama alanları ve sektör örnekleri

Apache Spark’ın Tarihçesi ve Evrimi

  • Spark’ın ortaya çıkışı, gelişim süreci ve büyük veri ekosistemindeki rolü

  • Geleneksel MapReduce ile karşılaştırmalar

Temel Kavramlar ve Terimler

  • Dağıtık hesaplama, RDD, DataFrame, DAG (Directed Acyclic Graph) kavramları

  • Spark mimarisi: Driver, Executor, Cluster Manager

Apache Spark Temelleri ve Kurulum

Kurulum ve Ortam Yapılandırması

  • Spark’ın yerel (local) ve dağıtık modda kurulumu

  • İlgili araçlar: Spark Shell, PySpark, SparkR ve Not Defteri (Jupyter, Zeppelin)

Spark Ekosistemi ve Modülleri

  • Spark Core, Spark SQL, Spark Streaming, MLlib, GraphX

  • Her modülün temel işlevleri ve kullanım senaryoları

Cluster Manager’lar ve Dağıtım Seçenekleri

  • Spark Standalone, YARN, Mesos, Kubernetes entegrasyonları

  • Bulut tabanlı kurulum örnekleri (AWS, Azure, Google Cloud)

RDD (Resilient Distributed Datasets) ve Temel API’ler

RDD Temelleri

  • RDD’lerin tanımı, özellikleri ve faydaları

  • RDD oluşturma yöntemleri (parallelize, textFile, transformations)

RDD Dönüşümleri ve İşlemleri

  • Map, filter, flatMap, reduce, union, join gibi temel dönüşümler

  • Lazy evaluation (tembel değerlendirme) prensibi ve aksiyonlar (collect, count, take)

Hata Toleransı ve Caching

  • RDD’lerin hata toleransı mekanizması (lineage)

  • Caching, persistence stratejileri ve bellek yönetimi

DataFrame ve Spark SQL

DataFrame Kavramı

  • DataFrame’lerin tanımı, avantajları ve API yapısı

  • Schema, sütun işlemleri ve veri tipleri

Spark SQL ile Sorgulama

  • SQL sorguları ve DataFrame API kullanarak veri analizi

  • DataFrame işlemleri: select, filter, groupBy, join, agg

Catalyst Optimizer ve Tungsten Projesi

  • Catalyst sorgu optimizasyonu ve sorgu planı iyileştirmeleri

  • Tungsten ile bellek yönetimi ve performans iyileştirmeleri

Veri Kaynakları ve Entegrasyon

  • Hive, Parquet, JSON, CSV gibi veri formatları ile çalışmak

  • Dış veri kaynakları ile entegrasyon yöntemleri

Apache Spark Streaming ve Structured Streaming

Spark Streaming’e Giriş

  • Spark Streaming mimarisi, micro-batch işleyişi

  • DStream kavramı ve temel API’ler

Structured Streaming

  • Sürekli veri akışlarını gerçek zamanlı işleme

  • Windowing, event-time processing ve stateful operations

Streaming Kaynakları ve Entegrasyon

  • Kafka, Flume, socket, dosya sistemleri gibi veri kaynakları

  • Uygulamalı örnekler: Gerçek zamanlı veri akışı ve işleme

Performans ve Hata Yönetimi

  • Streaming uygulamalarında hata toleransı, checkpointing

  • Kaynak yönetimi, latency optimizasyonu ve monitoring

Machine Learning ve MLlib ile Uygulamalı Makine Öğrenmesi

MLlib’e Giriş

  • Spark MLlib kütüphanesinin tanıtımı, temel yapısı ve bileşenleri

  • Veri ön işleme, feature extraction ve veri dönüştürme teknikleri

Algoritmalar ve Modelleme

  • Sınıflandırma, regresyon, kümeleme, öneri algoritmaları

  • Örnek uygulamalar: Lojistik regresyon, karar ağaçları, k-means, ALS

Pipelines ve Model Değerlendirme

  • ML pipeline kavramı, model eğitim, validasyon ve hiperparametre ayarlamaları

  • Model değerlendirme metrikleri ve çapraz doğrulama

Gerçek Dünya Makine Öğrenmesi Uygulamaları

  • End-to-end makine öğrenmesi projeleri ve örnek veri setleri

  • Model dağıtımı ve üretime alınması

GraphX ile Grafik İşleme

GraphX’e Giriş

  • Grafik veri yapısı, RDD tabanlı graf temsil ve GraphX API’leri

  • GraphFrame kavramı ve kullanım örnekleri

Grafik Algoritmaları

  • PageRank, connected components, triangle counting, shortest path

  • Özel grafik algoritmaları geliştirme ve optimizasyonu

Uygulamalı Grafik İşleme

  • Sosyal ağ analizi, öneri sistemlerinde grafik temelli yaklaşımlar

  • Gerçek dünya senaryoları ve vaka çalışmaları

Performans Tuning ve Optimizasyon

Spark Uygulama Performansı

  • DAG ve execution plan’ların analizi, Spark UI kullanımı

  • RDD/DataFrame optimizasyon teknikleri ve bellek yönetimi stratejileri

Partitioning ve Caching Stratejileri

  • Veri bölümlendirme, repartition, coalesce yöntemleri

  • Caching politikaları ve optimum veri depolama teknikleri

Konfigürasyon Ayarları ve İnce Ayar

  • Spark konfigürasyon parametreleri, executor, driver ve cluster ayarları

  • Gerçek dünya uygulamalarında performans iyileştirme örnekleri

Cluster Yönetimi ve Dağıtım Stratejileri

Cluster Manager’lar ve Orkestrasyon

  • Spark Standalone, YARN, Mesos ve Kubernetes karşılaştırması

  • Her bir cluster manager’ın özellikleri ve en iyi uygulama örnekleri

Dağıtım ve Üretime Alım

  • Spark uygulamalarının paketlenmesi, deployment stratejileri

  • CI/CD süreçleri, otomatik dağıtım, versiyon kontrolü ve izleme yöntemleri

Kritik Uygulamalar ve Gerçek Zamanlı İzleme

  • Üretim ortamında Spark uygulamalarının performans izleme araçları

  • Hata yönetimi, otomatik yeniden başlatma ve kaynak yönetimi

Spark Ekosistemi ve İleri Entegrasyonlar

Diğer Büyük Veri Araçları ile Entegrasyon

  • Hadoop, HDFS, Hive, HBase entegrasyonları

  • Spark’ın diğer veri araçlarıyla uyumlu çalışması

Bulut Tabanlı Çözümler

  • AWS, Azure, Google Cloud üzerinde Spark uygulamalarının çalıştırılması

  • Managed Spark hizmetleri (Databricks, EMR, HDInsight)

Gelişmiş Araçlar ve İleri Konular

  • SparkR, PySpark ve Sparklyr kullanımı

  • Delta Lake, Structured Streaming gelişmeleri, MLflow ile model yönetimi

Bizimle iletişime geçin