Apache Spark Mimarisi

Bu bölümde Apache Spark mimarisi hakkında bilgiler vereceğiz

Apache Spark Nedir bölümünde Spark ile ilgili özet bilgiler vermiştik. Şimdi biraz daha detaya girelim

spark-cluster
spark-cluster

Apache Spark birden fazla makine üzerinde büyük verileri analiz eder.Bu sayede tek bir makine üzerinde işlem yapmak yerine birden fazla makine kullanarak daha hızlı sonuç alabiliriz.Eğer yaptığımız işlemlerden yeterli performans alamıyorsak makine sayısını rahatlıkla artırabiliriz(ölçeklenebilirlik)


spark-analiz
spark-analiz

Büyük verileri saklamak için Hadoop HDFS gibi bir yapı yoktur. Apache Spark yalnızca verileri işlemek için geliştirilmiştir.Resimde de görüldüğü gibi Apache Spark ; HDFS,HBase,Kafka,Flume .. gibi büyük verileri saklayan ve büyük verileri transfer eden mesajlaşma sistemlerine ihtiyaç duyar


spark-mimarisi
spark-mimarisi

Spark Mimarisi genel olarak Spark SQL, Spark Streaming, MLib, Graphx, Spark Core bileşenlerinden oluşur

Spark Core genel olarak şu işlemleri sağlar

  • Memory yönetimi
  • Hata durumlarını yönetme
  • HDFS,veritabanı .. gibi verilerin okunduğu bileşenlerle bağlantı
  • RDD yapısı (Verileri işlememizi sağlayan metodlar bulunur  count,map,foreach..)
  • Slave makineleri üzerindeki task’ların yönetilmesi

Spark SQL ise veriler üzerinde SQL tabanlı işlemler yapmamız sağlar. Parquet, Hive,JSON,İlişkisel veritabanı üzerinde bulunan verilerden SQL tabanlı sorgulamalar yapabiliriz

Bu yapıda Spark SQL,Dataset ve DataFrame kullanabiliriz

Örnekler ;

spark-dataframe
spark-dataframe
dataframe
dataframe

Spark Streaming ile verileri anlık olarak analiz edebiliriz.Genel yapı olarak anlık alınan veriler belirli zaman periyotlarına ayrılır(window).Alttaki örnekte 10’ar saniyelik periyotlarda veriler analiz edilebilir.Mesela 10 saniyelik periyotlarda kaç tane event geldiği hesaplanabilir.

spark-streaming
spark-streaming

MLib kütüphanesi ile makine öğrenimi(machine learning) uygulamaları yazabiliriz. Örnek verirsek ALS kütüphanesi ile filmler hakkında puanlama yapan kullanıcıları analiz ederek, kullanıcıların bir sonraki beğenebileceği filmleri tahmin edebiliriz

Alttaki örnekte Spark ile ALS kütüphanesinin ne kadar kolay kullanılabileceğini görebiliriz

GraphX kütüphanesi ile graph tabanlı hesaplamalar yapabiliriz.Genellikle sosyal ağlar için uygulamalar yazılabilir

nosql-graph
nosql-graph

Cluster Yönetimi

Apache Spark uygulamaları 3 farklı cluster yönetiminde çalışır

  • Standalone
  • Mesos
  • Yarn

Spark ilk yüklendiğinde Standalone mod ile gelir. Başlangıç için Standalone mod uygundur.Mesos ile kaynakların dinamik olarak artıp azaltılması sağlanabilir.Mesela Standalone mod ile bir uygulamaya 2 GB Ram verdiğimizde o uygulamada ihtiyaç olmasa bile 2 GB kaynak kullanır.Fakat mesos ihtiyaç durumunda bu kaynağı artırıp azaltır. Bununla beraber Hadoop Cluster üzerinde Spark da kullanmak istiyorsak YARN tercih edilebilir

cluster-manager
cluster-manager

Apache Spark ; mimari olarak master-worker çalışma mantığı ile verileri işler.Master genel olarak yapılması gereken işleri Worker makinelerine dağıtır.Worker makineleri ise Master üzerinden aldığı işlemleri gerçekleştirir ve sonuçları Master makinesine iletir

  • Driver Program : Uygulamanın başlatıldığı ana program (main() metodu )
  • SparkContext : Tüm işlemler SparkContext tarafından koordine edilir.Çalışacak uygulamalar SparkContext tarafından worker makinelerine iletilir
  • Her uygulama için ayrı bir Executor başlatılır.(Ayrı bir JVM process düşünebiliriz) Buna bağlı olarak her uygulamanın kendine ayrılmış kaynakları vardır(Ram,Core) 
  • Task : Bir uygulamayı çalıştırırken yaptığımız işlemlere göre iş bölümleri yada fonksiyonlar vardır.Bunların herbiri task olarak düşünülebilir
spark-mimari
spark-mimari

Bu bölümde Apache Spark mimarisini inceledik.Diğer büyük veri(Big Data) yazıları için sitemizi takip edebilirsiniz


 

Bizi takip edebileceğiniz sosyal medya platformları

–> Facebook –> Linkedin  -> Twitter

Sorularınız için Big Data grubumuz (-> Facebook group)

Online eğitimler için sitemizi takip edebilirsiniz

Please follow and like us:

Yazar: serkan sakınmaz

serkansakinmaz@gmail.com

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir