Bu yazımızda Apache Spark tanımına yer veriyor, Apache Spark ile ilgili bilinmesi gerekenlere değiniyoruz.
İlk versiyonu Mayıs 2014’te yayınlanmış olan Apache Spark, o zamandan bu zamana pek çok geliştirme almış ve zaman içerisinde çok daha iyi bir hale gelmiştir. Büyük ölçekli veri analizi uygulamalarını çalıştırabilmek için kullanılmakta olan açık kaynaklı bir paralel işleme çerçevesi olarak tanımlayabileceğimiz Apache Spark, ilk kez 2009 yılında California Üniversitesi araştırmacılarınca Hadoop sistemlerindeki işlemleri hızlandırabilmek maksadıyla tasarlanmıştır.
İki ana bileşenden oluşmakta olan Apache Spark uygulamasında ilk bileşen kullanıcının sahip olduğu kodu düğümler arasında dağıtarak birden fazla göreve dönüştürmekte olan sürücü olarak karşımıza çıkmaktadır. Diğer bileşense düğümlerde atanan görevleri yürütmekte olan yürütücüler olarak karşımıza çıkar.
Hadoop Dağıtılmış Dosya Sistemi (HDFS), Apeche Hive, NoSQL veritabanları gibi veri havuzlarındaki verileri işlemekte olan Apache Spark, büyük veri analizi uygulamalarının performansını daha iyi bir hale getirebilmek için bellek içi işlemeyi destekler. Hireyarşik bir mimarisi bulunan Apache spark, çalışan düğümleri yönetmekte ve küme yöneticisini kontrol etmekte olan bir ana düğüm olarak karşımıza çıkmaktadır.
Spark Core motoru, esnek dağıtılmış veri kümelerini kullanmakta olan temel veri türü sağlamaktadır. Verileri toplamakta ve sonrasında hesaplanabileceği farklı veri deposuna taşımaktadır. Analiz model üzerinden çalıştırılabilecek bir sunucu kümesine bölmektedir.
Kullanıcıların veri işleme komutları DAG yani Directed Acyclic Graph olarak oluşturmakta olan Apache Spark,’ın zamanlama katmanı DAG olarak kabul edilir. Görevlerin hangi sıra ile ve hangi düğümlerde yürütüleceğini tespit etmektedir.
Kısmen bir uygulama programlama arabirimi seviyesi şeklinde işlev görmekte olan Spark Core’un API ortamı veri analitiği uygulamalarına yönelik olarak bazı kod kütüphaneleriyle beraber gelebilmektedir.
Spark özellikle dijital reklam şirketlerince web sitenin veri tabanını korumak ve belirli tüketicilere özel kampanyalar ortaya koyabilmek amacıyla kullanılmaktadır. Finans şirketleri ise finansal verileri alabilmek ve yatırım faaliyetlerine rehberlik edebilmek amacıyla kullanmaktadır.