Spark, büyük veri iş yükleri için tasarlanmış dağıtık bir analiz motorudur. Bellek içi önbelleğe almayı yönlendirilmiş döngüsüz çizge (DAG) yürütme motoruyla birleştirerek toplu işleme, etkileşimli sorgular ve gerçek zamanlı akışta yüksek performans sunar.
Mimari
Spark Core, Spark platformunun temelini oluşturur. Dört özel kitaplık bu temel üzerine inşa edilir:
Spark SQL: Çevrimdışı çıkarma, dönüştürme ve yükleme (ETL) ile çevrimiçi analitik işlemeyi (OLAP) destekler.
Spark Streaming: Gerçek zamanlı akış işlemeyi destekler.
MLlib: Makine öğrenimi iş yüklerini destekler.
-
GraphX: Çizge hesaplamayı destekler.
Tam kitaplık referansı için Apache Spark resmi web sitesini
Senaryolar
-
Çevrimdışı ETL
Çevrimdışı ETL, büyük hacimli verilerin toplu olarak çıkarıldığı, dönüştürüldüğü ve yüklendiği veri ambarı senaryolarını kapsar. Bu işler genellikle talep üzerine değil, zamanlanmış olarak çalışır. Spark'ın bellek içi işleme ve DAG tabanlı optimizasyonu, büyük ölçekli toplu iş ETL işlem hatları için idealdir.
-
OLAP
OLAP, analistlerin etkileşimli sorgular gönderdiği ve hızlı sonuçlar beklediği iş zekası (BI) senaryolarını kapsar. Yaygın OLAP motorları arasında Presto, Impala ve Spark bulunur. Sorgularınız karmaşık dönüşümler içeriyorsa veya aynı kümede ETL ve ML iş yüklerini yöneten tek bir motora ihtiyaç duyuyorsanız Spark'ı seçin. Spark 3.0'ın temel özellikleri E-MapReduce (EMR) Spark 2.4'te desteklenir. Daha fazla bilgi için Spark SQL kılavuzuna
-
Akış işleme
Akış işleme; pano güncellemeleri, risk yönetimi, öneriler, izleme ve uyarı gibi gerçek zamanlı veri senaryolarını kapsar. EMR üzerinde çalışan iki yaygın motor vardır: Spark Streaming ve Flink. Spark Streaming, DStream ve Structured Streaming olmak üzere iki API sunar. Structured Streaming, toplu işlerle aynı DataFrame modelini kullandığından öğrenme eğrisi düşüktür. İş yükünüz mümkün olan en düşük uçtan uca gecikme süresi gerektiriyorsa Flink kullanın. Daha yüksek aktarım hızına ihtiyaç duyuyorsanız Spark Streaming kullanın. Daha fazla bilgi için Structured Streaming programlama kılavuzuna
-
Makine öğrenimi
MLlib, Spark'a yerleşik olarak gelen ölçeklenebilir bir makine öğrenimi kitaplığıdır. Sınıflandırma, regresyon, ortak filtreleme ve agregasyon için algoritmaların yanı sıra model seçimi, otomatik hiperparametre ayarlama ve çapraz doğrulama araçlarını içerir. MLlib, derin öğrenme dışı algoritmalara odaklanır ve Spark'ın dağıtık veri modeliyle doğrudan entegre olur; ayrı bir eğitim kümesine gerek yoktur. Daha fazla bilgi için Machine Learning Library (MLlib) kılavuzuna
-
Çizge hesaplama
GraphX, Spark'ın çizge hesaplama kitaplığıdır. Özellik operatörlerini, yapısal operatörleri, birleştirme operatörlerini ve komşuluk agregasyonu operatörlerini destekleyerek çoğu çizge analitiği iş yükünü özel bir çizge veritabanı gerektirmeden karşılar. Daha fazla bilgi için GraphX programlama kılavuzuna