Apache Spark, Hadoop ekosistemi{.rank-math-link}nde verilerin anlık olarak, daha kolay işlenebilmesini sağlar. Hadoop{.rank-math-link} ile anlık(real-time) veri işleme imkanı olmadığı için geliştirilmiştir. Ayrıca gelişmiş API yapısı ve Scala, Java, Python gibi dilleri desteklemesi sayesinde daha fazla tercih edilmektedir.

Baidu, Taobao ve Tencent gibi büyük şirketler Spark ile çalışmalar yapmaktadır. Tencent, günlük 800 milyon kullanıcısının işlemleri için ortalama 700 TB veriyi Spark üzerinden işlemektedir.

Apache Spark Nedir <figcaption>kaynak: https://spark.apache.org/ </figcaption></figure>

Apache Spark bize neler sunuyor?

Büyük veri işlerken bir sistemi kullanmak için, sistemin avantajlarını ve dezavantajlarını iyi araştırmak gerekir. Kullanılmayacak her bir özellik yapılacak olan işin uzamasına sebep olabilir.

<figcaption>kaynak: https://spark.apache.org</figcaption></figure>

  • Apache Spark{.rank-math-link}, Hadoop MapReduce sistemine göre daha hızlıdır. Kendi sitesinde yaklaşık 100 kat hızlı olduğu belirtiliyor.
  • Düşük gecikme süresi sayesinde gerçek zamanlı işlemler için kullanılabilir bir sistemdir. Hadoop ne yazık ki gerçek zamanlı işlemler için uygun değildir.
  • R, Java, Python ve Scala dilleri için API sistemi mevcuttur. Bu sayede bahsedilen dillerden birine hakim olmanız işinizi kolaylaştırır.
  • Hadoop gibi kendi ekosistemi mevcuttur. Bu ekosistemdeki MLlib sayesinde makine öğrenmesi gerçekleştirilebilir.
  • Spark, GraphX sayesinde verileri daha kolay görselleştirmemizi sağlar. Bu sebepten dolayı tercih edilebilir.
  • Kafka, HDFS, Hbase gibi farklı farklı yerlerde tutulan verileri işlememize olanak sağlar.
  • Barındırdığı Esnek Dağıtılmış Veri Kümesi (RDD) bileşeni sayesinde Cluster üzerinde ilgili verileri hesaplamamızı sağlar.
  • Yönlü Düz Ağaçlar(DAG) adı verilen bileşen ise RDD bileşenini zamanlayarak düzene sokmamıza yarar.

Spark Ekosistemi

Spark Ekosistemi tıpkı Hadoop gibi birkaç bileşene bölünmüştür. Ekosistemde GraphX, SparkR, MLlib, Streaming, Spark SQL gibi bileşenler bulunmaktadır.

</figure>

Spark SQL, Apache Hive bileşeninin kullandığı Hive Query yapısı ve SQL ile işlem yapma olanağı sağlamaktadır. Bu sayede işlemlerinizi daha hızlı ve basit şekilde gerçekleştirebilirsiniz.

GraphX modülü, işlenen veriyi görselleştirme konusunda yardımcı olmaktadır. Kullanımı oldukça kolaydır.

Spark StandAlone, Kubernetes, Hadoop Yarn ve Apache Mesos gibi resource/cluster manager’lar üzerinde çalışmaktadır. Spark StandAlone, varsayılan olarak gelen cluster’dır.

Son olarak kullanım alanlarına değinelim. Satış sistemleri veya üretim hatları gibi anlık verilerin önemli olduğu yerlerde sıkça kullanılmaktadır.