Apache Spark nedir? Ne iş yapar?

Talha Tarık Küçük
5bayt
Published in
3 min readMay 23, 2019

Apache Spark, veri çalışanlarının veri kümelerine hızlı yinelemeli erişim gerektiren akış, makine öğrenmesi veya SQL iş yüklerini verimli bir şekilde yürütmelerini sağlayan zarif ve etkileyici geliştirme API’lerine sahip hızlı, bellek içi bir veri işleme motorudur. kaynak

Apache Spark kısaca verileri paralel olarak işlemenizi sağlar. Örneğin elinizde 1.000.000 satırlık veri seti olsun. Bu veri setini machine learning için kullanalım. Veri set içerisinde “etiket” ve “metin” kombinasyonu olsun. Biz bir metin verip bunu bir sınıflandırma algoritması ile hangi etiketteki verilere benzediğini tespit edeceğiz. Normalde 1.000.000 veri içerisinde hesaplama yapmak zor olacaktır. Ancak spark mimarisiyle verileri örneğin 1000'e bölerek 1000'lik setler halinde hesaplayıp 1000 setinde ortalaması gibi bir hesapla çok daha hızlı hesaplarız.

Bu mantık üzerinden basitçe Apache Spark’a göz atalım.

Spark & Özellikleri

Apache Spark, gerçek zamanlı veri işleme için açık kaynaklı bir küme hesaplama çerçevesidir. Apache Spark'ın ana özelliği, bir uygulamanın işlem hızını artıran bellek içi küme hesaplamadır. Spark tüm kümeleri programlamak için örtük veri paralelliği ve hata toleransı ile bir arayüz sağlar. Toplu iş uygulamaları, yinelemeli algoritmalar, etkileşimli sorgular ve akış gibi çok çeşitli iş yüklerini kapsayacak şekilde tasarlanmıştır.

1.Hızlıdır
Spark, büyük ölçekli veri işleme için kullanılan Hadoop MapReduce'dan 100 kat daha hızlı çalışır. Bu hıza kontrollü bölümleme yoluyla da ulaşabilir.

2.Güçlü Önbellekleme
Basit programlama katmanı, güçlü önbellekleme ve disk kalıcılığı yetenekleri sağlar.

3.Gerçek zamanlılık
Bellek içi hesaplama nedeniyle Gerçek Zamanlı hesaplama ve düşük gecikme süresi sunar.

4.Dil Desteği
Spark, Java, Scala, Python ve R için üst düzey API'ler sunar. Spark’ı bu dört dilden herhangi birinde kullanabilirsiniz.

Spark Mimarisi

www.edureka.co

Apache Spark, tüm bileşenlerinin ve katmanlarının gevşek bir şekilde bağlandığı iyi tanımlanmış bir katman mimarisine sahiptir. Bu mimari, çeşitli uzantı ve kütüphanelerle daha da bütünleşmiştir.

Apache Spark Architecture, iki ana soyutlamaya dayanıyor:

Esnek Dağıtılmış Veri Kümesi (RDD) : Spark Cluster üzerinde, verilerlele ilgili hesaplamalar yapmamızı sağlayan bileşendir.

Yönlü Düz Ağaçlar(DAG): Bir işlem yaptırdığımızda, işlem DAG zamanlayıcısına gönderilir. DAG, operatörleri görev aşamalara böler. Kısaca Spark yüksek düzeyde RDD işlemlerini zamanlayan ağaçlı mimari bir bileşene sahiptir.

Spark Ekosistemi

www.edureka.co

1.Spark Core

Spark Core, büyük ölçekli paralel ve dağıtılmış veri işleme için temel motordur. Sahip olduğu kütüphaneler ile, akış , SQL ve makine öğrenmesi gibi çeşitli iş yüklerine izin verir. Bellek yönetimi ve hata kurtarma, bir kümedeki işleri planlamak, dağıtmak ve izlemek ve depolama sistemleriyle etkileşimden sorumludur.

2.Spark Streaming

Spark Streaming, gerçek zamanlı akış verilerini işlemek için kullanılan Spark bileşenidir. Gerçek zamanlı veri akışlarının yüksek verimli işlenmesini sağlar.

3.Spark SQL

Spark'ın işlevsel programlama API'si ile ilişkisel işlemeyi birleştiren yeni bir modül. SQL veya Hive Query Language aracılığıyla veri sorgulamayı destekler. RDBMS veritabanları için Spark SQL performans arttırıcı bir çözüm sunar.

4.GraphX

GraphX, grafikler ve grafik paralel hesaplamalar için Spark API'dir.

5.MLlib (Machine Learning)

MLlib, Makine Öğrenimi Kütüphanesi'nin kısaltmasıdır. Spark MLlib, Apache Spark'da makine öğrenmesi için kullanılır.

6.SparkR

Dağıtılmış bir veri çerçevesi uygulaması sağlayan bir R paketidir. Ayrıca, seçim, filtreleme, toplama gibi işlemleri büyük veri kümelerinde de destekler.

Kısaca derlemeler ve yorumlarımla spark nedir ne iş yapar sorularına cevap vermeye çalıştım. Spark ile ilgili aşağıdaki yazıya göz atarak docker üzerine kurabilirsiniz.

Aynı zamanda bundan sonraki yazılarda docker üzerinde kurulu spark ile docker üzerinde kurulu mongoDB ile Python pyspark ve onun içinden Spark’ın MLlib modülünü kullanan machine learning işlemlerini gerçekleştireceğim bir yazı yazacağım.

Docker üzerine mongoDB kurulumuyla ilgili yazıma göz atabilirsiniz.

Kaynaklar: edureka.co, wikipedia.org, hortonworks.com, spark.apache.org

--

--